Algoritmo para Calcular Salario Semanal en PSeInt (Guía 2026)

Nivel: Básico / Intermedio Tiempo: ~20 min

El cálculo de nómina es una de las aplicaciones empresariales más comunes que un programador debe resolver. En este tutorial, desarrollaremos un algoritmo en PSeInt para calcular el salario semanal de un trabajador basándonos en las horas trabajadas y el pago por hora. Aunque la fórmula básica es una simple multiplicación, este ejercicio es perfecto para introducir conceptos como acumuladores, manejo de moneda con variables Reales y, en la sección avanzada, la lógica condicional para calcular Horas Extra (overtime). Este es un pilar fundamental para entender cómo los sistemas ERP procesan pagos en la vida real.

Conceptos Clave para este Ejercicio

Para procesar pagos correctamente, debemos ser precisos con los tipos de datos y las operaciones:

Variables de Moneda (Reales)

El dinero no es un número entero. Un pago por hora puede ser $15.50 o un salario total $450.75. Por ello, es obligatorio definir las variables de dinero (y usualmente las horas) como Real. Usar enteros provocaría pérdidas de centavos que, a gran escala, son graves errores contables.

Lógica Secuencial vs Condicional

En su forma más simple, el salario es Horas * Tarifa (Secuencial). Sin embargo, si el problema implica «Horas Extra» (pagar doble después de las 40 horas), necesitamos usar estructuras Si-Entonces para bifurcar el cálculo.

Análisis del Problema

Para construir el algoritmo, seguiremos el flujo de procesamiento de una nómina estándar:

  • ENTRADA Datos necesarios del trabajador:
    1. Cantidad de horas trabajadas en la semana.
    2. Tarifa o precio por hora.
  • PROCESO Multiplicar las horas por la tarifa base.
    Fórmula: Salario = Horas * PrecioHora.
  • SALIDA Desplegar el monto total a pagar, idealmente formateado con texto explicativo.

Código Fuente (Cálculo Básico)

Archivo: SalarioSimple.psc
Algoritmo CalculoSalarioBasico
    // 1. Definición de Variables
    // Usamos Real para permitir centavos y fracciones de hora
    Definir horasTrabajadas, pagoPorHora, salarioSemanal Como Real;
    Definir nombreObrero Como Caracter;
    
    // 2. Entrada de Datos
    Escribir "=== Sistema de Nómina ===";
    Escribir "Ingrese el nombre del trabajador:";
    Leer nombreObrero;
    
    Escribir "Ingrese las horas trabajadas esta semana:";
    Leer horasTrabajadas;
    
    Escribir "Ingrese el pago por hora ($):";
    Leer pagoPorHora;
    
    // 3. Proceso
    salarioSemanal <- horasTrabajadas * pagoPorHora;
    
    // 4. Salida
    Escribir "--------------------------------";
    Escribir "Reporte de Pago para: ", nombreObrero;
    Escribir "Total a pagar: $", salarioSemanal;
    Escribir "--------------------------------";
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores Comunes al Calcular Pagos

Estos son los fallos más habituales que cometen los estudiantes al diseñar algoritmos de salarios:

Valores Negativos

Permitir que el usuario ingrese "-10 horas" o un precio de "-50 pesos". Matemáticamente la multiplicación funciona, pero en la lógica de negocios es un error grave. El código siempre debe validar que los números sean positivos.

Ignorar las Horas Extra

En muchos países, trabajar más de 40 horas implica un pago doble por el tiempo excedente. Usar la fórmula simple H*P para alguien que trabajó 50 horas resultará en un pago menor al legal, lo cual es incorrecto en ejercicios intermedios.

Reto: Cálculo con Horas Extra (Condicionales)

Vamos a profesionalizar el algoritmo. Si el empleado trabaja más de 40 horas, las primeras 40 se pagan normal y el resto se paga al doble (2x).

Algoritmo SalarioConHorasExtra
    Definir horas, tarifa, salarioTotal, horasExtra, pagoExtra Como Real;
    
    Escribir "Ingrese horas trabajadas:";
    Leer horas;
    Escribir "Ingrese tarifa por hora:";
    Leer tarifa;
    
    // Validación de datos positivos
    Si horas > 0 Y tarifa > 0 Entonces
        
        // Lógica de Horas Extra
        Si horas > 40 Entonces
            horasExtra <- horas - 40;
            // Las primeras 40 normales + las extra al doble
            salarioTotal <- (40 * tarifa) + (horasExtra * tarifa * 2);
            
            Escribir "Horas normales: 40";
            Escribir "Horas extras (x2): ", horasExtra;
        SiNo
            // Si no hay extras, cálculo simple
            salarioTotal <- horas * tarifa;
        FinSi
        
        Escribir ">>> Sueldo Semanal Neto: $", salarioTotal;
        
    SiNo
        Escribir "Error: Los valores deben ser positivos.";
    FinSi
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿Cómo puedo restar impuestos al salario?
Simplemente calcula el salario bruto y luego multiplica por el porcentaje restante. Ejemplo para un impuesto del 10%: SalarioNeto <- SalarioBruto * 0.90;.
¿Qué pasa si el trabajador falta (0 horas)?
El algoritmo multiplicará 0 por la tarifa, dando como resultado un salario de 0. Esto es matemáticamente correcto y lógico para el negocio.
¿Cómo hago para procesar 50 empleados?
Deberás envolver todo el código de cálculo dentro de un ciclo Para o Mientras, preguntando al usuario cuántos empleados desea procesar al inicio.
¿Puedo agregar bonos de puntualidad?
Sí, solicita una variable extra (ej: bono) y súmala al final: SalarioFinal <- SalarioCalculado + bono;.

¿Listo para el siguiente nivel?

Domina la lógica de programación con nuestra colección completa.

Ver Más Ejercicios Resueltos

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *