• Lenguaje

    Pascal

  • Descripción

    En una empresa se registran los siguientes datos de sus N empleados: remuneración fija, estado civil (soltero o casado) y años de servicio, se solicita calcular:
    a) El sueldo final, sabiendo que todos reciben su remuneración fija más la bonificación que se indica en la tabla:
    Años de servicio | % de Bonificación sobre la remuneración fija
    0 – 10 | 3%
    11 - más | 7%
    b) El menor número de años de servicio de los solteros.
    c) El menor número de años de servicio de los casados.

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 RemuneracionFijaMasBonificacion;
uses crt;

var estado_civil, i, menor_casados, menor_solteros, n : integer;
var anos_de_servicio, bonificacion, remuneracion_fija, sueldo_final : real;
begin
    menor_casados := 0;
    menor_solteros := 0;
    write ('Ingresa el valor de n: ');
    readln (n);
    for i:=1 to n do
    begin
        writeln ('PROCESO ', i);
        write ('Ingresa el valor de anos de servicio: ');
        readln (anos_de_servicio);
        write ('Ingresa el valor de remuneracion fija: ');
        readln (remuneracion_fija);
        writeln ('Selecciona el valor de estado civil.');
        writeln ('    1.- Soltero');
        writeln ('    2.- Casado');
        write ('    : ');
        repeat
            readln (estado_civil);
            if (estado_civil<1) or (estado_civil>2) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (estado_civil>=1) and (estado_civil<=2);
        if anos_de_servicio<11 then
            begin
                bonificacion := remuneracion_fija*0.03;
            end
        else
            begin
                bonificacion := remuneracion_fija*0.07;
            end;
        sueldo_final := remuneracion_fija+bonificacion;
        if (estado_civil=1) and ((i=1) or (menor_solteros>anos_de_servicio)) then
            begin
                menor_solteros := anos_de_servicio;
            end;
        if (estado_civil=2) and ((i=1) or (menor_casados>anos_de_servicio)) then
            begin
                menor_casados := anos_de_servicio;
            end;
        writeln ('Valor de bonificacion: ', bonificacion:0:6);
        writeln ('Valor de sueldo final: ', sueldo_final:0:6);
        writeln;
    end;
    writeln ('Valor de menor casados: ', menor_casados);
    writeln ('Valor de menor solteros: ', menor_solteros);
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.