• Lenguaje

    Pascal

  • Descripción

    Algoritmo que permite leer los siguientes datos de un trabajador: Nombre, edad, salario y dirección.
    Escriba los aumentos salariales y nuevos salarios de los trabajadores, de acuerdo a las siguientes condiciones:
    - Trabajadores mayores de 40 años y con salario menor a $10,000 serán clase 1.
    - Trabajadores mayores de 50 años o con salario entre $10,000 y $25,000 serán clase 2
    - Clase 0 , cualquier trabajador que no cumpla ninguna de las condiciones anteriores.
    De acuerdo a la clase que pertenezca el trabajador, recibirá el siguiente beneficio:
    - Clase 1, recibirá un aumento del 15%, si además vive en Coatzacoalcos o Minatitlán, recibe un bono extra de aumento de $500.
    - Clase 2, recibirá un aumento del 25%, si además vive en Coatzacoalcos o Minatitlán, recibe un bono extra de aumento de $700.
    - Clase 0, recibirá un aumento del 3%.

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

var residencia : integer;
var aumento, bono_extra, clase, edad, nuevo_salario : real;
var salario : real;
var nombre, direccion : string;
var tecla_repetir : char;
begin
    repeat
        clrscr;
        write ('Ingresa el nombre: ');
        readln (nombre);
        write ('Ingresa el direccion: ');
        readln (direccion);
        write ('Ingresa el valor de edad: ');
        readln (edad);
        write ('Ingresa el valor de salario: ');
        readln (salario);
        aumento := 0;
        bono_extra := 0;
        clase := 0;
        writeln ('Selecciona el valor de residencia.');
        writeln ('    1.- Acayucan');
        writeln ('    2.- Coatzacoalcos');
        writeln ('    3.- C'#162'rdoba');
        writeln ('    4.- Minatitl'#160'n');
        writeln ('    5.- Orizaba');
        writeln ('    6.- Poza Rica');
        writeln ('    7.- Veracruz');
        writeln ('    8.- Xalapa');
        write ('    : ');
        repeat
            readln (residencia);
            if (residencia<1) or (residencia>8) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (residencia>=1) and (residencia<=8);
        if (edad>40) and (salario<10000) then
            begin
                clase := 1;
            end;
        if (edad>50) and (salario>=10000) and (salario<=25000) then
            begin
                clase := 2;
            end;
        if clase=0 then
            begin
                aumento := salario*0.03;
            end;
        if clase=1 then
            begin
                aumento := salario*0.15;
            end;
        if (clase=1) and ((residencia=2) or (residencia=4)) then
            begin
                bono_extra := 500;
            end;
        if clase=2 then
            begin
                aumento := salario*0.25;
            end;
        if (clase=2) and ((residencia=2) or (residencia=4)) then
            begin
                bono_extra := 700;
            end;
        nuevo_salario := salario+aumento+bono_extra;
        writeln ('Nombre: ', nombre);
        writeln ('Direccion: ', direccion);
        writeln ('Valor de aumento: ', aumento:0:6);
        writeln ('Valor de bono extra: ', bono_extra:0:6);
        writeln ('Valor de clase: ', clase:0:6);
        writeln ('Valor de nuevo salario: ', nuevo_salario: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');
end.