viernes, 31 de julio de 2026

Crear un programa que determine los días de vacaciones para un determinado trabajador en Python

Escribir un programa que determine los días de vacaciones para un determinado trabajador con las siguientes caracteristicas:

- Existen 3 departamentos en la empresa con su respectivo identificador:

  • Departamento de TI (ID = 1)
  • Departamento de RRHH (ID = 2)
  • Departamento de Finanzas (ID = 3)

- Para los trabajadores de TI se tienen las siguientes condiciones:

  • Con 1 año de antigüedad, reciben 5 días de vacaciones
  • Con 2 a 6 años de antigüedad reciben 15 días de vacaciones
  • Con 7 o más años de antigüedad reciben 20 días de vacaciones

- Para los trabajadores de RRHH se tienen las siguientes condiciones:

  • Con 1 año de antigüedad, reciben 7 días de vacaciones
  • Con 2 a 6 años de antigüedad reciben 17 días de vacaciones
  • Con 7 o más años de antigüedad reciben 22 días de vacaciones

- Para los trabajadores de Finanzas se tienen las siguientes condiciones:

  • Con 1 año de antigüedad, reciben 10 días de vacaciones
  • Con 2 a 6 años de antigüedad reciben 20 días de vacaciones
  • Con 7 o más años de antigüedad reciben 25 días de vacaciones

- El programa debe solicitar al trabajador ingresar por teclado su nombre, ID del departamento y los años de antigüedad. Al finalizar el programa debe mostrar en pantalla el nombre del trabajador y los días de vacaciones asignados.

Código del ejercicio:

import os
nombre = str(input("Ingrese su nombre: "))
while True:
    print(f"Elige tu departamento de la empresa:\n\
    presiona 1 para Departamento de TI (ID = 1).\n\
    presiona 2 para Departamento de RRHH (ID = 2).\n\
    presiona 3 para Departamento de Finanzas (ID = 3).\n\
    presiona 4 para Salir.\n")
    opcion = input()
    if opcion == '1':
        print(f"Elige tu año de antiguedad en la empresa:\n\
        presiona 1 si tienes 1 año de antiguedad.\n\
        presiona 2 si tienes 2 a 6 años de antiguedad.\n\
        presiona 3 si tienes 7 o más años de antiguedad.\n")
        opcion = input()
        if opcion == '1':
            print(f"{nombre} usted recibe 5 días de vacaciones.")
        elif opcion == '2':
            print(f"{nombre} usted recibe 15 días de vacaciones.")
        elif opcion == '3':
            print(f"{nombre} usted recibe 20 días de vacaciones.")
    elif opcion == '2':
        print(f"Elige tu año de antiguedad en la empresa:\n\
        presiona 1 si tienes 1 año de antiguedad.\n\
        presiona 2 si tienes 2 a 6 años de antiguedad.\n\
        presiona 3 si tienes 7 o más años de antiguedad.\n")
        opcion = input()
        if opcion == '1':
            print(f"{nombre} usted recibe 7 días de vacaciones.")
        elif opcion == '2':
            print(f"{nombre} usted recibe 17 días de vacaciones.")
        elif opcion == '3':
            print(f"{nombre} usted recibe 22 días de vacaciones.")
    elif opcion == '3':
        print(f"Elige tu año de antiguedad en la empresa:\n\
        Presiona 1 si tienes 1 año de antiguedad.\n\
        presiona 2 si tienes 2 a 6 años de antiguedad.\n\
        presiona 3 si tienes 7 o más años de antiguedad.\n")
        opcion = input()
        if opcion == '1':
            print(f"{nombre} usted recibe 10 días de vacaciones.")
        elif opcion == '2':
            print(f"{nombre} usted recibe 20 días de vacaciones.")
        elif opcion == '3':
            print(f"{nombre} usted recibe 25 días de vacaciones.")
    elif opcion == '4':
        break
    input()
    os.system("cls")

Definición de los códigos del ejercicio:

