05 abril, 2021

PSEINT - Determinar la valides de los datos que ingresarán al sistema

¡Hola, coders! El siguiente problema nos envía Juan Roja desde Facebook.


PROBLEMA

Desarrolle un pseudocódigo y diagrama de flujo para la siguiente situación, en esta se espera que usted encuentre una solución a la problemática planteada a través de la lógica de algoritmos: 

Una empresa necesita una solución informática para determinar la valides de los datos que ingresarán al sistema: 

Primer dato: La fecha: Deberá leer 3 números los cuales significan una fecha (día, mes, año). Comprobar que sea válida la fecha, si no es válido que imprima un mensaje de error, y si es válida imprimir el mes con su nombre, el día y el año al final del código. 

Segundo dato: Deberá validar el salario del trabajador del día, por lo tanto, deberán ingresar las horas trabajadas, e nombre del empleado y el valor de la hora de trabajo, si el salario diario es mayor a $ 35.000, se le dará una bonificación del 10% de aumento. 

Tercer dato: La edad del trabajador, deberá calcular cuantos años tiene el empleado, a partir de la fecha de nacimiento. El sistema debe arrojar: La fecha actual: Nombre del empleado: Edad del empleado: Salario del día:



PSEINT

Algoritmo tarea
    
    // Declaración de variables
    Definir diaAct, mesAct, añoAct, diasMes, añoNaci Como Entero
    Definir nomEmp Como Cadena
    Definir horasTrab, tarifaHor, sueldoBas, montoBoni, salarioDia Como Real
    Definir edadEmp Como Entero
    
    // Entrada de datos
    Escribir "Fecha actual"
    Escribir "Día: " Sin Saltar
    Leer diaAct
    Escribir "Mes: " Sin Saltar
    Leer mesAct
    Escribir "Año: " Sin Saltar
    Leer añoAct
    Escribir "Nombre del Empleado: " Sin Saltar
    Leer nomEmp
    Escribir "Año de Nacimiento  : " Sin Saltar
    Leer añoNaci
    Escribir "Horas Trabajadas   : " Sin Saltar
    Leer horasTrab
    Escribir "Tarifa Horaria     : " Sin Saltar
    Leer tarifaHor
    
    // 1) Validar la fecha actual ingresada
    
    // 1.1 Validar el año
    Mientras (añoAct < 2021) Hacer
        Escribir ">>> El año actual no puede ser menor a 2021"
        Escribir ">>> Toque una tecla para continuar..."
        Esperar Tecla
        Limpiar Pantalla
        Escribir "Digite el año actual de nuevo: " Sin Saltar
         Leer añoAct
    FinMientras

    // 1.2 Validar el mes 
    Mientras (mesAct < 1 O mesAct > 12) Hacer
        Escribir ">>> El mes actual debe estar entre 1 y 12"
        Escribir ">>> Toque una tecla para continuar..."
        Esperar Tecla
        Limpiar Pantalla
        Escribir "Digite el mes actual de nuevo: " Sin Saltar
        Leer mesAct
    FinMientras
        
    // 1.3 Determinar el número de días del mes
    Segun (mesAct) Hacer
        // Enero, Marzo, Mayo, Julio, Agosto, Octubre y Diciembre tienen 30 días
        1, 3, 5, 7, 8, 10, 12: diasMes  31    
        // Abril, Junio, Setiembre y Noviembre tienen 30 días
        4, 6, 9, 11: diasMes  30 
        De Otro Modo:
            // Hay que tener en cuenta que Febrero puede tener 28 o 29 días si el año es bisiesto. 
            // Un año es bisiesto cuando es múltiplo de 4 y no de 100 o cuando es múltiplo de 400.
            si((añoAct % 4 == 0) Y ((añoAct % 100  0) O (añoAct % 400 == 0))) Entonces
                diasMes = 29
            SiNo
                diasMes = 28
            FinSi
    Fin Segun
    
    // 1.4 Validar el día
    Mientras (diaAct < 1 O diaAct > diasMes) Hacer
        Escribir ">>> El día actual debe estar entre 1 y ", diasMes
        Escribir ">>> Toque una tecla para continuar..."
        Esperar Tecla
        Limpiar Pantalla
        Escribir "Digite el día actual de nuevo: " Sin Saltar
        Leer diaAct
    FinMientras
    
    // 2. Calcular el salario del trabajador del día
    
    // 2.1 Validar horas trabajadas
    Mientras (horasTrab  0) Hacer
        Escribir "Las horas trabajadas no debe ser menor a 0"
        Escribir ">>> Toque una tecla para continuar..."
        Esperar Tecla
        Limpiar Pantalla
        Escribir "Digite las horas trabajadas de nuevo: " Sin Saltar
        Leer horasTrab
    Fin Mientras
    
    // 2.2 Validar tarifa horaria
    Mientras (tarifaHor  0) Hacer
        Escribir "La tarifa horaria no debe ser menor a 0"
        Escribir ">>> Toque una tecla para continuar..."
        Esperar Tecla
        Limpiar Pantalla
        Escribir "Digite la tarifa horaria de nuevo: " Sin Saltar
        Leer tarifaHor
    Fin Mientras
    
    // 2.3 Calcular el sueldo básico
    sueldoBas  horasTrab * tarifaHor
    
    // 2.4 Calcular el monto de bonificacion
    Si (sueldoBas > 35000) Entonces
        montoBoni  0.10 * sueldoBas
    FinSi
    
    // 2.5 Calcular el salario del día
    salarioDia  sueldoBas + montoBoni
    
    // 3) Calcular la edad del trabajador
    
    // 3.1 Validar el año de nacimiento
    Mientras (añoNaci < 1941) Hacer
        Escribir ">>> El año de nacimiento no debe ser menor a 1941"
        Escribir ">>> Toque una tecla para continuar..."
        Esperar Tecla
        Limpiar Pantalla
        Escribir "Digite el año de nacimiento de nuevo: " Sin Saltar
        Leer añoNaci
    Fin Mientras
    
    // 3.2 Calcular la edad 
    edadEmp  añoAct - añoNaci
    
    // Salida de resultados
    Imprimir ""
    Imprimir "RESULTADO"
    Imprimir "---------"
    Imprimir "La fecha actual    : " , diaAct, "/", mesAct "/", añoAct
    Imprimir "Nombre del empleado: " , nomEmp
    Imprimir "Edad del empleado  : " , edadEmp, " años"
    Imprimir "Horas trabajas     : " , horasTrab , " hora(s)"
    Imprimir "Tarifa horaria     : $ " , tarifaHor
    Imprimir "Sueldo básico      : $ " , sueldoBas
    Imprimir "Bonificación       : $ " , montoBoni 
    Imprimir "Salario del día    : $ " , salarioDia
    
FinAlgoritmo

DIAGRAMA DE FLUJO


PROGRAMA

DESARROLLO TUS ALGORITMOS 🔥🔥


✅ 1. Envía tu algoritmo.
✅ 2. Indica en qué lenguaje de Programación lo deseas.
✅ 3. Para qué fecha lo quieres.
✅ 4. De que país eres (para tu forma de pago)
✅ 5. También se desarrollan al momento.
✅ 6. Los 3 primeros ejercicios son gratis.
🔸 Explico cada ejercicio que desarrollo en el código.

No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!