• Lenguaje

    Pascal

  • Descripción

    Calcular los salarios semanales de los trabajadores de una empresa a partir de los siguientes datos:
    - Número de empleado.
    - Número de horas trabajadas.
    - El turno de trabajo realizado (Mañana 1, Tarde 2, Noche 3).
    - La tarifa ordinaria por hora de cada uno de los trabajadores.
    Para el cálculo del salario bruto se tendrá en cuenta que el turno de tarde se paga a 1,2 más de la tarifa ordinaria, mientras que el turno de noche se paga a 1,5 más, también de la tarifa ordinaria.
    Para el cálculo del salario neto se realizan determinados descuentos destinados al pago de impuestos.
    Se desea imprimir el salario bruto de cada trabajador.
    La lectura de los datos finaliza respondiendo S (Sí) o N (No).

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
48
49
50
51
52
program SalariosSemanalesDeTrabajadores;
uses crt;

var turno : integer;
var horas_trabajadas, impuestos, salario neto, salario_bruto, tarifa_ordinaria : real;
var numero_de_empleado : string;
var tecla_repetir : char;
begin
    repeat
        clrscr;
        write ('Ingresa el numero de empleado: ');
        readln (numero_de_empleado);
        write ('Ingresa el valor de horas trabajadas: ');
        readln (horas_trabajadas);
        write ('Ingresa el valor de impuestos: ');
        readln (impuestos);
        write ('Ingresa el valor de tarifa ordinaria: ');
        readln (tarifa_ordinaria);
        salario_bruto := 0;
        writeln ('Selecciona el valor de turno.');
        writeln ('    1.- Ma'#164'ana');
        writeln ('    2.- Tarde');
        writeln ('    3.- Noche');
        write ('    : ');
        repeat
            readln (turno);
            if (turno<1) or (turno>3) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (turno>=1) and (turno<=3);
        if turno=1 then
            begin
                salario_bruto := horas_trabajadas*tarifa_ordinaria;
            end;
        if turno=2 then
            begin
                salario_bruto := horas_trabajadas*tarifa_ordinaria*1.2;
            end;
        if turno=3 then
            begin
                salario_bruto := horas_trabajadas*tarifa_ordinaria*1.5;
            end;
        salario neto := salario_bruto-impuestos;
        writeln ('Numero de empleado: ', numero_de_empleado);
        writeln ('Valor de salario neto: ', salario neto:0:6);
        writeln ('Valor de salario bruto: ', salario_bruto:0:6);
        writeln;
        write (#168'Deseas repetir el proceso? (S/N): ');
        repeat
            tecla_repetir := readkey;
        until (tecla_repetir = 's') or (tecla_repetir = 'n') or (tecla_repetir = 'S') or (tecla_repetir = 'N');
    until (tecla_repetir <> 's') and (tecla_repetir <> 'S');
end.