Está en la página 1de 42

Decisiones Anidadas y

Selección Múltiple
Objetivos
q Reconocer la sintaxis y describir la
semántica de una oración de
selección anidada (“nested”).
q Reconocer la sintaxis y describir la
semántica de una oración de
alternativas múltiples o de selección
múltiple (if elif else).
q Dado un problema, poder codificar
la correspondientes oración de
selección anidada o de alternativas
múltpiles (if elif else).

72
Decisiones anidadas (nested-if)
q Un programa esta compuesto por
diferentes combinaciones de
estructuras de flujo de control.
1. Secuencia
2. Selección o Decisión
3. Repetición
4. Subprogramas
q En ocasiones, las estructuras de
flujo de control pueden estar
anidades (nested).
 Una estructura dentro de otra.

73
Decisiones anidadas (nested-if)
q Ejemplo:
 Supongamos que queremos cotejar si una
persona tiene la edad mínima para votar
(18 años).
 Si tiene la edad mínima, queremos
desplegar un mensaje de que puede votar.
 Si no tiene la edad mínima, queremos
cotejar si tiene 17 años y desplegar un
mensaje a esos efectos.
 Si tiene menos de 17, desplegaremos un
mensaje de que no puede votar.

74
Decisiones anidadas (nested-if)
q Veamos una primera solución:

edad = int (input (“\tIngrese su edad: “))


if edad < 18 :
if edad == 17 :
print (“\tTe falta un año para votar.”)
else :
print (“\tNO puedes votar.”)
else :
print (“\tPuedes votar.”)
if anidado en
print (“\tRecuerda registrarte.”) la claúsula if

75
Decisiones anidadas (nested-if)
q Veamos una segunda solución:

edad = int (input (“\tIngrese su edad: “))


if edad >= 18 :
print(“\tFelicidades, puedes votar.”)
print(“\tRecuerda inscribirte.”)
else :
if edad == 17 :
print(“\tTe falta un año para votar.”)
else :
print(“\tNO puedes votar.”)

if anidado en
la claúsula else
76
Oración if elif else
(alternativas múltiples)
q Problema: Usted quiere cobrar la
entrada a un cine dependiendo de la
edad de la persona. Además, desea
clasificar cada persona.
Costo de Entrada
Edad
Clasificación
Entrada = 4.00
Edad < 12
Clase = “Menor”
Entrada = 7.00
12 <= Edad < 65
Clase = “Adulto”
Entrada = 5.00
Edad >= 65
Clase = “Senior”
77
Posibles Soluciones
q Usando tres oraciones if:
if edad < 12 :
Entrada = 4.00
Clase = “Menor”
if edad >= 12 and edad < 65 :
Entrada = 7.00
Clase = “Adulto”
if edad >= 65 :
Entrada = 5.00
Clase = “Senior”

78
Posibles Soluciones
q Usando tres oraciones if:
if edad < 12 :
Entrada = 4.00
Clase = “Menor”
if 12 <= edad < 65 :
Entrada = 7.00
Clase = “Adulto”
if edad >= 65 :
Entrada = 5.00
Clase = “Senior”

79
Posibles Soluciones
q Usando una oración if else:
if edad < 12 :
Entrada = 4.00 if anidado en
claúsula else
Clase = “Menor”
else :
if edad >= 12 and edad < 65 :
Convertir Entrada = 7.00
en elif Clase = “Adulto”

else :
Entrada = 5.00
Clase = “Senior”

80
Oración if elif else
q Usando oración if elif else
q De menor a mayor:
if edad < 12 : NOTE los dos puntos.
Entrada = 4.00
Clase = “Menor”
elif edad >= 12 and edad < 65 :
Entrada = 7.00
Clase = “Adulto”
else :
Entrada = 5.00
NOTE el
sangrado.
Clase = “Senior”

81
Oración if elif else
q Usando oración if elif else
q De menor a mayor:
if edad < 12 :
Entrada = 4.00
Clase = “Menor”
elif 12 <= edad < 65 :
Entrada = 7.00 NOTE los dos puntos.
Clase = “Adulto”
else :
Entrada = 5.00
NOTE el Clase = “Senior”
sangrado.
82
Oración if elif else
q Usando oración if elif else
q De menor a mayor.
q Más eficiente que anteriores.
if edad < 12 :
Entrada = 4.00
Clase = “Menor”
elif edad < 65 :
Entrada = 7.00 NOTE los dos puntos.
Clase = “Adulto”
else :
NOTE el
sangrado.
Entrada = 5.00
Clase = “Senior”
83
Oración if elif else
q Usando oración if elif else
q De mayor a menor:
q Más eficiente que anteriores.
if edad >= 65 :
Entrada = 5.00
Clase = “Senior”
elif edad >= 12 : NOTE los dos puntos.
Entrada = 7.00
Clase = “Adulto”
else :
NOTE el
sangrado. Entrada = 5.00
Clase = “Menor”
84
La oración if elif else
q Sintaxis:
if condición 1 (EB1) :
Bloque 1
elif condición 2 (EB2) :
Bloque 2
elif condición 3 (EB3) :
Bloque 3
...
elif condición n (EBn) : NOTE los dos puntos.
Bloque n
else :
Bloque n+1

