• Lenguaje

    Pascal

  • Descripción

    Se requiere un programa, que calcule el salario semanal neto de un trabajador. Tomando en cuenta lo siguiente.
    - Pedir horas laboradas en la semana.
    - Pedir el salario por hora.
    - Se entiende que una jornada laboral es de 8 horas.
    - Solo tomaremos en cuenta 6 días laborables por semana
    - Las horas extra por semana, de 1 a 16 horas se paga dobles, y de 16 en adelante se pagan triples.
    - Calcular el salario neto semanal. Este le deberemos descontar el ISR, normalmente varía dependiendo el salario, pero nosotros lo fijaremos en un 18%.
    Tomando en cuenta que a la semana seria 48 horas y un sueldo de 100 por hora. Si ustedes introducen por ejemplo 70 horas laboradas en la semana entonces:
    1. 48 se pagaran normal = 4800
    2. 16 se pagaran dobles = 3200
    3. 6 se pagaran triples = 1800
    La sumatoria nos dará el salario bruto = 9800, a esto le quitaremos el ISR para que nos de el salario neto.
    Para sacar el salario neto = salario bruto/ 1.18 = 9800 / 1.18 = 8305.08
    Para sacar el ISR = salario bruto - salario neto = 1494.92
    En pantalla tendrán que mostrar como resultado.
    1. Salario bruto = 9800
    2. ISR = 1494.92
    3. Salario neto =8305.08

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

var ISR, horas_dobles, horas_laboradas_en_la_semana, horas_normales, horas_triples : real;
var salario_bruto, salario_neto, salario_x_hora : real;
begin
    write ('Ingresa el valor de horas laboradas en la semana: ');
    readln (horas_laboradas_en_la_semana);
    write ('Ingresa el valor de salario x hora: ');
    readln (salario_x_hora);
    if horas_laboradas_en_la_semana>8*6 then
        begin
            horas_normales := 8*6;
            horas_dobles := horas_laboradas_en_la_semana-8*6;
        end
    else
        begin
            horas_normales := horas_laboradas_en_la_semana;
            horas_dobles := 0;
        end;
    if horas_dobles>16 then
        begin
            horas_triples := horas_dobles-16;
            horas_dobles := 16;
        end
    else
        begin
            horas_triples := 0;
        end;
    salario_bruto := salario_x_hora*horas_normales+salario_x_hora*horas_dobles*2+salario_x_hora*horas_triples*3;
    salario_neto := salario_bruto/1.18;
    ISR := salario_bruto-salario_neto;
    writeln ('Valor de ISR: ', ISR:0:6);
    writeln ('Valor de horas dobles: ', horas_dobles:0:6);
    writeln ('Valor de horas normales: ', horas_normales:0:6);
    writeln ('Valor de horas triples: ', horas_triples:0:6);
    writeln ('Valor de salario bruto: ', salario_bruto:0:6);
    writeln ('Valor de salario neto: ', salario_neto:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.