• Lenguaje

    Pascal

  • Descripción

    En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la sig. Forma: Si el obrero trabaja 48 horas o menos se le paga al valor normal por hora; Si trabaja más de 48 horas y menos de 60 horas, se le paga el valor normal por cada una de las primeras 48 horas y las restantes se pagan con un incremento del 35% sobre el valor de la hora normal; en caso contrario se le paga el valor normal por cada una de las primeras 48 horas, las siguientes 8 horas se le pagan con un incremento del 35% sobre el valor de la hora normal y las restantes se pagan con un incremento del 45% sobre el valor de la hora normal. Adicional a esto también se le debe decir al gerente cuanto pago en la nómina total y cuantos trabajadores trabajaron más de 60 horas, cuántos trabajaron más de 48 horas y menos de 61.

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
program SalarioSemanalDeNObreros;
uses crt;

var i, n, trabajadores_60_o_mas, trabajadores_entre_48_y_61 : integer;
var horas_trabajadas, nomina_total, pago_por_hora, salario_semanal : real;
begin
    trabajadores_60_o_mas := 0;
    trabajadores_entre_48_y_61 := 0;
    nomina_total := 0;
    write ('Ingresa el valor de n: ');
    readln (n);
    for i:=1 to n do
    begin
        writeln ('PROCESO ', i);
        write ('Ingresa el valor de horas trabajadas: ');
        readln (horas_trabajadas);
        write ('Ingresa el valor de pago por hora: ');
        readln (pago_por_hora);
        salario_semanal := pago_por_hora*horas_trabajadas;
        if horas_trabajadas>48 then
            begin
                salario_semanal := salario_semanal+pago_por_hora*(horas_trabajadas-48)*0.35;
            end;
        if horas_trabajadas>=60 then
            begin
                salario_semanal := salario_semanal+pago_por_hora*(horas_trabajadas-60)*0.1;
            end;
        nomina_total := nomina_total+salario_semanal;
        if horas_trabajadas>=60 then
            begin
                trabajadores_60_o_mas := trabajadores_60_o_mas+1;
            end;
        if (horas_trabajadas>48) and (horas_trabajadas<61) then
            begin
                trabajadores_entre_48_y_61 := trabajadores_entre_48_y_61+1;
            end;
        writeln ('Valor de salario semanal: ', salario_semanal:0:6);
        writeln;
    end;
    writeln ('Valor de trabajadores 60 o mas: ', trabajadores_60_o_mas);
    writeln ('Valor de trabajadores entre 48 y 61: ', trabajadores_entre_48_y_61);
    writeln ('Valor de nomina total: ', nomina_total:0:6);
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.