0% encontró este documento útil (0 votos)
22 vistas12 páginas

Fase 4 NombreApellidos

El documento presenta un componente práctico del curso de Fundamentos de Programación en Python, enfocado en la resolución de problemas mediante el uso de funciones y estructuras de control. Se detallan dos problemas específicos a resolver: uno relacionado con un sistema de pagos para una empresa de seguros y otro sobre un almacén que ofrece descuentos en función de la cédula del cliente. Se incluyen objetivos, requerimientos, y ejemplos de código para cada problema, destacando la importancia de la lógica de programación y la modularidad en el desarrollo de soluciones.

Cargado por

Stiven Ortiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
22 vistas12 páginas

Fase 4 NombreApellidos

El documento presenta un componente práctico del curso de Fundamentos de Programación en Python, enfocado en la resolución de problemas mediante el uso de funciones y estructuras de control. Se detallan dos problemas específicos a resolver: uno relacionado con un sistema de pagos para una empresa de seguros y otro sobre un almacén que ofrece descuentos en función de la cédula del cliente. Se incluyen objetivos, requerimientos, y ejemplos de código para cada problema, destacando la importancia de la lógica de programación y la modularidad en el desarrollo de soluciones.

Cargado por

Stiven Ortiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1Fase 4 - Componente práctico - Prácticas simuladas

Keiner Stiven Lindarte Ortiz

Jose Del Carmen Gelvez

Noviembre 2025.

Universidad Nacional Abierta y a Distancia

Vicerrectoría Académica y de Investigación

Unidad gestora: Escuela de Ciencias Básicas Tecnología e Ingeniería

Programa: Ingeniería de Sistemas

Curso: Fundamentos de Programación

Código: 213022
Introducción

En el presente trabajo se abordará la resolución de problemas utilizando el

lenguaje de programación Python, haciendo énfasis en el uso de funciones con

parámetros y sin parámetros. La práctica permite fortalecer competencias en la

construcción de programas estructurados, la aplicación de estructuras repetitivas

y el manejo de arreglos, elementos fundamentales en la programación.

Este componente práctico permite afianzar la lógica de programación, la

autonomía y la capacidad de aplicar conocimientos en contextos simulados,

preparando al estudiante para enfrentar situaciones reales que requieran

pensamiento computacional y uso adecuado de funciones en Python.


Objetivos

Objetivo General

Desarrollar soluciones en lenguaje Python para dos problemas seleccionados del componente

práctico – Prácticas simuladas, aplicando correctamente funciones con y sin parámetros,

estructuras repetitivas y arreglos, con el fin de fortalecer las habilidades de programación y el

pensamiento lógico.

Objetivos específicos

 Analizar los problemas seleccionados para identificar los requerimientos funcionales

y técnicos necesarios en su implementación.

 Diseñar la tabla de requerimientos para cada problema, integrando entradas, procesos

y salidas de manera clara y organizada.

 Implementar soluciones en Python utilizando funciones con parámetros y sin

parámetros, asegurando una estructura modular, legible y eficiente.

 Aplicar estructuras repetitivas y manejo de arreglos como la parte de la lógica

necesaria para resolver los problemas planteadas.

 Consolidar los resultados en un archivo fuente Py un informe que evidencie el

proceso de análisis, diseño y desarrollo del componente práctico.

 Fortalecer habilidades de autonomía, organización y resolución de problemas dentro

del entorno de práctica simuladas del curso.


Información Situación Problemas Para Resolver

Estudiante: Problema Asignado (Indique el numeral de los problemas escogido)


Identificación
1090416583 Problema 5:

Keiner Stiven Lindarte Una empresa de seguros desea un programa que permita manejar el
Ortiz sistema de pagos, iniciando con un menú Título del menú: Seguros Oficial
S. A. Opción 1: Hacer un pago. Opción 2: Salir. ¿Cuál es su opción? Para
hacer un pago primero hay que validar el código de la póliza de seguro, 7
dígitos donde el primero corresponde al tipo de póliza (Ver tabla 2). Los
tipos de pólizas de seguro son los siguientes.

Tabla 2 Valores pólizas de seguros

TIPO COBERTURA
1-Total 100% Del Pago
2-Normal 100% Hasta 1’000.000 Y 70%
Para Más De 1’000.000
3-Básica 65% Del Pago
Nota. Esta tabla muestra la información de los valores de las pólizas de
seguros, tipo y cobertura. Fuente. Autor

Cree las siguientes funciones:

• Menú: En el main. Presenta las opciones, validando que no sea menor a


1 o mayor a 2 y retorna la seleccionada.

• Validar Código: Recibe el código de la póliza y verificar que el código


sea de 7 dígitos, que el primer dígito este entre 1 y 3. Si cumple retornar
un 1 sino debe retornar un 0.

• Calcular Pagó: Recibe el código del seguro y el monto a pagar y


retornará el valor que se debe pagar a la persona.

Al final del día se debe mostrar la cantidad de pólizas válidas atendidas y


