Semana 02-2 U4 Estructuras Selectivas
Semana 02-2 U4 Estructuras Selectivas
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE COMPUTACIÓN
CÁTEDRA DE COMPUTACIÓN I
Unidad 4
Estructuras de
Control
Estructuras Selectivas
Octubre de 2022
FUNDAMENTOS DE PROGRAMACIÓN
En esta unidad aprenderá a utilizar las estructuras condicionales, con el fin de dirigir
el flujo del programa de acuerdo a la necesidad de ejecutar las instrucciones necesarias para
resolver un problema.
1 Estructuras de Control
Todos los lenguajes de programación disponen de instrucciones de control de flujo.
Estas instrucciones permiten al programador decidir el orden de ejecución del código con el
fin de permitir ejecutar diferentes órdenes en función de una serie de condiciones sobre el
estado. Python ofrece los dos tipos básicos de
sentencias de control de flujo: las sentencias
condicionales y los ciclos (o repeticiones).
1.1 Sangría.
No todos los lenguajes de programación, necesitan de una sangría, aunque sí, se estila
implementarla, a fin de otorgar mayor legibilidad al código fuente. Pero en el caso de Python,
la sangría es obligatoria, ya que, de ella, dependerá su estructura.
PEP 8: sangría
if a % 2 == 0:
print ('El número es par ')
else:
print ('El número es impar ')
son equivalentes.
Atención
Todas las instrucciones que describen el cuerpo de la estructura deben tener una
sangría mayor que el encabezado de la estructura. Esta sangría puede ingresarse mediante
4 espacios preferiblemente o un tabulador, pero es importante que sea la misma para todas
las instrucciones de la estructura.
Estructuras de Control
Estructuras Selectivas
if expresión_lógica_a_evaluar:
ejecutar_si_cierto
if expresion_a_evaluar:
ejecutar_si_cierto
else:
ejecutar_en_caso_contrario
if expresion_lógica_1:
ejecutar_si_verdadero_1
elif expresion_lógica_2:
ejecutar_si_ verdadero_2
elif expresion_lógica_3:
ejecutar_si_ verdadero_3
else:
ejecutar_si_ninguna
el flujo del programa hace que se ejecuten las instrucciones de ese bloque. A continuación,
se presentan ejemplos de la aplicación de una estructura condicional.
# Lectura de datos
x = float(input('Ingrese un valor x: '))
# Procesamiento de datos
if x < 0.0:
msg = 'negativo'
elif x > 0.0:
msg = 'positivo'
else:
msg = 'cero'
# Salida de datos
print ('x es ', msg)
Ejercicio 1-2: La tasa de impuesto a pagar por una persona según su sueldo es la
siguiente (impuesto.py).
# Lectura de datos
sueldo = float(input('Ingrese su sueldo: '))
# Procesamiento de datos
if sueldo < 1000:
Estructuras de Control
Recomendaciones para la escritura de código limpio.
tasa = 0.00
elif sueldo < 2000:
tasa = 0.05
elif sueldo < 4000:
tasa = 0.10
else:
tasa = 0.12
# Salida de datos
print ('Usted debe pagar ', tasa * sueldo, ' de impuesto')
Siempre sólo una de las alternativas será ejecutada. Tan pronto alguna de las
condiciones es verdadera, el resto de ellas no se evalúan.
hola.py
calculadora.py
print()
input()
3. Las variables se escriben en minúscula y en caso de estar formadas por varias palabras,
éstas van unidas por guiones bajos. Ejemplo:
●●●
Ejercicios con estructuras condicionales
velocidad
altura_inicial
4. Declarar las variables con el tipo de dato adecuado, escribiendo en minúscula dicho tipo
de dato. Ejemplo:
nombre: str
contador_alumnos: int
total += 6
if nombre == 'Ángel':
print('Hola', nombre)
input()
8. Escribe los comentarios necesarios en tu código, describiendo cada detalle, para hacer
que sea lo más claro y legible posible.
9. Escriba la expresión lógica de forma clara, sencilla y de forma positiva, es decir, que se
debe cumplir para ejecutar el bloque de instrucciones.
10. No repita instrucciones dentro de los bloques de la estructura condicional, sí esto sucede
evalúe la posibilidad de que dicha instrucción se escriba fuera de la estructura.
11. No escriba condiciones innecesarias, en algunos casos puede hacer analogía con
inecuaciones o conjuntos, evalúe la posibilidad de utilizar el descarte como parte de la
condición.
12. Si la expresión lógica es muy compleja, puede utilizar una variable para almacenar dicha
expresión.
a∗x + b∗y = c
1) Un sistema de ecuaciones lineales {
d∗x + e∗y = f
Se puede resolver con las siguientes fórmulas: x = (c*e - b*f) / (a*e - b*d); y =
(a*f - c*d) / (a*e - b*d). Desarrolle un programa (sistema.py) que lea los
coeficientes de ambas ecuaciones (a, b, c, d, e y f) y determine los valores
de x e y. Nota: evite la división por cero e imprima el mensaje adecuado.
# Lectura de datos
print('Introduzca los coeficientes: ')
a = float(input('a:'))
b = float(input('b:'))
c = float(input('c:'))
d = float(input('d:'))
e = float(input('e:'))
f = float(input('f:'))
# Procesamiento de datos
deno = a * e - b * d
if deno == 0:
# Sí el denominador es cero, no existe solución
print('No tiene solución el sistema de ecuaciones')
else:
x = (c * e - b * f) / deno
y = (a * f - c * d) / deno
# Salida de datos
print('La solución del sistema de ecuaciones planteado es')
print('X=', x)
print('Y=', y)
input('Pulse una tecla para finalizar... ') # Pausa
3) Dada la el valor numérico con que una persona indica el agrado por un
determinado producto, un valor entre 0 y 100, elabore un programa
(calificación.py) que determine la calificación del producto en base a la
siguiente tabla y empleando if anidados.
Rango Calificación
0-20 Muy Malo
21-40 Deficiente
41-60 Regular
61-80 Bueno
81-100 Muy Bueno
Para plantear la solución empezamos con una decisión considerando el límite superior
del rango, si es menor o igual a ese valor está en esa calificación sino en alguna de las otras,
así vamos descartando una a una las posibilidades, quedando en diagrama de flujo algo como
lo siguiente:
# Lectura de datos
agrado = float(input('Ingrese el valor de agrado: '))
# Procesamiento de datos
if agrado <= 20:
msg = 'Muy Malo'
elif agrado <= 40:
msg = 'Deficiente'
elif agrado <= 60:
Estructuras de Control
Ejercicios Propuestos de Estructuras Condicionales
msg = 'Regular'
elif agrado <= 80:
msg = 'Bueno'
# Salida de datos
print ('La Calificación es ' + msg)
1.6 Resumen
Para poder tomar decisiones en los programas y ejecutar una acción u otra, es
necesario contar con una estructura condicional.
Las condiciones son expresiones booleanas, es decir, cuyos valores pueden ser
verdadero o falso, y se escriben mediante operadores entre distintos valores.
También es posible encadenar las condiciones, es decir, colocar una lista de posibles
condiciones, de las cuales se ejecuta la primera que sea verdadera.
1.7 Glosario
anidamiento: Una estructura de programa dentro de otra; por ejemplo, una sentencia
condicional dentro de una o ambas ramas de otra sentencia condicional.
bloque: Grupo sentencias consecutivas con el mismo sangrado.
condición: La expresión booleana de una sentencia condicional que determina qué
rama se ejecutará.
cuerpo: En una sentencia compuesta, el bloque de sentencias que sigue a la cabecera
de la sentencia.
expresión booleana: Una expresión que es cierta o falsa.
operador de comparación: Uno de los operadores que comparan dos valores: ==.
!=, >, <. >= y <=.
operador lógico: Uno de los operadores que combinan expresiones booleanas: and,
or y not.
operador módulo: Operador, señalado con un signo de tanto por ciento (que trabaja
sobre enteros y devuelve el resto cuando un número se divide entre otro.
sentencia compuesta: Estructura de Python que está formado por una cabecera y un
cuerpo. La cabecera termina en dos puntos (:). El cuerpo tiene una sangría con respecto a la
cabecera.
sentencia condicional: Sentencia que controla el flujo de ejecución de un programa
dependiendo de cierta condición.