• Lenguaje

    Pascal

  • Descripción

    Un empresa requiere un formulario en línea que le permita calcular el total a pagar de sus trabajadores, teniendo en cuenta los siguientes descuentos y bonificaciones:

    - Remuneraciones
    Sueldo Base:
    Horas extras: 2% del sueldo base
    Asignacion Familiar: 15% del sueldo base
    Bonificacion extraordinaria: 10% del sueldo base

    - Descuentos
    Escoger el tipo de seguro:
    Seguro (ONP) : 10% del sueldo base
    Seguro (AFP) : 20% del sueldo base
    Impuesto a la renta (IR)
    Si el sueldo base es mayor a 1000 entonces se descuenta el 15% de lo contrario no hay descuento por IR
    Faltas: 5% del sueldo base

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
program DescuentosYBonificaciones;
uses crt;

var tipo_de_seguro : integer;
var asignacion_familiar, bonificacion_extraordinaria, faltas, horas_extras, ir : real;
var seguro, sueldo_base, total_a_pagar : real;
begin
    write ('Ingresa el valor de sueldo base: ');
    readln (sueldo_base);
    horas_extras := sueldo_base*0.02;
    asignacion_familiar := sueldo_base*0.15;
    bonificacion_extraordinaria := sueldo_base*0.1;
    writeln ('Selecciona el valor de tipo de seguro.');
    writeln ('    1.- ONP');
    writeln ('    2.- AFP');
    write ('    : ');
    repeat
        readln (tipo_de_seguro);
        if (tipo_de_seguro<1) or (tipo_de_seguro>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (tipo_de_seguro>=1) and (tipo_de_seguro<=2);
    if tipo_de_seguro=1 then
        begin
            seguro := sueldo_base*0.1;
        end
    else
        begin
            seguro := sueldo_base*0.2;
        end;
    if sueldo_base>1000 then
        begin
            ir := sueldo_base*0.15;
        end
    else
        begin
            ir := 0;
        end;
    faltas := sueldo_base*0.05;
    total_a_pagar := sueldo_base+horas_extras+asignacion_familiar+bonificacion_extraordinaria-tipo_de_seguro-seguro-ir-faltas;
    writeln ('Valor de asignacion familiar: ', asignacion_familiar:0:6);
    writeln ('Valor de bonificacion extraordinaria: ', bonificacion_extraordinaria:0:6);
    writeln ('Valor de faltas: ', faltas:0:6);
    writeln ('Valor de horas extras: ', horas_extras:0:6);
    writeln ('Valor de ir: ', ir:0:6);
    writeln ('Valor de seguro: ', seguro:0:6);
    writeln ('Valor de total a pagar: ', total_a_pagar:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.