• Lenguaje

    Pascal

  • Descripción

    Un empleado posee la siguiente información:
    - Código.
    - Nombres.
    - Número de hijos.
    - Salario por hora.
    - Número de horas trabajadas al mes.
    La retención por cada empleado se determina así:
    - Para salarios menores de $1,000,000: si el número de hijos es mayor de 6 no hay retención; si el número de hijos es menor o igual a 6, se le retiene un porcentaje igual a 6 menos el número de hijos dividido por 2.
    - Para salarios iguales o mayores a $300,000: si el número de hijos es menor de 3, se le retiene un 3%; si el número de hijos es mayor o igual a 3 se le retiene un porcentaje igual a 10 dividido por el número de hijos.
    El subsidio por cada hijo es de $1,200. Elaborar un algoritmo que muestre: código, nombres, devengado, retención, subsidio y total a pagar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
program SalarioDevengadoYRetencionDeUnEmpleado;
uses crt;

var devengado, horas_trabajadas, numero_de_hijos, retencion, salario_por_hora : real;
var subsidio, total_a_pagar : real;
var codigo, nombres : string;
begin
    write ('Ingresa el codigo: ');
    readln (codigo);
    write ('Ingresa el nombres: ');
    readln (nombres);
    write ('Ingresa el valor de horas trabajadas: ');
    readln (horas_trabajadas);
    write ('Ingresa el valor de numero de hijos: ');
    readln (numero_de_hijos);
    write ('Ingresa el valor de salario por hora: ');
    readln (salario_por_hora);
    retencion := 0;
    devengado := salario_por_hora*horas_trabajadas;
    subsidio := numero_de_hijos*1200;
    if (devengado<1000000) and (numero_de_hijos>6) then
        begin
            retencion := 0;
        end;
    if (devengado<1000000) and (numero_de_hijos<=6) then
        begin
            retencion := devengado*(6.0-numero_de_hijos/2)/100;
        end;
    if (devengado>=300000) and (numero_de_hijos<3) then
        begin
            retencion := devengado*0.03;
        end;
    if (devengado>=300000) and (numero_de_hijos>=3) then
        begin
            retencion := devengado/numero_de_hijos/10;
        end;
    total_a_pagar := devengado-retencion+subsidio;
    writeln ('Codigo: ', codigo);
    writeln ('Nombres: ', nombres);
    writeln ('Valor de devengado: ', devengado:0:6);
    writeln ('Valor de retencion: ', retencion:0:6);
    writeln ('Valor de subsidio: ', subsidio:0:6);
    writeln ('Valor de total a pagar: ', total_a_pagar:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.