Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I
Laboratorio No. 2 Estructuras Decisión y Funciones
Integrantes del grupo de trabajo
Alberto Moisés González Machado 2436084-3749
Angie Estefania Bolaños Morán 2439561-3749
Mauricio Chasqui Muchicon 2436801-3749
Profesor(a)
Nubia Ruth Angulo Arizala
Universidad del Valle
Facultad de Ingeniería
Santiago de Cali
2025
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I
Problema 1
1- ANÁLISIS
Variables de entrada:
Nombre → texto [parámetro de la función Calcular_IMC]
Peso, Altura → real [parámetro de la función Calcular_IMC]
Variables de salida:
Nombre, Categoria → texto
Imc → real
Variables auxiliares:
imc → real [variable local de la función Calcular_IMC]
2- PSEUDOCÓDIGO
Inicio
nombre → texto
peso, altura → real
resultadoIMC → real
categoria → texto
imc → real
Definir Calcular_IMC(nombre, peso, altura)
imc = peso / (altura * altura)
Si imc < 18.5 → categoria = "Bajo peso"
Si no, si imc < 25 → categoria = "Normal o saludable"
Si no, si imc < 30 → categoria = "Sobrepeso"
Si no → categoria = "Obesidad"
retornar imc, categoria
resultadoIMC, categoria = Calcular_IMC("Alex Valencia", 68.3, 1.72)
mostrar("Paciente:", "Alex Valencia", "IMC:", resultadoIMC, "Categoría:", categoria)
resultadoIMC, categoria = Calcular_IMC("María Caicedo", 55.1, 1.75)
mostrar("Paciente:", "María Caicedo", "IMC:", resultadoIMC, "Categoría:", categoria)
resultadoIMC, categoria = Calcular_IMC("Juan Morales", 130.1, 1.71)
mostrar("Paciente:", "Juan Morales", "IMC:", resultadoIMC, "Categoría:", categoria)
Fin
2
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I
3- PRUEBA DE ESCRITORIO (Cantidad de columnas o campos de acuerdo a las variables del
análisis )
Nombre Peso Altura Imc Mensaje
Alex Valencia 68.3 1.72 23.08 Normal o saludable
María Caicedo 55.1 1.75 18.00 Bajo peso
Juan Morales 130.1 1.71 44.50 Obesidad
4- CÓDIGO .PY ------- (Imagen del código es opcional)
def Calcular_IMC(nombre, peso, altura):
imc = peso / (altura ** 2)
if imc < 18.5:
categoria = "Bajo peso"
elif imc < 25:
categoria = "Normal o saludable"
elif imc < 30:
categoria = "Sobrepeso"
else:
categoria = "Obesidad"
return round(imc, 2), categoria
resultadoIMC, categoria = Calcular_IMC("Alex Valencia", 68.3, 1.72)
print("Paciente: Alex Valencia | IMC:", resultadoIMC, "| Categoría:", categoria)
resultadoIMC, categoria = Calcular_IMC("María Caicedo", 55.1, 1.75)
print("Paciente: María Caicedo | IMC:", resultadoIMC, "| Categoría:", categoria)
resultadoIMC, categoria = Calcular_IMC("Juan Morales", 130.1, 1.71)
print("Paciente: Juan Morales | IMC:", resultadoIMC, "| Categoría:", categoria)
5- EVIDENCIA DE LA EJECUCIÓN ------- (Imagen de la ejecución con los valores utilizados en
la prueba de escritorio)
3
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I
Problema 2
1- ANÁLISIS
Variables de entrada:
nombre → texto [parámetro de la función PrimaSalarial]
salario base → real [parámetro de la función PrimaSalarial]
antigüedad → entero [parámetro de la función PrimaSalarial]
Variables de salida:
prima → real
Variables auxiliares:
2- PSEUDOCÓDIGO
Inicio
nombre → texto
salario → real
antiguedad → entero
prima → real
Definir PrimaSalarial(nombre, salario, antiguedad)
Si antiguedad < 5 → prima = salario * 0.5
Si no, si antiguedad < 10 → prima = salario * 0.75
Si no → prima = salario
retornar prima
prima = PrimaSalarial("Pablo Rodríguez", 820000, 3)
mostrar("Empleado:", "Pablo Rodríguez", "Prima salarial:", prima)
prima = PrimaSalarial("Luisa Escobar", 2000000, 6)
mostrar("Empleado:", "Luisa Escobar", "Prima salarial:", prima)
prima = PrimaSalarial("Miguel Sandoval", 1300000, 4)
mostrar("Empleado:", "Miguel Sandoval", "Prima salarial:", prima)
Fin
4
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I
3- PRUEBA DE ESCRITORIO (Cantidad de columnas o campos de acuerdo a las variables del
análisis )
Nombre Salario Antigüedad Prima
Pablo Rodríguez 820000 3 410000
Luisa Escobar 2000000 6 1500000
Miguel Sandoval 1300000 4 650000
4- CÓDIGO .PY ------- (Imagen del código es opcional)
def PrimaSalarial(nombre, salario, antiguedad):
if antiguedad < 5:
prima = salario * 0.5
elif antiguedad < 10:
prima = salario * 0.75
else:
prima = salario
return int(prima)
prima = PrimaSalarial("Pablo Rodríguez", 820000, 3)
print("Empleado: Pablo Rodríguez | Prima salarial:", prima)
prima = PrimaSalarial("Luisa Escobar", 2000000, 6)
print("Empleado: Luisa Escobar | Prima salarial:", prima)
prima = PrimaSalarial("Miguel Sandoval", 1300000, 4)
print("Empleado: Miguel Sandoval | Prima salarial:", prima)
5- EVIDENCIA DE LA EJECUCIÓN ------- (Imagen de la ejecución con los valores utilizados en
la prueba de escritorio)
5
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I
Problema 3
1- ANÁLISIS
Variables de entrada:
jeans → entero [parámetro de la función FacturaCompra]
vestidos → entero [parámetro de la función FacturaCompra]
numero → entero [parámetro de la función FacturaCompra]
Variables de salida:
total → real
descuento → real (si aplica)
total final → real
Variables auxiliares:
2- PSEUDOCÓDIGO
Inicio
jeans, vestidos → entero
numero → entero
total, descuento, total_final → real
Definir FacturaCompra(numero, jeans, vestidos)
total = jeans*80000 + vestidos*90000
mostrar("--------------------------------------------------")
mostrar(" Factura de Compra ", numero)
mostrar("--------------------------------------------------")
Si total > 400000
descuento = total * 0.25
total_final = total - descuento
mostrar("El valor a pagar sin descuento es: $", total)
mostrar("El valor del descuento es: $", descuento)
mostrar("El valor total a pagar es: $", total_final)
Si no
mostrar("El valor total a pagar es: $", total)
mostrar("--------------------------------------------------")
mostrar FacturaCompra(1, 6, 3)
mostrar FacturaCompra(2, 5, 5)
mostrar FacturaCompra(3, 2, 0)
Fin
6
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I
3- PRUEBA DE ESCRITORIO (Cantidad de columnas o campos de acuerdo a las variables del
análisis )
Jeans Vestidos Total sin desc. Descuento Total final
6 3 750000 187500 562500
5 5 850000 212500 637500
2 0 160000 0 160000
4- CÓDIGO .PY ------- (Imagen del código es opcional)
def FacturaCompra(numero, jeans, vestidos):
total = jeans * 80000 + vestidos * 90000
print("--------------------------------------------------")
print(" Factura de Compra", numero)
print("--------------------------------------------------")
if total > 400000:
descuento = total * 0.25
total_final = total - descuento
print("El valor a pagar sin descuento es: $", total)
print("El valor del descuento es: $", descuento)
print("El valor total a pagar es: $", total_final)
else:
print("El valor total a pagar es: $", total)
print("--------------------------------------------------\n")
FacturaCompra(1, 6, 3)
FacturaCompra(2, 5, 5)
FacturaCompra(3, 2, 0)
5- EVIDENCIA DE LA EJECUCIÓN ------- (Imagen de la ejecución con los valores utilizados en
la prueba de escritorio)
7
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas y Computación Informática I