-
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
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.
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.