APRENDO EN CASA - Formación Técnica PCAP
Programación con Python
Introducción a los Fundamentos de Programación - Estructuras de Control
Semana 3
Objetivo de aprendizaje de la sesión
• El objetivo de aprendizaje es
identificar la estructura de un
algoritmo, variables, las condicionales
simples dobles y anidadas de un
algoritmo.
Temas de tutoría
• Caso Practico: Desarrollo de ejemplos
aplicando control secuencial y
condicional con variables y operadores
en Python.
Casos prácticos a desarrollar
CASO 1:
El cálculo del pago mensual de un empleado de una
empresa se efectúa de la siguiente manera: el sueldo
básico se calcula en base al número total de horas
trabajadas basado en una tarifa horaria; al sueldo
básico, se le aplica una bonificación del 20%
obteniéndose el sueldo bruto; al sueldo bruto, se le
aplica un descuento del 10% obteniéndose el sueldo
neto. Escriba un programa que calcule e imprima el
sueldo básico, el sueldo bruto y el sueldo neto de un
trabajador.
Solución al CASO 1:
# 1. Variables a usar # 4. Salida de resultados
# horasTrab, tarifaHor (float) print("Reporte General: ")
# sueldoBas, montoBoni, sueldoBru, montoDesc, sueldoNeto (float) print("Sueldo Básico\t: ", sueldoBas)
print("Bonificación\t: ", montoBoni)
# 2. Entrada de datos print("Sueldo Bruto\t: ", sueldoBru)
horasTrab = float(input("Ingrese las horas trabajadas: ")) print("Descuento\t: ", montoDesc)
tarifaHor = float(input("Ingrese la tarifa por hora: ")) print("Sueldo Neto\t: ", sueldoNeto)
# 3. Proceso de cálculo
sueldoBas = horasTrab * tarifaHor
montoBoni = 0.20 * sueldoBas
sueldoBru = sueldoBas + montoBoni
montoDesc = 0.10 * sueldoBru
sueldoNeto = sueldoBru - montoDesc
Casos prácticos a desarrollar
CASO 2:
Escriba un programa que calcule el área total y el
volumen de un cilindro. Considere las siguientes
fórmulas: A = 2πr(r+h) y V = πr²h; siendo A el área,
V el volumen, r el radio y h la altura.
Solución al CASO 2:
# 1. Variables a usar
# r, h, area, volumen (float)
# 2. Entrada de datos
r = float(input("Ingrese el radio del cilindro: "))
h = float(input("Ingrese la altura del cilindro: "))
# 3. Proceso de calculo
area = 2 * 3.14 * r * (r + h)
volumen = 3.14 * r * r * h
# 4. Salida de resultados
print("El área del cilindro es: ", area)
print("El volumen del cilindro es: ", volumen)
Casos prácticos a desarrollar
CASO 3:
Débora, Raquel y Séfora aportan cantidades de dinero
para formar un capital. Diseñe un programa que
determine el capital formado y el porcentaje de dicho
capital que aporta cada uno.
Solución al CASO 3:
# 1. Variables a usar # 4. Salida de resultados
# aporteDebora, aporteRaquel, aporteSefora, capital (float) print("El capital es: ", capital)
# porcentajeDebora, porcentajeRaquel, porcentajeSefora (float) print("El pocentaje de Débora es: ", round(porcentajeDebora), "%")
print("El pocentaje de Raquel es: ", round(porcentajeRaquel), "%")
# 2. Entrada de datos print("El pocentaje de Séfora es: ", round(porcentajeSefora), "%")
aporteDebora = float(input("Ingrese el aporte de Débora: "))
aporteRaquel = float(input("Ingrese el aporte de Raquel: "))
aporteSefora = float(input("Ingrese el aporte de Séfora: "))
# 3. Proceso de calculo
capital = aporteDebora + aporteRaquel + aporteSefora
porcentajeDebora = (aporteDebora / capital) * 100
porcentajeRaquel = (aporteRaquel / capital) * 100
porcentajeSefora = (aporteSefora / capital) * 100
Casos prácticos a desarrollar
CASO 4: Adicionalmente, si el cliente adquiere más de 50
unidades la tienda le descuenta el 15% del importe de
Una tienda vende un producto a precios unitarios que
la compra; en caso contrario, sólo le descuenta el 5%.
dependen de la cantidad de unidades adquiridas de
Diseñe un programa que determine el importe de la
acuerdo a la siguiente tabla:
compra, el importe del descuento y el importe a pagar
por la compra de cierta cantidad de unidades del
producto.
Unidades adquiridas Precio unitario
1 a 25 S/. 27.7
26 a 50 S/. 25.5
51 a 75 S/. 23.5
76 en adelante S/. 21.5
Solución al CASO 4:
# 1. Variables a usar # 4. Calculo del importe del descuento
# unidades (int) if unidades > 50:
# impcom, impdes, imppag (float) impdes = 0.15 * impcom
elif unidades <= 50:
# 2. Entrada de datos impdes = 0.05 * impcom;
unidades = int(input("ingrese la cantidad de unidades adquiridas: "))
# 5. Calculo del importe a pagar
# 3. Calculo del importe de la compra imppag = impcom - impdes
if unidades >= 1 and unidades <= 25:
impcom = unidades * 27.7 # 6. Salida de resultados
elif unidades >= 26 and unidades <= 50: print("Importe de la compra: ", impcom)
impcom = unidades * 25.5 print("Importe del descuento: ", impdes)
elif unidades >= 51 and unidades <= 75: print("Importe a pagar: ", imppag)
impcom = unidades * 23.5
elif unidades >= 76:
impcom = unidades * 21.5
Casos prácticos a desarrollar
CASO 5:
El promedio final de un curso se obtiene en base al
promedio simple de tres prácticas calificadas. Para
ayudar a los alumnos, el profesor del curso ha
prometido incrementar en dos puntos la nota de la
tercera práctica calificada, si es que esta es no menor
que 10. Diseñe un programa que determine el
promedio final de un alumno conociendo sus tres
notas. No use operadores lógicos en la solución y
considere que la nota máxima es 20.
Solución al CASO 5:
# 1. Variables a usar # 4. Cálculo del promedio
# promedio (float) promedio = (p1 + p2 + p3) / 3
# p1, p2, p3 (int)
# 5. Salida de resultados
# 2. Entrada de datos print("Promedio final: ", promedio)
p1 = int(input("Ingrese la nota de la primer práctica: "))
p2 = int(input("Ingrese la nota de la segunda práctica: "))
p3 = int(input("Ingrese la nota de la tercera práctica: "))
# 3. Si amerita, añade 2 puntos a p3
if p3 >= 10:
p3 = p3 + 2
if p3 > 20:
p3 = 20
Casos prácticos a desarrollar
CASO 6:
En un estacionamiento, se cobra S/. 2.5 por hora o
fracción de hora. Dado el tiempo de estacionamiento
de un vehículo expresado en el formato HH:MM,
determine el importe a pagar por concepto de
estacionamiento.
Solución al CASO 6:
# 1. Variables a usar
# horas, minutos (int)
# importe (float)
# 2. Entrada de datos
horas = int(input("Ingrese las horas que estuvo el vehículo en el estacionamiento: "))
minutos = int(input("Ingrese los minutos que estuvo el vehículo en el estacionamiento: "))
# 3. Si hay una fracción de hora, se cobra una hora adicional
if minutos > 0:
horas = horas+1
# 4. Determina el importe a pagar
importe = horas * 2.5
# 5. Salida de resultados
print("Número de horas a pagar: ", horas)
print("Importe a pagar: ", importe)
Casos prácticos a desarrollar
CASO 7:
La empresa Coca-Cola Company solicita un sistema que determine los días de vacaciones a los que
tiene derecho un trabajador, tomando en cuenta las siguientes características:
Existen tres departamentos dentro de la empresa con sus respectivas claves:
1. Departamento de Atención al cliente. (Clave 1)
2. Departamento de Logística. (Clave 2)
3. Gerencia. (Clave 3)
Casos prácticos a desarrollar
Trabajadores con clave 1 (Atención al cliente): Trabajadores con clave 3(Gerencia):
Con 1 año de servicio, reciben 6 días de vacaciones. Con 1 año de servicio, reciben 10 días de vacaciones.
Con 2 a 6 años de servicio, reciben 14 días de vacaciones. Con 2 a 6 años de servicio, reciben 20 días de vacaciones.
A partir de 7 años de servicio, reciben 20 días de A partir de 7 años de servicio, reciben 30 días de vacaciones.
vacaciones.
Nota: El sistema debe de solicitar el “Nombre”, “Clave del
Trabajadores con clave 2 (Logística): departamento” y “Antigüedad” del trabajador, posteriormente
Con 1 año de servicio, reciben 7 días de vacaciones. mostrar un mensaje que contenga el nombre del trabajador y
los días de vacaciones a los que tiene derecho.
Con 2 a 6 años de servicio, reciben 15 días de vacaciones.
A partir de 7 años de servicio, reciben 22 días de
vacaciones.
Casos prácticos a desarrollar
TRABAJADORES:
Gerardo clave 3, tiene 3 años de servicio
Merece 20 días de vacaciones
Luis clave 1, tiene 1 años de servicio
Merece 6 días de vacaciones
Félix clave 2, tiene 12 años de servicio
Merece 22 días de vacaciones
Solución al CASO 7:
# 1. Variables a usar elif clave == 2:
# nomrbe (string) if antiguedad == 1:
print(nombre, "merece 7 días de vacaciones")
# antiguedad, clave (int)
elif antiguedad >= 2 and antiguedad <= 6:
print(nombre, "merece 15 días de vacaciones")
# 2. Entrada de datos
elif antiguedad >= 7:
nombre = input("¿Cuál es el nombre del trabajador? ") print(nombre, "merece 22 días de vacaciones")
antiguedad = int(input("¿Cuántos años de servicio tiene el trabajador? ")) else:
clave = int(input("¿Cuál es la clave del departamento? ")) print("Aún no tiene derecho a vacaciones")
elif clave == 3:
# 3. Calculo de dias de vacaciones y salida de resultados
if antiguedad == 1:
if clave == 1:
print(nombre, "merece 10 días de vacaciones")
if antiguedad == 1:
elif antiguedad >= 2 and antiguedad <= 6:
print(nombre, "merece 6 días de vacaciones") print(nombre, "merece 20 días de vacaciones")
elif antiguedad >= 2 and antiguedad <= 6: elif antiguedad >= 7:
print(nombre, "merece 14 días de vacaciones") print(nombre, "merece 30 días de vacaciones")
elif antiguedad >= 7: else:
print("Aún no tiene derecho a vacaciones")
print(nombre, "merece 20 días de vacaciones")
else:
else:
print("Aún no tiene derecho a vacaciones")
print("La clave de departamento no existe")