Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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:
75
Decisiones anidadas (nested-if)
q Veamos una segunda solución:
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
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