el monto pagado por la empresa.
Problema 6:

Un almacén de cadena, con motivo de la temporada de navidad, se


encuentra desarrollando un plan promocional, consistente en que los
clientes donde la sumatoria de los dígitos de su cédula sea igual al día,
reciben un descuento del 100%. Antes de atender a los clientes el cajero
debe saber el día del mes.

Implemente las siguientes funciones:

Menú Inicial: Utilizado en el main (), funcionara hasta que el usuario de la


opción 2.
Título del menú: Almacenes LEY S. A.

Opción 1: Hacer un cobro.

Opción 2: Salir.

¿Cuál es su opción?

• Leer Productos: Recibe la cantidad de productos y con los nombres,


cantidad y costo unitario (se supone que el cajero lo lee del empaque), de
cada producto decir el subtotal (valor de la cantidad de cada producto), y
al final calcula el valor total de la compra y lo retorna.

• Premio: Recibe el número de cédula y el día, halla la sumatoria de los


dígitos, retorna 1 si la sumatoria es igual al día, y 0 si no lo es.

En el main () por medio de la función Menú Inicial controlar la atención


de los clientes hasta que se seleccione la opción 2.

Al final del día se debe mostrar cuánto dinero se recibió y cuanto se


entregó en premios.
Tabla de requerimientos Problema 5 - Funciones y procedimientos

Identificación del Descripción Entradas Resultados o salidas


requerimiento

R1 Mostrar el menú Ninguna. Opción seleccionada


principal con las por el usuario.
opciones 1. Hacer el
pago y 2. Salir.
R2 Validar que la opción Opción ingresada. Opción válida (retorno
del menú este entre 1 y en el main).
2.
R3 Solicitar e ingresar el Código de póliza Código capturado.
código de póliza. (string o entero).
R4 Validar que el código Código ingresado. 1 si es válido,0 si es
tenga 7 dígitos. invalido.
R5 Validar que el primer Código ingresado. 1 si es válido, 0 si es
digito del código este invalido.
entre 1 y 3 (tipo de
póliza).
R6 Solicitar el monto a Monto ingresado. Valor capturado.
pagar cuando el código
sea válido.
R7 Calcular el pago según Código y monto. Valor a pagar al
el tipo de póliza. cliente.
R8 Llevar conteo de Cada póliza valida. Total, de pólizas
pólizas validas validas.
atendidas.
R9 Sumar el monto total Pago calculado. Total, acumulado
pagado por la empresa. pagado.
R10 Mostrar el final del día, Totales del sistema. Informe final.
el número de pólizas
validas atendidas y el
monto total pagado.
Tabla de requerimientos Problema 6 - Funciones y procedimientos

Identificación del requerimiento Descripción Entradas Resultados o salidas

R1 Mostrar el menú inicial Ninguna. Opción seleccionada


con las opciones 1. por el usuario.
Hacer un cobro y 2.
Salir
R2 Validar que la opción Opción ingresada. Opción válida
elegida este entre 1 y 2. retornada al main.
R3 Solicitar y registrar el Dia del mes (1-31). Dia almacenado para
día del mes para los cálculos.
aplicar la promoción.
R4 Solicitar la cantidad de Cantidad de productos. Numero de producto
productos que el registrado.
cliente va a comprar.
R5 Leer el nombre, Datos de cada Subtotal por producto.
cantidad y costo producto.
unitario de cada
producto.
R6 Calcular el valor total Subtotales. Valor total de la
de la compra sumando compra.
todos los subtotales.
R7 Solicitar la cédula del Número de cédula. Cédula registrada.
cliente.
R8 Calcular la suma de los Dígitos del número. Sumatoria calculatoria.
dígitos de la cédula.
R9 Determinar si la Sumatoria y día 1 si gana permio,0 si
sumatoria de los no gana.
dígitos coincide con el
día del mes.
R10 Aplicar el descuento Valor total de compra y Valor final del cobro (0
del 100% si el cliente premio. o total).
gana.
Código fuente Problema 5:
#Keiner Stiven Lindarte Ortiz
#1090416583
#213022_268
#menu_seguros (): Muestra el menú y valida la opción seleccionada.
#validar_codigo(codigo): Verifica que el código tenga 7 dígitos y que el
primer dígito sea un tipo de póliza válido.
#calcular_pago (código, monto): Calcula el pago según el tipo de póliza.
#Se usan variables acumuladoras (total pólizas, total pagado) para controlar
las pólizas atendidas y el monto total pagado.
#Código Fuente: autoría propia.
def menú seguros ():
while True:
print ("Seguros Oficial S. A.")
print ("1. Hacer un pago")
print ("2. Salir")
opción = input ("¿Cuál es su opción? ")
if opción in ['1', '2']:
return int(opción)
else:
print ("Opción inválida. Intente nuevamente.")

# Función para validar código de póliza


def validar_ código(código):
if len(código) == 7 and código [0] in ['1','2','3']:
return 1
return 0