85
La oración
if elif else EB1
True
Bloque 1
 Semántica False
True
EB2 Bloque 2
False
True
EB3 Bloque 3

False
True
EBn Bloque n
False
Bloque n+1

86
La oración if elif else
q Recomendaciones: Asegúrese de que:
 Las condiciones de la oración de
selección estén correctas.
 Al final de la claúsula if, de la(s)
claúsula(s) elif y de la claúsula else se
incluyen los dos puntos (:).
 La claúsula if, la(s) claúsula(s) elif y la
claúsula else estén alineadas.
 Las oraciones del bloque de la
claúsula if, las oraciones de l(os)
bloque(s) de cada claúsula elif y las
oraciones del bloque de la claúsula
else estén alineados.
87
Oración if elif else
q Problema: Asignar nota de clase
acuerdo a la siguiente tabla:
Porciento Nota
90 <= Porciento <= 100 A
80 <= Porciento < 90 B
70 <= Porciento < 80 C
60 <= Porciento < 70 D
< 60 F

88
Posibles soluciones
q Usando solo oraciones if:
q De menor a mayor:
if porciento >= 90.0 :
nota = “A”
if porciento >= 80.0 and porciento < 90.0 :
nota = “B”
if porciento >= 70.0 and porciento < 80.0 :
nota = “C”
if porciento >= 60.0 and porciento < 70.0 :
nota = “D”
if porciento < 60.0 :
nota = “F”
89
Posibles soluciones
q Usando oraciones if:
q De menor a mayor:
if porciento >= 90.0 :
nota = “A”
if 80.0 <= porciento < 90.0 :
nota = “B”
if 70.0 <= porciento < 80.0 :
nota = “C”
if 60.0 <= porciento < 70.0 :
nota = “D”
if porciento < 60.0 :
nota = “F”
90
Posibles soluciones
q Usando oraciones if else (if anidados, “nested”)
q De menor a mayor:
if porciento >= 90.0 :
nota = “A”
else :
if porciento >= 80.0 and porciento < 90.0 :
nota = “B”
else :
if porciento >= 70.0 and porciento < 80.0 :
nota = “C”
else:
if porciento >= 60.0 and porciento < 70.0 :
nota = “D”
Usar elif else :
nota = “F” 91
Posibles soluciones
q Usando oraciones if else (if anidados, “nested”)
q De menor a mayor:
if porciento >= 90.0 :
nota = “A”
else :
if 80.0 <= porciento < 90.0 :
nota = “B”
else :
if 70.0 <= porciento < 80.0 :
nota = “C”
else :
if 60.0 <= porciento < 70.0 :
nota = “D”
Usar elif
else :
nota = “F” 92
Posibles soluciones
q Usando oraciones if elif else:
q De mayor a menor:
if porciento >= 90.0 :
nota = “A”
elif porciento >= 80.0 and porciento < 90.0 :
nota = “B”
elif porciento >= 70.0 and porciento < 80.0 :
nota = “C”
elif porciento >= 60.0 and porciento < 70.0 :
nota = “D”
else :
nota = “F”
93
Posibles soluciones
q Usando oraciones if elif else:
q De mayor a menor:
if porciento >= 90.0 :
nota = “A”
elif 80.0 <= porciento < 90.0 :
nota = “B”
elif 70.0 <= porciento < 80.0 :
nota = “C”
elif 60.0 <= porciento < 70.0 :
nota = “D”
else :
nota = “F”
94
Posibles soluciones
q Usando oraciones if elif else:
q De mayor a menor (más eficiente):
if porciento >= 90.0 :
nota = “A”
elif porciento >= 80.0 :
nota = “B”
elif porciento >= 70.0 :
nota = “C”
elif porciento >= 60.0 :
nota = “D”
else :
nota = “F”
95
Posibles soluciones
q Usando oraciones if elif else:
q De menor a mayor (más eficiente):
if porciento < 60.0 :
nota = “F”
elif porciento < 70.0 :
nota = “D”
elif porciento < 80.0 :
nota = “C”
elif porciento < 90.0 :
nota = “B”
else :
nota = “A”
96
Comentarios
q Cualquier selección de dos
alternativas (if else) o de
múltiples alternativas (if elif else)
se puede representar por una
secuencia de selecciones de una
alternativa (if).
q Sin embargo, resulta menos
eficiente pues tenemos que
evaluar más Expresiones Lógicas
o Booleanas.

97
Repaso
q Definir la estructura de
flujo de control conocida
como selección o decisión.
q Enumerar y describir la
sintaxis y semántica de las
tres variantes de
estructuras de flujo de
control de selección.

