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