Tema 8. Estructuras de decisión. Clases 3 y 4. Informática Prof. María Alejandra Quintero
Contenido Operadores relacionales Operadores lógicos Expresiones lógicas Estructuras de decisión simple Estructuras de decisión doble Estructuras de decisión anidadas Estructuras de decisión múltiple
Estructuras de decisión anidadas Se utilizan cuando hay más de dos alternativas entre las cuales se puede elegir. Cuando en una estructura de decisión, alguna de sus instrucciones es otra estructura de decisión, se dice que las estructuras están anidadas. Ejemplos: F V Condición F Instrucciones V Condición Instrucciones Instrucciones
F V Condición F F V V Condición Condición Instrucciones Instrucciones Instrucciones La forma en que se anidan las estructuras de decisión dependerá del problema a resolver.
Notación algorítmica Se usan las mismas palabras que en las estructuras de decisión doble: Si - Entonces de lo contrario Fin de si Sintaxis en Visual Basic If Then Else End if
Ejercicio 1 Elaborar un programa que calcule la nota final de Informática, a partir de la nota obtenida en teoría (75%) y la nota de práctica (25%). Además de la nota final, el programa debe indicar los siguientes mensajes: 1. “Reprobado” si no aprueba la asignatura 2. “Aprobado” si aprueba con una nota inferior a 16 puntos. 3. “Eximido” si obtiene 16 puntos o más.
Análisis E-P-S Entrada NotaT: nota obtenida en teoría. Tipo: Real Análisis E-P-S Entrada NotaT: nota obtenida en teoría. Tipo: Real. NotaP: nota obtenida en práctica. Tipo: Real. Proceso NotaF = 0.75xNotaT + 0.25xNotaP NotaF < 9.5 Escribir APLAZADO NotaF >= 9.5 y NotaF < 16 Escribir APROBADO NotaF >= 16 Escribir EXIMIDO Salida NotaF: nota final de Informática. Tipo Real.
Algoritmo 0. Inicio 1. Leer nota obtenida en teoría (NotaT) 2 Algoritmo 0. Inicio 1. Leer nota obtenida en teoría (NotaT) 2. Leer nota obtenida en práctica (NotaP) 3. NotaF = 0.75xNotaT + 0.25xNotaP 4. Mostrar Nota final (NotaF) 5. Si NotaF < 9.5 Entonces 5.1 Mostrar mensaje "APLAZADO " De lo contrario 5.2 Si NotaF < 16 Entonces 5.2.1 Mostrar mensaje " APROBADO " 5.2.2 Mostrar mensaje " EXIMIDO " Fin de si 5.2 Fin de si 5 6. Fin
Programa en Visual Basic Sub Main() Dim NotaT, NotaP, NotaF As Single NotaT = InputBox("Escriba la nota obtenida en teoría: ") NotaP = InputBox("Escriba la nota obtenida en práctica: ") NotaF = 0.75 * NotaT + 0.25 * NotaP MsgBox("La nota final es " & NotaF & " puntos") If NotaF < 9.5 Then MsgBox("Estudiante APLAZADO") Else If NotaF < 16 Then MsgBox("Estudiante APROBADO") MsgBox("Estudiante EXIMIDO") End If End Sub
Ejercicio 2 Se necesita un programa para calcular el monto total a pagar por la estadía en una posada. Las tarifas de la posada por noche son: No. de personas Tarifa (Bs.) 1 600000 2 900000 3 1300000 4 1650000 Deben considerarse dos impuestos: 1% por el fondo de turismo y 12% de IVA.
Algoritmo 0. Inicio 1. Solicitar número de personas hospedadas (npers) 2. Solicitar número de noches (nnoch) 3. Si npers = 1 entonces Tarifa = nnoch * 600000 De lo contrario Si npers = 2 entonces Tarifa = nnoch*900000 Si npers= 3 entonces Tarifa = nnoch*1300000 Si npers= 4 entonces Tarifa = nnoch*16500000 Mostrar mensaje(“El número de personas hospedadas debe estar entre 1 y 4”) Fin de si Fin de si 3 4. Total = Tarifa + 0.01*Tarifa + 0.12*Tarifa 5. Mostrar Total a pagar (Total) 6. Fin NOTA: Si la numeración se vuelve confusa, se pueden usar sangrías en las estructuras de decisión para mantener el orden.
Ejercicio 3 Elaborar un algoritmo para clasificar una especie forestal de acuerdo a su resistencia. El dato de entrada es el porcentaje de pérdida de peso de la especie y la salida es uno de los siguientes mensajes. % pérdida de peso Mensaje ≤1 Altamente resistente (1 - 5] Resistente (5 – 10] Moderadamente resistente (10- 30] Muy poco resistente Más de 30 No resistente
Ejercicio 4 Realizar un programa que dados tres números diferentes determine cuál es el mayor. Revisar solución en la guía, página 65
Estructuras de decisión múltiple Al igual que las estructuras de decisión anidadas, las estructuras de decisión múltiple se utilizan cuando se desea elegir entre varias alternativas. Diagrama de flujo: Variable Valor 1 Valor 2 Valor n Instrucciones Instrucciones . . . . . . . . Instrucciones
Notación algorítmica Seleccionar caso Variable Caso Valor 1 instrucciones Caso Valor 2 . Caso Valor n De lo contrario Fin de seleccionar
Ejercicio 1 Se necesita un programa para calcular el monto total a pagar por la estadía en una posada. Las tarifas de la posada por noche son: No. de personas Tarifa (Bs.) 1 600000 2 900000 3 1300000 4 1650000 Deben considerarse dos impuestos: 1% por el fondo de turismo y 12% de IVA.
Algoritmo 0. Inicio 1. Leer número de personas hospedadas (npers) 2. Leer número de noches (nnoch) 3. Seleccionar caso nnoch Caso 1 Tarifa = nnoch * 600000 Caso 2 Tarifa = nnoch*900000 Caso 3 Tarifa = nnoch*1300000 Caso 4 Tarifa = nnoch*1650000 De lo contrario Mostrar mensaje (“El número de personas hospedadas debe estar entre 1 y 4”) Fin de si 3 4. Total = Tarifa + 0.01*Tarifa + 0.12*Tarifa 5. Mostrar Total a pagar (Total) 6. Fin
Notación en Visual Basic Select Case Variable Case Valor 1 instrucciones Case Valor 2 . Case Valor n Case else End Select
Ejercicio 2 Elaborar un programa para determinar el área de un triángulo, de un rectángulo o de un círculo. El usuario debe seleccionar una opción de acuerdo al área que desea calcular: Opción Área a calcular T Triángulo R Rectángulo C Círculo
Inicio 1. Leer figura (Fig) 2 0. Inicio 1. Leer figura (Fig) 2. Seleccionar caso Fig Caso “T”, “t” Leer base del triángulo (b) Leer altura del triángulo (h) AreaFig = b * h / 2 Caso “R”, “r” Leer largo del rectángulo (l) Leer ancho del rectángulo (a) AreaFig = l * a Caso “C”, “c” Leer radio del círculo (r) AreaFig = 3.1416 * r2 de lo contrario Mostrar “Opción equivocada” Fin de seleccionar 3. Mostrar área de la figura (AreaFig) 4. Fin
Otros formatos para Select Case en Visual Basic Select Case Variable Case is Relación instrucciones Case valor_inicial to valor_final . Case else End Select
Ejercicio 3 Realizar un programa que dada la edad de una persona, la clasifique de la siguiente manera: Edad Clasificación Menor a dos años Bebé 2 – 12 años Niño 13-17 años Adolescente 18 – 59 años Adulto 60 años o más Tercera edad
Sub Main() Dim edad As Byte edad = InputBox("Introduzca la edad de la persona") Select Case edad Case Is < 2 MsgBox("Bebé") Case 2 To 12 MsgBox("Niño") Case 13 To 17 MsgBox(“Adolescente") Case 18 To 59 MsgBox("Adulto") Case Is >= 60 MsgBox("Tercera edad") End Select End Sub