TEMARIO_sesiones_6_7

Anuncio
Programación de los problemas
de Física en
.
TEMA 1: INTRODUCCIÓN A LA PROGRAMACIÓN
1.2. ORDENADOR COMO CALCULADORA
1.3.ORDENADOR COMO CALCULADORA PROGRAMABLE
1.4. DIAGRAMAS DE FLUJO
1.5. CODIFICAR O PROGRAMAR
1.6. Estructuras de control de flujo 1:
Condicional: if … end y switch…case
1.7. Estructuras de control de flujo 2:
Repeticiones: for…end y while …end
Cristina Roldán Segura
correo: croldan@ugr.es
1
Estructuras de control de flujo
Secuencia:
if y switch permiten ejecutar
grupos específicos de
comandos o saltarselos.
simple: if….end
Condicional
múltiple: switch…case..end
case
1
acción 1
case
2
acción 2
case
3
acción 3
while y for permiten repetir secuencias
de comandos varias veces seguidas
Bucles o repeticiones: while …end
for …end
2
1.6. Estructuras de control de flujo: Condicional
if y switch permiten ejecutar grupos
específicos de comandos o saltarselos.
true
condición
acción 1, 2, 3…
false
simple:
if…end
Decisión o
Condición
múltiple: witch…case
case 1
acción 1
case 2
acción 2
case 3
acción 3
3
PROGRAMACIÓN en OCTAVE-MATLAB
Para escribir una (condición) se comparan los valores de las
variables mediante los operadores lógicos y relacionales.
operadores relacionales:
operadores lógicos:
&
y
|
~
o
no
<
menor que
>
<=
>=
==
~=
mayor que
menor o igual
mayor o igual
Igual
distinto
4
Secuencias condicionales
if (condición)
grupo de comandos
end
(condición)=expresión condicional consistente en operadores
relacionales y lógicos.
Ejemplos: variables con valores asignados previamente
if (a<b)
if (c>= 5)
if a== b
if a~= 0
if (a < b) & ( x > 5)
if (a~= 10) | (y < 0)
5
Condicional una opción: if…end
Sintaxis:
if (condición)
acción 1
acción 2
……..
end
%ejemplo:
n=5;
if (n>0)
printf(‘numero positivo’)
end
true
condición
acción 1, 2…
false
Como funciona if:
• Si la condición es verdadera
(true) se ejecutan las
acciones 1,2,3,…
• Si la condición es falsa (false)
no se ejecutan (se OMITEN)
las acciones 1,2,3…
6
Condicional con dos opciones: if…else…end
Sintaxis:
if (condición)
acción 1
else
acción 2
end
%ejemplo:
n=5;
if (n>0)
printf(‘número positivo’)
else
printf(‘número negativo’)
end
false
acción 2
condición
true
acción 1
Como funciona if:
• Si la condición es verdadera
(true) se ejecuta la acción 1
• Si la condición es falsa (false)
se ejecuta la acción 2
7
Condicional con dos opciones: if…else…end
Sintaxis:
if (condición)
acción 1
else
acción 2
end
false
true
condición
acción 1
acción 2
true
condición
CUIDADO: un if con un end
acción 1
false
acción 2
8
Condición o decisión: if…end
Programa que nos diga si un número
introducido por el usuario es positivo o negativo.
Inicio
Leer n
Si
N>0
No
El número
es negativo
¿Tiene en cuenta todas las
posibilidades?
El número
es positivo
Fin
9
Condicional múltiple: if…end if…end
Ejemplo
10
Condicional múltiples: if anidados
Sintaxis:
if (condición 1)
if (condición 2)
acción 1
else
acción 2
end
else
acción 3
end
false
Condición
1
true
Condición
2
false
acción 3
acción 2
true
acción 1
11
Condicional con tres opciones: if…elseif…end
Sintaxis:
if (condición1)
acción 1
elseif (condición 2)
acción 2
else
acción 3
end
if
false
Condición 1
true
acción 1
elseif
Condición 2
false
acción 3
true
acción 2
12
Condicional con tres opciones: if…elseif…end
Sintaxis:
if (condición1)
acción 1
elseif (condición 2)
acción 2
elseif (condición 3)
acción 3
else
acción 4
end
false
if
Condición 1
acción 1
elseif
false
false
elseif
Condición 3
acción 4
Condición 2
true
true
true
acción 2
acción 3
else es la opción por defecto para cuando no se
cumplan ninguna de las condiciones 1, 2 y 3,
puede ponerse o no, es opcional.
13
Condicional múltiples: if anidados
Sintaxis:
if (condición 1)
if (condición 2)
acción 1
else
acción 2
end
else
if (condición 3)
acción 3
else
acción 4
end
end
false
Condición
1
true
Condición
2
Condición
3
false
true
false
true
acción 2
acción 3
acción 2
acción 1
¡Difícil de leer!
14
Condicional múltiple: switch…case
Es una alternativa a if anidados cuando comparamos datos sencillos
ordinales.
Sintaxis:
switch variable
case valor,
acción 1
case valor,
acción 2
….
otherwise,
acción 3
end
case 1
acción 1
case 2
acción 2
case 3
acción 3
Como funciona switch:
La variable puede tomar
distintos valores y dependiendo
del valor se ejecuta una acción
15
diferente.
Condicional múltiple: switch…case
Sintaxis:
switch variable
case valor,
acción 1
case valor,
acción 2
….
otherwise,
acción 3
end
variable = de tipo cardinal, se puede
contar
otherwise, es opcional y se ejecuta
cuando no se realiza ninguno de los
casos anteriores
Las comas se pueden omitir si se
escriben las acciones en el renglón
siguiente.
16
Ejemplo: switch…case
Dado un número entero entre 1 y 5 mostrar el día de la
semana.
% día de la semana
d=input(‘Numero del dia’);
switch d
case 1, disp(‘Lunes’);
case 2, disp(‘Martes’);
case 3, disp(‘Miercoles’);
case 4, disp(‘Jueves’);
case 5, disp(‘Viernes’);
end
% día de la semana
d=input(‘Numero del dia’);
switch d
case 1, disp(‘Lunes’);
case 2, disp(‘Martes’);
case 3, disp(‘Miercoles’);
case 4, disp(‘Jueves’);
case 5, disp(‘Viernes’);
otherwise, disp(‘Error’);
end
Observa las diferencias
17
Condicional múltiple: switch…case
Ejemplo: Dado un número entero entre 1 y 5 mostrar el día de la
semana.
% día de la semana
d=input(‘Numero del dia’);
switch d
case 1, disp(‘Lunes’);
case 2, disp(‘Martes’);
case 3, disp(‘Miercoles’);
case 4, disp(‘Jueves’);
case 5, disp(‘Viernes’);
otherwise, disp(‘Error’);
end
% día de la semana
d=input(‘Numero del dia’);
switch d
case 1, disp(‘Lunes’);
case 2, disp(‘Martes’);
case 3, disp(‘Miercoles’);
case 4, disp(‘Jueves’);
case 5, disp(‘Viernes’);
case (6,7), disp(‘fin de semana’);
otherwise, disp(‘Error’);
end
Observa las diferencias
18
Ejercicio propuesto 1
Realizar un diagrama de flujo y un programa (o
script) en el que se pide al usuario los valores de
a,b,c de la ecuación de segundo grado ax2+bx+c=0
y el programa debe calcular las soluciones para
cualquier valor de a,b y c, y realizar una
representación gráfica de la parábola.
Vértice de la parábola:
V=(-b/2a, (4ac-b2)/4a)
19
Ejercicio propuesto 2
Realizar un diagrama de flujo y un programa
correspondiente en el que se pidan tres números
al usuario y el programa te diga cual es el
número mayor y cual es el menor.
20
Ejercicio propuesto 3
Realizar un diagrama de flujo y un programa en el
que se lea el valor de la temperatura t y su código p
que puede ser 1 o 2.
• Si el código es 1 convierta la temperatura t de
grados F a grados C con la fórmula: C=5/9(t-32)
• Si el código es 2 convierta la temperatura t de
grados C a F con la fórmula: F=32+9t/5
21
Ejercicio propuesto 4
Realizar un diagrama de flujo y un programa en
el que se calcule el precio de una pizza.
El precio de una pizza depende del tamaño:
Tamaño 1: 5€
Tamaño 2: 8€
Tamaño 3: 12€
Cada ingrediente adicional cuesta 1.5€.
Realiza un programa que lea el tamaño de la
pizza y el número de ingredientes y muestre el
precio que debe pagar.
22
Ejercicio propuesto 5
Realice un diagrama de flujo y un programa que
determine el nivel de sobrepeso de una persona de
25 a 34 años. Dado el peso P en Kg de una persona y
su talla T en metros. El índice de masa corporal IMC
se calcula con la fórmula P/T2.
IMC
Nivel
Menos de 18.5 Peso bajo
18.5 a 25.5
Peso normal
25.5 a 30.5
Sobrepeso grado 1
30.5 a 35.5
Sobrepeso grado 2
35.5 a 40.5
Obesidad grado 3
Más de 40.5
Obesidad grado 4
23
Ejercicio propuesto 6
Escribe un diagrama de flujo y un programa que pida
al usuario que le introduzca un mes del año en
número (1-12) y el ordenador tiene que escribir de
que estación del año se trata: primavera, verano,
otoño o invierno.
24
Ejercicio propuesto 7
Escribir un programa que convierta una cantidad de energía dada
(trabajo) en J (julios), cal (calorias) o eV (electronvoltios) a la
cantidad equivalente en otra unidad diferente especificada por el
usuario. El programa pedirá al usuario que introduzca la cantidad
de energía y su unidad, así como la unidad a la que se quiere
realizar la conversión. La salida será la cantidad introducida
convertida a la nueva unidad de energía elegida.
Factores de conversión: 1J= 0,239 cal = 6,24*10^18 eV
Utilizar el programa para:
a) convertir 2800 cal a J
b) convertir 2,7 eV a cal
c) convertir 0.5 J en eV
25
Descargar