Sentencias de control (parte I)

Anuncio
Herramientas computacionales para la
matemática
MATLAB: Estructuras de control
Verónica Borja Macías
Mayo 2012
1
Matlab
Estructuras de control
 Una sentencia condicional es una instrucción MATLAB que
permite tomar decisiones sobre si se ejecuta un grupo de
comandos que cumplen una condición o, por el contrario,
omitirlos.
 En una sentencia condicional se evalúa una expresión
condicional. Si la expresión es verdadera, el grupo o bloque
de comandos se ejecutan. Si la expresión es falsa, MATLAB no
ejecuta (salta) el grupo de comandos en cuestión,
 Las sentencias condicionales pueden ser parte de un sctipt o
de una función.
2
Matlab
Estructuras de control
 Sentencias condicionales:
if-end
if-else-end
if-elseif-else-end
3
Matlab
Estructuras de control
IF-END
 Un enunciado if simple tiene la siguiente forma:
if condicion
sentencias
end
 Si la condición (una expresión lógica) es verdadera, se
ejecutan las sentencias y sigue a end.
 Si la comparación es falsa, el programa salta
inmediatamente al enunciado que sigue a end.
4
Matlab
Estructuras de control
IF-ELSE-END
 El if simple le permite ejecutar una serie de enunciados si
una condición es verdadera y saltar dichos pasos si la
condición es falsa.
 La cláusula else le permite ejecutar un conjunto de
enunciados si la comparación es verdadera y un conjunto
diferente de enunciados si la comparación es falsa.
if condicion
bloque1
else
bloque2
end
5
Matlab
Estructuras de control
IF-ELSEIF-ELSE-END
 Esta estructura incluye dos sentencias condicionales, lo
que hace posible ejecutar uno de entre tres grupos de
instrucciones diferentes.
if condicion1
bloque1
elseif condicion2
bloque2
else
bloque3
end
6
Matlab
Estructuras de control
 Es necesario destacar que se puede introducir mis de una
sentencia elseif y por tanto asociar nuevos grupos de
instrucciones que se ejecutarán o no dependiendo de las
condiciones establecidas.
 Además, la sentencia else es opcional. Esto significa que en el
caso de que haya varios elseif y ningún else, si alguna condición
de los elseif es verdadera, los comandos serán ejecutados, pero
en otro caso (todas las condiciones de los elseif son falsas) no se
ejecutan ni se realizará ninguna operación.
7
Matlab
Ejemplo
Ejemplo:ejemplo1.m
G=100*rand(1);
count=0;
if G< 50
count = count +1 ;
disp(G);
end
Ejemplo:ejemplo2.m
x = input('Ingrese un valor para calcular su logaritmo: ') ;
if x >0
y=log(x);
fprintf('\nEl logaritmo de %f es %f. \n',x,y);
else
beep
disp('La entrada a la función log debe ser positiva')
end
8
Matlab
Ejemplo
Ejemplo:ejemplo3.m
age = input('Ingrese su edad: ') ;
if age<16
disp('Lo siento. Tendrá que esperar')
elseif age<18
disp('Puede obtener un permiso provisional para conducir')
elseif age<70
disp('Puede obtener una licencia estándar')
else
disp('Los mayores de 70 requieren una licencia especial ')
end
9
Matlab
Estructuras de control
Switch y case
 La estructura switch-case se usa con frecuencia cuando
existe una serie de opciones de ruta de programación
para una variable dada, dependiendo de su valor.
 Switch-case es similar a if/else/elseif. De hecho, cualquier
cosa que pueda hacer con switch/case se podría hacer
con if/else/elseif.
 Se trata de una estructura que le permite elegir entre
múltiples salidas, con base en ciertos criterios. Los
criterios pueden ser un escalar (un número) o una
cadena.
10
Matlab
Estructuras de control
switch variable
case opcion1
código a ejecutar si la variable es igual a opcion1
case opcion2
código a ejecutar si la variable es igual a opcion2
..
.
case opcionN
código a ejecutar si la variable es igual a opcionN
otherwise
código a ejecutar por default
end
11
Matlab
Ejemplo
Ejemplo:ejemplo4.m
ciudad = input('Ingrese el nombre de una ciudad entre comillas simples: ')
switch ciudad
case 'Veracruz'
disp('Costo del boleto: $345 ')
case 'Puebla'
disp('Costo del boleto: $150')
case 'Oaxaca'
disp('Costo del boleto: $100')
otherwise
disp('No hay servicio de transporte a esa ciudad.')
end
12
Matlab
Ejercicios
13
Matlab
Ejercicios
14
Descargar