# Función para calcular el valor a pagar según póliza


def calcular pago (código, monto):
tipo = int (código [0])
if tipo == 1: # Total
return monto
elif tipo == 2: # Normal
if monto <= 1000000:
return monto
else:
return 1000000 + 0.7 * (monto - 1000000)
elif tipo == 3: # Básica
return 0.65 * monto

# Main
total, pólizas = 0
total, pagado = 0
while True:
opción = menús seguros ()
if opción == 2:
break
código = input ("Ingrese el código de la póliza (7 dígitos): ")
if validar_ código(código):
monto = float (input ("Ingrese el monto a pagar: "))
pago = calcular pago (código, monto)
print (f"El valor a pagar es: ${pago:,.2f}")
total, pólizas += 1
total, pagado += pago
else:
print ("Código de póliza inválido.")

print (f"\nTotal de pólizas válidas atendidas: {total pólizas}")


print (f"Monto total pagado por la empresa: ${total_pagado:,.2f}")

Código fuente problema 6:

#keiner Stiven lindarte Ortiz


#1090416583
#213022_268
#menu_almacen (): Muestra el menú y valida la opción seleccionada.
#leer_productos (): Calcula el subtotal de cada producto y el total de la
compra.
#premio (cedula, día): Verifica si la suma de los dígitos de la cédula
coincide con el día y aplica el 100% de descuento.
#Se usan variables acumuladoras (total recibido, total premios) para registrar
ventas y premios del día.
#Código Fuente: autoría propia.
def menú_ almacén ():
while True:
print ("Almacenes LEY S. A.")
print ("1. Hacer un cobro")
print ("2. Salir")
opción = input ("¿Cuál es su opción? ")
if opción in ['1', '2']:
return int(opción)
else:
print ("Opción inválida. Intente nuevamente.")

# Función para leer productos y calcular total


def leer_ productos ():
total = 0
cantidad_ productos = int (input ("Ingrese la cantidad de productos: "))
for i in range (cantidad_ productos):
nombre = input (f"Nombre del producto {i+1}: ")
cantidad = int (input (f"Cantidad de {nombre}: "))
costo_unitario = float (input (f"Costo unitario de {nombre}: "))
subtotal = cantidad * costo_unitario
print (f"Subtotal de {nombre}: ${subtotal:,.2f}")
total += subtotal
return total

# Función para determinar si hay premio


def premio (cedula, día):
suma = sum(int(d) for d in str(cedula))
return 1 if suma == día else 0

# Main
Total_ recibido = 0
Total_ premios = 0
día = int (input ("Ingrese el día del mes: "))

while True:
opción = menú_ almacén ()
if opción == 2:
break
cedula = input ("Ingrese el número de cédula del cliente: ")
total_ compra = leer_ productos ()
if premio (cedula, día):
print ("¡Felicidades! Su compra es 100% gratis.")
total_ premios += total_ compra
else:
print (f"Total a pagar: ${total_compra:,.2f}")
total_ recibido += total_ compra

print (f"\nDinero recibido: ${total_recibido:,.2f}")


print (f"Dinero entregado en premios: ${total_premios:,.2f}")
Conclusiones

La resolución de los problemas me permitió aplicar de manera practica los conceptos

de funciones y procedimientos en Python, mostrando como organizar el código de forma

modular y eficiente.

Además, esta actividad me ayudo a fortalecer mi pensamiento lógico y analítico, ya

que tuve que planear cada paso del programa, desde las entradas de datos hasta los cálculos y

resultados finales. También aprendí a combinar ciclos, condicionales, y acumulaciones para

generar soluciones eficientes y ordenadas.

Finalmente, siento que esta práctica me permitió ver la aplicación real de la

programación en situaciones cotidianas y comerciales. Me doy cuenta de que, con un buen

diseño de funciones y procedimientos, se pueden automatizar tareas que de otra manera

serian lentas o propensas a errores. Sin duda, esta experiencia me ayuda a mejorar mi

capacidad de programación y a entender cómo se aplican estos conceptos en el mundo real.


Bibliografía

 Oviedo, R. E. (2015). Lógica de programación orientada a objetos. (pp.

179-204). https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/

unad/70431?page=179

 Ruiz, R. R. (2011). Fundamentos de la programación orientada a objetos:

Una aplicación a las estructuras de datos en java . (pp. 193 - 204).

https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/70431?

page=71

 Rodríguez Guerrero, R., Vanegas, C. A., & Castang Montiel, G.

(2020). Python a su alcance . Editorial Universidad Distrital Francisco

José de Caldas. Editorial UD. https://research-ebsco-

com.bibliotecavirtual.unad.edu.co/linkprocessor/plink?id=a05b1e42-

2140-30bc-8d6c-1c87fc1bd7ee

 Van Rossum, G., & Drake Jr, F. L. (2024). El tutorial de Python . Python

Software Foundation. https://docs.python.org/es/3.12/tutorial/index.html

También podría gustarte