• Lenguaje

    Pascal

  • Descripción

    Dados los siguientes datos de una persona: Nombre, Sexo, Estado Civil, Salario Base = $5000 y Número de Hijos, determinar el bono al que se hace acreedor dicha persona, tomando en cuenta lo siguiente:
    a. Si es mujer y está soltera, recibirá un bono correspondiente al 12% del salario base.
    b. Si es mujer, está casada y tiene hijos, recibirá un bono correspondiente al 17% del salario base.
    c. Si es mujer, tiene hijos y es madre soltera, recibirá un bono correspondiente al 20% del salario base.
    d. Si es hombre y está soltero, recibirá un bono correspondiente al 12% del salario base.
    e. Si es hombre, está casado y tiene hijos, recibirá un bono correspondiente al 17% del salario base.
    f. Si es hombre, tiene hijos y es padre soltero, recibirá un bono correspondiente al 20% del salario 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 BonoEnBaseAlSexoEstadoCivilYNumeroDeHijos;
uses crt;

var estado_civil, sexo : integer;
var bono, numero_de_hijos, salario_base : real;
var nombre : string;
begin
    write ('Ingresa el nombre: ');
    readln (nombre);
    write ('Ingresa el valor de numero de hijos: ');
    readln (numero_de_hijos);
    writeln ('Selecciona el valor de sexo.');
    writeln ('    1.- Hombre');
    writeln ('    2.- Mujer');
    write ('    : ');
    repeat
        readln (sexo);
        if (sexo<1) or (sexo>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (sexo>=1) and (sexo<=2);
    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);
    salario_base := 5000;
    bono := 0;
    if (estado_civil=1) and (numero_de_hijos=0) then
        begin
            bono := salario_base*0.12;
        end;
    if (estado_civil=2) and (numero_de_hijos>0) then
        begin
            bono := salario_base*0.17;
        end;
    if (estado_civil=1) and (numero_de_hijos>0) then
        begin
            bono := salario_base*0.2;
        end;
    writeln ('Nombre: ', nombre);
    writeln ('Valor de bono: ', bono:0:6);
    writeln ('Valor de salario base: ', salario_base:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.