98
Repaso
q Representar, mediante el
uso de un flujograma, cada
una de las tres variantes de
la estructura de flujo de
control de selección.
q Dado un problema, saber
seleccionar y codificar de
entre las tres variantes de
estructuras de flujo de
control de selección.

99
Repaso
q Reconocer la sintaxis y describir la
semántica de una oración de
selección anidada (“nested”).
q Reconocer la sintaxis y describir la
semántica de una oración de
alternativas múltiples o de selección
múltiple (if elif else).
q Dado un problema, poder codificar
la correspondientes oración de
selección anidada o de alternativas
múltpiles (if elif else).

100
Estructuras de Flujo de Control
1. Secuencia (default)
2. Selección o Decisión (Condicional)
q Oraciones if, if else, if elif else
3. Repetición (Ciclos, Loops, Bucles)
q Oraciones while y for
4. Subprograma
q Funciones (def)

101
Variantes de Selección o Decisión
1. Alternativa Sencilla
q Single alternative/One-way branch
q Oración if

2. Alternativa Doble
q Dual alternative/Two-way branch
q Oración if else

3. Alternativas Múltiples
q Multiple alternatives/Multiple branches
q Oración if elif else

102
La oración if Palabra reservada
q Sintaxis: Claúsula if
if condición (EB) :
NOTE sangrado Bloque
después de : Bloque de oraciones

q Componentes de la claúsula if
1. Palabra reservada if
2. Condición (Expresión Lógica o Booleana)
3. Dos puntos (signo de puntuación)

103
La oración if (alternativa sencilla)
q Semántica
1. Se evalúa la condición o
Expresión Booleana (EB).
2. Si la EB es cierta, se
ejecuta el bloque de
oraciones y se continua
con la oración después
del bloque.
3. Si la EB es falsa, NO se
ejecuta el bloque de
oraciones y se continua
con la oración después
del bloque.

104
La oración if else (alternativa dual)
q Sintaxis: Claúsula if

if condición (EB) :
Palabras Bloque de la claúsula if
Reservadas
Bloque 1

else : Claúsula else

Bloque 2 Bloque de la claúsula else

NOTE: Los dos puntos al final de la claúsula if


y de la claúsula else fuerzan el sangrado de
cada uno de los dos bloques de oraciones.
105
La oración if else (alternativa dual)
q Semántica
1. Se evalúa la condición o
Expresión Booleana (EB)
2. Si la EB es cierta, se
ejecuta el bloque de
oraciones de la
izquierda y se continua
con la oración después
del else.
3. Si la EB es falsa, se
ejecuta el bloque de
oraciones de la derecha
y se continua con la
NOTE: Solo se ejecuta EXACTAMENTE
oración después del
una las dos opciones (bloques).
else.
106
La oración if elif else
q Sintaxis:
if condición 1 (EB1) :
Bloque 1
elif condición 2 (EB2) :
Bloque 2
elif condición 3 (EB3) :
Bloque 3
...
elif condición n (EBn) : NOTE los dos puntos.
Bloque n
else :
Bloque n+1

107
La oración
if elif else EB1
True
Bloque 1
 Semántica False
True
EB2 Bloque 2
False
True
EB3 Bloque 3

False
True
EBn Bloque n
False
Bloque n+1

108
Ejercicio de Práctica 1 (Parte 1)
q Una compañía de software vende uno de sus
productos por $99.00.
q La compañía ofrece descuentos por ventas
al por mayor de acuerdo a la siguiente tabla:
Cantidad Descuento
10 - 19 10%
20 - 49 20%
50 - 99 30%
100 o más 40%

109
Ejercicio de Práctica 1 (Parte 2)
q Codifique un programa en Python que:
 Solicite al usuario que ingrese la
cantidad de productos a ordenar.
 Calcule el costo total de los productos.
 Despliegue:
 Un nombre ficticio para la empresa.
 La cantidad de productos ordenados.
 El costo total de los productos.

110
Ejercicio de Práctica 2 (Parte 1)
q Una compañía de correos cobra por enviar
un paquete de acuerdo al peso del paquete
en libras.
q Lasiguiente tabla recoge el costo por libra
de cada paquete de acuerdo a su peso.
Peso en libras Precio por libra
libras < 2.0 $ 1.50 / libra
2.0 <= libras <= 6.0 $ 3.00 / libra
6.0 < libras <= 10.0 $ 4.00 / libra
libras > 10.0 $ 4.75 / libra

111
Ejercicio de Práctica 2 (Parte 2)
q Codifique un programa en Python que:
 Solicite al usuario que ingrese el peso
en libras del paquete a enviar.
 Calcule el costo del envío del paquete.
 Despliegue:
 Un nombre ficticio para la empresa.
 El peso en libras del paquete.
 El costo del envío.

112

También podría gustarte