-
Lenguaje
Pascal
-
Descripción
Calcular el salario neto de un trabajador de una empresa cuyo trabajo se paga por horas. Introducir por teclado el número de horas y el precio de la hora. El cálculo se realiza del siguiente modo:
- Las primeras 35 horas de cada semana se pagan a la tarifa normal (suponer 4 semanas al mes).
- Las horas extras se pagan un 50% más que las normales.
- Los impuestos a deducir a los trabajadores varían en función de su sueldo mensual (considerando las horas extras trabajadas):
- Si el sueldo es menor de € 600, libre de impuestos.
- Si el sueldo está entre € 600 y € 1000, los impuestos son el 20%.
- Si el sueldo es mayor de € 1000, el 30%.
Mostrar el valor del sueldo final y el valor que se le descontará por impuestos.
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
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
program SalarioNetoDeUnTrabajador;
uses crt;
var horas_extras, horas_normales, impuestos, numero_de_horas, precio_de_la_hora : real;
var salario_final, sueldo_mensual : real;
begin
write ('Ingresa el valor de numero de horas: ');
readln (numero_de_horas);
write ('Ingresa el valor de precio de la hora: ');
readln (precio_de_la_hora);
impuestos := 0;
if numero_de_horas>35 then
begin
horas_normales := 35;
horas_extras := numero_de_horas-35;
end
else
begin
horas_normales := numero_de_horas;
horas_extras := 0;
end;
sueldo_mensual := horas_normales*precio_de_la_hora+horas_extras*precio_de_la_hora*1.5;
if (sueldo_mensual>=600) and (sueldo_mensual<=1000) then
begin
impuestos := sueldo_mensual*0.2;
end;
if sueldo_mensual>1000 then
begin
impuestos := sueldo_mensual*0.3;
end;
salario_final := sueldo_mensual-impuestos;
writeln ('Valor de horas extras: ', horas_extras:0:6);
writeln ('Valor de horas normales: ', horas_normales:0:6);
writeln ('Valor de impuestos: ', impuestos:0:6);
writeln ('Valor de salario final: ', salario_final:0:6);
writeln ('Valor de sueldo mensual: ', sueldo_mensual:0:6);
writeln;
write ('Presiona una tecla para terminar . . . ');
readkey;
end.
uses crt;
var horas_extras, horas_normales, impuestos, numero_de_horas, precio_de_la_hora : real;
var salario_final, sueldo_mensual : real;
begin
write ('Ingresa el valor de numero de horas: ');
readln (numero_de_horas);
write ('Ingresa el valor de precio de la hora: ');
readln (precio_de_la_hora);
impuestos := 0;
if numero_de_horas>35 then
begin
horas_normales := 35;
horas_extras := numero_de_horas-35;
end
else
begin
horas_normales := numero_de_horas;
horas_extras := 0;
end;
sueldo_mensual := horas_normales*precio_de_la_hora+horas_extras*precio_de_la_hora*1.5;
if (sueldo_mensual>=600) and (sueldo_mensual<=1000) then
begin
impuestos := sueldo_mensual*0.2;
end;
if sueldo_mensual>1000 then
begin
impuestos := sueldo_mensual*0.3;
end;
salario_final := sueldo_mensual-impuestos;
writeln ('Valor de horas extras: ', horas_extras:0:6);
writeln ('Valor de horas normales: ', horas_normales:0:6);
writeln ('Valor de impuestos: ', impuestos:0:6);
writeln ('Valor de salario final: ', salario_final:0:6);
writeln ('Valor de sueldo mensual: ', sueldo_mensual:0:6);
writeln;
write ('Presiona una tecla para terminar . . . ');
readkey;
end.