import --> usa import palabra clave para hacer que el código de un módulo esté disponible en otro.
os --> proporciona funciones para interactuar con el sistema operativo.
str() --> convierte el valor especificado en una cadena.
input() --> permite obtener texto escrito por teclado.
while True --> se ejecuta sin ninguna condición hasta que la instrucción break se ejecuta dentro del ciclo.
\n --> es el carácter de salto de línea y se usa para indicar el fin de una línea de texto y el inicio de una línea nueva.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
elif --> use else if para especificar una nueva condición para probar, si la primera condición es falsa.
break --> se utiliza para romper un for bucle o un while bucle.
os.system() --> ejecuta el comando (una cadena) en un subshell.
print() --> imprime un mensaje en la pantalla.
f'{}' --> un literal de cadena con formato o f-string es un literal de cadena que tiene el prefijo 'f'o 'F'. Facilita crear interpolaciones en cadenas de texto, simplificando de este modo tanto la lectura como la escritura de estas. Si quieres mostrar variables utilizando f-strings, solo tienes especificar el nombre de las variables entre llaves {}. Y al ejecutar tu código, todos los nombres de las variables serán remplazados con sus respectivos valores.

Explicación del Código:

Este programa solicita el nombre del trabajador, el departamento donde trabaja y los años de antigüedad. Con esa información determina automáticamente la cantidad de días de vacaciones que le corresponden según las reglas de la empresa. El programa permanece funcionando hasta que el usuario decide salir.

Explicación paso a paso

Código Explicación sencilla
import os Importa la librería os, que permite ejecutar comandos del sistema operativo. En este programa se utiliza para limpiar la pantalla.
nombre = str(input(...)) Solicita al usuario que escriba su nombre y lo guarda en la variable nombre.
while True: Crea un ciclo infinito para que el menú aparezca una y otra vez hasta que el usuario elija salir.
print(...) Muestra el menú con los tres departamentos de la empresa y la opción para salir.
opcion = input() Guarda la opción que el usuario escribe.
if opcion == '1' Comprueba si el trabajador pertenece al Departamento de TI.
elif opcion == '2' Comprueba si pertenece al Departamento de Recursos Humanos.
elif opcion == '3' Comprueba si pertenece al Departamento de Finanzas.
print(... antigüedad ...) Muestra un segundo menú para que el trabajador indique cuántos años lleva trabajando en la empresa.
opcion = input() Guarda la opción correspondiente a la antigüedad.
if, elif Dependiendo del departamento y de los años de antigüedad, muestra la cantidad de días de vacaciones que le corresponden al trabajador.
break Si el usuario selecciona la opción 4, el ciclo termina y el programa finaliza.
input() Hace una pausa para que el usuario pueda leer el resultado antes de continuar.
os.system("cls") Limpia la pantalla en Windows antes de volver a mostrar el menú.

Funcionamiento del programa

El programa primero solicita el nombre del trabajador. Después muestra un menú para elegir el departamento donde trabaja. Una vez seleccionado el departamento, pide indicar los años de antigüedad en la empresa. Según esa información, utiliza estructuras if y elif para determinar cuántos días de vacaciones le corresponden. Finalmente muestra el resultado con el nombre del trabajador y los días de vacaciones asignados. El proceso puede repetirse varias veces hasta que el usuario seleccione la opción de salir.

Estructuras utilizadas

  • import: Importa la librería os.
  • input(): Permite ingresar datos desde el teclado.
  • print(): Muestra información en pantalla.
  • while True: Repite el menú indefinidamente.
  • if y elif: Evalúan las opciones elegidas por el usuario.
  • break: Finaliza el ciclo cuando el usuario desea salir.
  • os.system("cls"): Limpia la consola en Windows.
Resumen:

El programa determina automáticamente los días de vacaciones de un trabajador según dos factores:
  • El departamento donde trabaja.
  • Los años de antigüedad en la empresa.
Además, utiliza un menú repetitivo para permitir consultar varios trabajadores sin reiniciar el programa.

No hay comentarios.:

Publicar un comentario

Calcular la altura de una pirámide en Python

La pirámide se apila de acuerdo con un principio simple: cada capa inferior contiene un bloque más que la capa superior. La fig...

Copyright © Ejercicios de programación. Todos los derechos reservados. ❤️