-
Lenguaje
Pascal
-
Descripción
La compañía ABC otorga por una sola vez al año, una bonificación a sus empleados. Se requiere determinar la bonificación que un trabajador recibe, si esta se le asigna como un porcentaje de su salario mensual que depende de su antigüedad en la empresa de acuerdo con la siguiente tabla:
Tiempo | Porcentaje
Menos de 5 año | 5% del salario
5 o más años y menos de 10 años | 10% del salario
10 o más años y menos de 15 años | 15% del salario
15 o más años y menos de 20 años | 20% del salario
20 o más años y menos de 25 años | 25% del salario
25 años o más | 30% del salario
Además, se desea conocer:
a. El número de empleados que hay en cada uno de los rangos de tiempo.
b. El monto total pagado en cada rango de tiempo.
c. El total de las bonificaciones pagadas a sus empleados.
d. El porcentaje que representa el número de empleado de cada rango de tiempo respecto al total de empleados.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
uses crt;
var empleados, empleados_en_rango_1, empleados_en_rango_2, empleados_en_rango_3, empleados_en_rango_4 : integer;
var empleados_en_rango_5 : integer;
var antiguedad, bonificacion, empleados_en_rango_6, porcentaje_de_rango_1, porcentaje_de_rango_2 : real;
var porcentaje_de_rango_3, porcentaje_de_rango_4, porcentaje_de_rango_5, salario_mensual, total_de_bonificaciones : real;
var total_pagado_en_rango_1, total_pagado_en_rango_2, total_pagado_en_rango_3, total_pagado_en_rango_4, total_pagado_en_rango_5 : real;
var total_pagado_en_rango_6 : real;
var tecla_repetir : char;
begin
empleados := 0;
empleados_en_rango_1 := 0;
empleados_en_rango_2 := 0;
empleados_en_rango_3 := 0;
empleados_en_rango_4 := 0;
empleados_en_rango_5 := 0;
porcentaje_de_rango_1 := 0;
porcentaje_de_rango_2 := 0;
porcentaje_de_rango_3 := 0;
porcentaje_de_rango_4 := 0;
porcentaje_de_rango_5 := 0;
total_de_bonificaciones := 0;
total_pagado_en_rango_1 := 0;
total_pagado_en_rango_2 := 0;
total_pagado_en_rango_3 := 0;
total_pagado_en_rango_4 := 0;
total_pagado_en_rango_5 := 0;
repeat
clrscr;
write ('Ingresa el valor de antiguedad: ');
readln (antiguedad);
write ('Ingresa el valor de salario mensual: ');
readln (salario_mensual);
bonificacion := 0;
empleados := empleados+1;
if antiguedad<5 then
begin
bonificacion := salario_mensual*0.05;
empleados_en_rango_1 := empleados_en_rango_1+1;
total_pagado_en_rango_1 := total_pagado_en_rango_1+salario_mensual+bonificacion;
end;
if (antiguedad>=5) and (antiguedad<10) then
begin
bonificacion := salario_mensual*0.1;
empleados_en_rango_2 := empleados_en_rango_1+1;
total_pagado_en_rango_2 := total_pagado_en_rango_2+salario_mensual+bonificacion;
end;
if (antiguedad>=10) and (antiguedad<15) then
begin
bonificacion := salario_mensual*0.15;
empleados_en_rango_3 := empleados_en_rango_2+1;
total_pagado_en_rango_3 := total_pagado_en_rango_3+salario_mensual+bonificacion;
end;
if (antiguedad>=15) and (antiguedad<20) then
begin
bonificacion := salario_mensual*0.2;
empleados_en_rango_4 := empleados_en_rango_3+1;
total_pagado_en_rango_4 := total_pagado_en_rango_4+salario_mensual+bonificacion;
end;
if (antiguedad>=20) and (antiguedad<25) then
begin
bonificacion := salario_mensual*0.25;
empleados_en_rango_5 := empleados_en_rango_4+1;
total_pagado_en_rango_5 := total_pagado_en_rango_5+salario_mensual+bonificacion;
end;
if antiguedad>=25 then
begin
bonificacion := salario_mensual*0.3;
empleados_en_rango_6 := empleados_en_rango_5+1;
total_pagado_en_rango_6 := total_pagado_en_rango_6+salario_mensual+bonificacion;
end;
total_de_bonificaciones := total_de_bonificaciones+bonificacion;
writeln ('Valor de bonificacion: ', bonificacion:0:6);
writeln ('Valor de empleados en rango 6: ', empleados_en_rango_6:0:6);
writeln ('Valor de total pagado en rango 6: ', total_pagado_en_rango_6: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');
if empleados = 0 then
porcentaje_de_rango_1 := 0
else
porcentaje_de_rango_1 := 100.0*empleados_en_rango_1/empleados;
if empleados = 0 then
porcentaje_de_rango_2 := 0
else
porcentaje_de_rango_2 := 100.0*empleados_en_rango_2/empleados;
if empleados = 0 then
porcentaje_de_rango_3 := 0
else
porcentaje_de_rango_3 := 100.0*empleados_en_rango_3/empleados;
if empleados = 0 then
porcentaje_de_rango_4 := 0
else
porcentaje_de_rango_4 := 100.0*empleados_en_rango_4/empleados;
if empleados = 0 then
porcentaje_de_rango_5 := 0
else
porcentaje_de_rango_5 := 100.0*empleados_en_rango_5/empleados;
writeln ('Valor de empleados: ', empleados);
writeln ('Valor de empleados en rango 1: ', empleados_en_rango_1);
writeln ('Valor de empleados en rango 2: ', empleados_en_rango_2);
writeln ('Valor de empleados en rango 3: ', empleados_en_rango_3);
writeln ('Valor de empleados en rango 4: ', empleados_en_rango_4);
writeln ('Valor de empleados en rango 5: ', empleados_en_rango_5);
writeln ('Valor de porcentaje de rango 1: ', porcentaje_de_rango_1:0:6);
writeln ('Valor de porcentaje de rango 2: ', porcentaje_de_rango_2:0:6);
writeln ('Valor de porcentaje de rango 3: ', porcentaje_de_rango_3:0:6);
writeln ('Valor de porcentaje de rango 4: ', porcentaje_de_rango_4:0:6);
writeln ('Valor de porcentaje de rango 5: ', porcentaje_de_rango_5:0:6);
writeln ('Valor de total de bonificaciones: ', total_de_bonificaciones:0:6);
writeln ('Valor de total pagado en rango 1: ', total_pagado_en_rango_1:0:6);
writeln ('Valor de total pagado en rango 2: ', total_pagado_en_rango_2:0:6);
writeln ('Valor de total pagado en rango 3: ', total_pagado_en_rango_3:0:6);
writeln ('Valor de total pagado en rango 4: ', total_pagado_en_rango_4:0:6);
writeln ('Valor de total pagado en rango 5: ', total_pagado_en_rango_5:0:6);
write ('Presiona una tecla para terminar . . . ');
readkey;
end.