SESIÓN 03: SENTENCIAS DE
DECISIÓN
OBJETIVO
El objetivo de la presente sesión es aprender a
usar sentencias condicionales y sentencias de
estructuras de programación.
SESIÓN 03: SENTENCIAS DE
DECISIÓN
CONTENIDO
OBJETIVO ................................................................................................................ 3
CONTENIDO............................................................................................................ 4
INTRODUCCIÓN ..................................................................................................... 5
CONCEPTOS TEÓRICOS........................................................................................ 6
If, else, elseif y end............................................................................................. 6
Estructura if – end .......................................................................................... 6
Estructura if – else – end ............................................................................... 7
Estructura if – elseif – else – end .................................................................. 8
Switch y case ................................................................................................... 10
Try … Catch ...................................................................................................... 12
BIBLIOGRAFÍA ....................................................................................................... 14
INTRODUCCIÓN
MATLAB proporciona diferentes instrucciones que se pueden
utilizar para controlar el flujo de un programa. Las sentencias
condicionales 𝑖𝑓 – 𝑒𝑙𝑠𝑒 − 𝑒𝑙𝑠𝑒𝑖𝑓 – 𝑒𝑛𝑑 y la estructura de
programación 𝑠𝑤𝑖𝑡𝑐ℎ – 𝑐𝑎𝑠𝑒 – 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 – 𝑒𝑛𝑑 permiten saltarse
comandos o ejecutar grupos específicos de comandos en
diferentes situaciones.
CONCEPTOS TEÓRICOS
IF, ELSE, ELSEIF Y END
ESTRUCTURA IF – END
Mediante esta estructura, se pueden ejecutar secuencias de comandos
si se cumplen determinadas condiciones.
Su sintaxis es de la forma:
if condición
comandos (Se ejecutan la condición es verdadera)
end
Imagen N° 01 – Estructura if - end
ESTRUCTURA IF – ELSE – END
En este caso se ejecutan comandos si la condición es cierta y otros
comandos si la condición es falsa.
Pero la sintaxis de este bucle puede ser más general.
if condición
comandos1 (se ejecutan la condición es verdadera)
else
comandos2 (se ejecutan la condición es falsa)
end
En este caso se ejecutan los comandos1 si la condición es verdadera, y
se ejecutan los comandos2 si la condición es falsa.
Imagen N° 02 – Estructura if – else – end
ESTRUCTURA IF – ELSEIF – ELSE – END
Las sentencias 𝒊𝒇, al igual que las sentencias 𝒇𝒐𝒓, pueden ser anidadas.
Cuando se anidan varias sentencias 𝒊𝒇 se utiliza la sentencia 𝒆𝒍𝒔𝒆𝒊𝒇, cuya
sintaxis general es la siguiente:
if condición1
comandos1
elseif condición2
comandos2
elseif condición3
comandos3
…
else
end
Imagen N° 03 – Estructura if – elseif – else – end
En este caso se ejecutan los comandos1 si condición1 es verdadera, se
ejecutan los comandos2 si condición1 es falsa y condición2 es verdadera,
se ejecutan los comandos3 si condición1 y condición2 son falsas y
condición3 es verdadera, y así sucesivamente. La sintaxis anidada
anterior es equivalente en la siguiente:
if condicion1
comandos1 (Se ejecutan si condición1 es verdadera)
else
if condición2
comando2 (Si condición1 es falsa y condición2 es
verdadera)
else
if condición3
comando3 (Si condición1 y condición2 son falsas
y condición3 es verdadera)
else
comandos4 (Si la condición1, condición2 y la
condición3 son falsas)
end
end
...
end
Ejemplo:
Crear una función que calcule el mayor de 2 números a y b. Function y
ejecución:
Imagen N° 04 – Estructura if – elseif – else – end
SWITCH Y CASE
La sentencia 𝑠𝑤𝑖𝑡𝑐ℎ realiza una función análoga a un conjunto de
𝑖𝑓. . . 𝑒𝑙𝑠𝑒𝑖𝑓 concatenados.
Al principio se evalúa la 𝑠𝑤𝑖𝑡𝑐ℎ_𝑒𝑥𝑝𝑟𝑒𝑠𝑖𝑜𝑛, cuyo resultado debe ser un
número escalar o una cadena de caracteres. Este resultado se compara
con las 𝑐𝑎𝑠𝑒_𝑒𝑥𝑝𝑟, y se ejecuta el bloque de sentencias que corresponda
con ese resultado. Si ninguno es igual a 𝑠𝑤𝑖𝑡𝑐ℎ_𝑒𝑥𝑝𝑟𝑒𝑠𝑖𝑜𝑛 se ejecutan las
sentencias correspondientes a 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒.
Su sintaxis es de la forma:
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3, case_expr4,...}
bloque2
...
otherwise % opción por defecto
bloque3
end
Ejemplo:
Hacer un programa que realice las operaciones básicas de dos números
reales.
Imagen N° 05 – Ejemplo de comando switch
Ejecución en la ventana de comandos:
Imagen N° 06 – Ejecución
TRY … CATCH
Permite gestionar los errores que se pueden producir en tiempo de
ejecución.
try
sentencias1
catch excepcion
sentencias2
end
En el caso de que durante la ejecución del bloque sentencias1 se
produzca un error, el control de la ejecución se transfiere al bloque
sentencias2. Si la ejecución transcurriera normalmente, sentencias2 no se
ejecutaría nunca.
Ejemplo:
Imagen N° 07 – Ejemplo de comando try – catch
EJEMPLO 01: USO DE COMANDO SWITCH
OBJETIVO
El objetivo principal del ejemplo es aprender a
usar los comandos 𝑠𝑤𝑖𝑡𝑐ℎ, 𝑐𝑎𝑠𝑒 y 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 en
MATLAB.
PLANTEAMIENTO
Crear un programa que pida ingresar un
número entre 1 y 7. Como resultado debe
mostrar el día de la semana correspondiente.
(1 =Lunes, 2 =Martes, …)
DESARROLLO
Creando en el 𝑠𝑐𝑟𝑖𝑝𝑡 7 casos: Lunes, Martes, Miércoles, Jueves,
Viernes, Sábado y Domingo.
La estructura es de la forma:
switch expresion_swtich
case caso_expresion
instrucciones
case caso_expresion
Instrucciones
…
othwerwise
instrucciones
fin switch
Vemos que, dado una
condición, el programa busca la
condición dada para darnos
una respuesta o de lo contrario
nos muestra otra respuesta.
EJEMPLO 02: USO DE COMANDO IF
OBJETIVO
El objetivo principal del ejemplo es aprender a
usar las sentencias condicionales 𝑖𝑓 − 𝑒𝑙𝑠𝑒 −
𝑒𝑙𝑠𝑒𝑖𝑓 − 𝑒𝑛𝑑.
PLANTEAMIENTO
Crear un programa 𝑙𝑖𝑐𝑒𝑛𝑐𝑖𝑎_𝑐𝑜𝑛𝑑𝑢𝑐𝑖𝑟. 𝑚 que
muestre un mensaje de acuerdo a la edad de
una persona:
- Si tiene menos de 16 años no podrá tener licencia de conducir.
- Si tiene entre 16 y menos de 18 años podrá obtener un permiso
provisional para conducir.
- Si tiene entre 18 y menos de 70 años podrá obtener una licencia
estándar.
- Si tiene 70 años a más, requiere una licencia especial.
DESARROLLO
Primero debemos
ingresar la edad y luego us comando 𝑖𝑓 para las condicionales en
cada edad:
Ejecutando el programa:
EJEMPLO 03: USO DE COMANDO SWITCH
CON CADENA DE CARACTERES
OBJETIVO
El objetivo principal del ejemplo es aprender a
usar el comando 𝑠𝑤𝑖𝑡𝑐ℎ ingresando cadena
de caracteres en 𝑠𝑐𝑟𝑖𝑝𝑡𝑠 de MATLAB.
PLANTEAMIENTO
Crear un archivo 𝑏𝑜𝑙𝑒𝑡𝑜𝑠. 𝑚 en el que debe
ingresar por teclado el tipo de boleto y como
resultado debe mostrar la impresión del precio
(Escolar 𝑆/ 0.50 , Zonal 𝑆/ 1.00, Intermedio 𝑆/ 1.50
y Directo 𝑆/ 2.00).
DESARROLLO
Creando el archivo 𝑏𝑜𝑙𝑒𝑡𝑜𝑠. 𝑚 y definimos cada tipo de boleto (case)
y el precio:
EJEMPLO 04: AÑO BISIESTO
OBJETIVO
El presente ejemplo tiene por objetivo resolver
problemas usando sentencias condicionales.
PLANTEAMIENTO
Escribir un programa que permita ingresar al
usuario las cifras de un año, y determine si el año
es bisiesto o no.
DESARROLLO
Se crea una función que incluye la sentencia de control 𝑖𝑓 − 𝑒𝑙𝑠𝑒.
EJEMPLO 05: SENTENCIA IF ANIDADA
OBJETIVO
El objetivo del presente ejemplo es resolver
problemas para diferentes casos usando
sentencias de control anidadas.
PLANTEAMIENTO
Escribir un programa que calcule el indice de
masa corporal de una persona e indique el
estado en el que se encuentra en función del
valor del IMC.
𝑝𝑒𝑠𝑜(𝑘𝑔)
𝐼𝑀𝐶 =
𝑎𝑙𝑡𝑢𝑟𝑎2 (𝑚)
DESARROLLO
Se crea una función que reciba como argumentos el peso en
𝑘𝑔 y la altura en 𝑚 de una persona.
El programa muestra el diagnóstico.
Algunos resultados:
EJEMPLO 06: CALCULADORA BÁSICA
OBJETIVO
El objetivo del presente ejemplo es crear un
programa que ejecute un bloque de
instrucciones de acuerdo al caso o condición.
PLANTEAMIENTO
Construir un programa que simule el
funcionamiento de una calculadora que puede
realizar las cuatro operaciones básicas, el usuario
debe ingresar tres datos.
El primero corresponde a la operación a realizar: s para la suma, r para
la resta, p para el producto y d para la división.
El segundo y tercer dato corresponden a los operandos
DESARROLLO
De acuerdo a los casos que se presentan en el problema es
conveniente usar una sentencia 𝑠𝑤𝑖𝑡𝑐ℎ.
Algunos resultados:
SESIÓN 03
RECOMENDACIONES
En la resolución de cada uno de los ejercicios debe indicar los
pasos realizados con capturas de pantalla.
También adjunte los archivos trabajados para dar seguimiento y
para mejor corrección de la tarea.
Todo lo solicitado debe encontrarse dentro de una carpeta
comprimida con su nombre:
TAREA
1. (6 puntos) Crear una función que pida ingresar tres números y
determine si se han ingresado los números de forma ascendente,
descendente, sin orden o mostrar el caso en que todos son iguales.
2. (7 puntos) Crear un menú con las opciones “Equilátero”,
“Isósceles” y “Escaleno”. Para la primera opción deberá ingresar
sólo un lado del triángulo; para la segunda opción, ingresará dos
lados; y para el tercer tipo ingresará los tres lados. Con estas
informaciones calcular el área del triángulo.
3. (7 puntos) Crear un programa que calcule el sueldo que le
corresponde al trabajador de una empresa que cobra S/. 30000
soles anuales, el programa debe realizar los cálculos en función de
los siguientes criterios:
a) Si lleva más de 20 años en la empresa se le aplica un
aumento del 15%.
b) Si lleva menos de 20 años, pero más que 10 se le aplica un
aumento del 10%.
c) Si lleva menos de 10 años, pero más que 5 se le aplica un
aumento del 5%.
d) Si lleva menos de 5 años se le aplica un aumento del 2%.