• Lenguaje

    Pascal

  • Descripción

    Se tienen N registros donde cada uno de ellos contiene:
    - Estatura (1: Alto, 2: Bajo, 3: Mediano).
    - Nacionalidad (1: Latino, 2: Germano, 3: Hindú).
    - Edad.
    Determine: número de hindúes altos, latinos medianos, total de latinos, germanos bajos, total de germanos menores de 30 años y latinos bajos menores de 40 años, promedio de edad de los latinos, germanos e hindúes.

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

var edad, estatura, germanos_bajos, germanos_menores_de_30, hindues_altos : integer;
var i, latinos_bajos_menores_de_40, latinos_medianos, n, nacionalidad : integer;
var total_germanos, total_hindues, total_latinos : integer;
var promedio_de_edad_germanos, promedio_de_edad_hindues, promedio_de_edad_latinos : real;
begin
    germanos_bajos := 0;
    germanos_menores_de_30 := 0;
    hindues_altos := 0;
    latinos_bajos_menores_de_40 := 0;
    latinos_medianos := 0;
    total_hindues := 0;
    total_germanos := 0;
    total_latinos := 0;
    promedio_de_edad_hindues := 0;
    promedio_de_edad_germanos := 0;
    promedio_de_edad_latinos := 0;
    write ('Ingresa el valor de n: ');
    readln (n);
    for i:=1 to n do
    begin
        writeln ('PROCESO ', i);
        write ('Ingresa el valor de edad: ');
        readln (edad);
        writeln ('Selecciona el valor de estatura.');
        writeln ('    1.- Alto');
        writeln ('    2.- Bajo');
        writeln ('    3.- Mediano');
        write ('    : ');
        repeat
            readln (estatura);
            if (estatura<1) or (estatura>3) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (estatura>=1) and (estatura<=3);
        writeln ('Selecciona el valor de nacionalidad.');
        writeln ('    1.- Latino');
        writeln ('    2.- Germano');
        writeln ('    3.- Hind'#163);
        write ('    : ');
        repeat
            readln (nacionalidad);
            if (nacionalidad<1) or (nacionalidad>3) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (nacionalidad>=1) and (nacionalidad<=3);
        if (nacionalidad=2) and (estatura=2) then
            begin
                germanos_bajos := germanos_bajos+1;
            end;
        if (nacionalidad=2) and (edad<30) then
            begin
                germanos_menores_de_30 := germanos_menores_de_30+1;
            end;
        if (nacionalidad=3) and (estatura=1) then
            begin
                hindues_altos := hindues_altos+1;
            end;
        if (nacionalidad=1) and (estatura=2) and (edad<40) then
            begin
                latinos_bajos_menores_de_40 := latinos_bajos_menores_de_40+1;
            end;
        if (nacionalidad=1) and (estatura=3) then
            begin
                latinos_medianos := latinos_medianos+1;
            end;
        if nacionalidad=1 then
            begin
                promedio_de_edad_latinos := promedio_de_edad_latinos+edad;
                total_latinos := total_latinos+1;
            end;
        if nacionalidad=2 then
            begin
                promedio_de_edad_germanos := promedio_de_edad_germanos+edad;
                total_germanos := total_germanos+1;
            end;
        if nacionalidad=3 then
            begin
                promedio_de_edad_hindues := promedio_de_edad_hindues+edad;
                total_hindues := total_hindues+1;
            end;
        writeln;
    end;
    if total_hindues = 0 then
        promedio_de_edad_hindues := 0
    else
        promedio_de_edad_hindues := promedio_de_edad_hindues/total_hindues;
    if total_germanos = 0 then
        promedio_de_edad_germanos := 0
    else
        promedio_de_edad_germanos := promedio_de_edad_germanos/total_germanos;
    if total_latinos = 0 then
        promedio_de_edad_latinos := 0
    else
        promedio_de_edad_latinos := promedio_de_edad_latinos/total_latinos;
    writeln ('Valor de germanos bajos: ', germanos_bajos);
    writeln ('Valor de germanos menores de 30: ', germanos_menores_de_30);
    writeln ('Valor de hindues altos: ', hindues_altos);
    writeln ('Valor de latinos bajos menores de 40: ', latinos_bajos_menores_de_40);
    writeln ('Valor de latinos medianos: ', latinos_medianos);
    writeln ('Valor de total hindues: ', total_hindues);
    writeln ('Valor de total germanos: ', total_germanos);
    writeln ('Valor de total latinos: ', total_latinos);
    writeln ('Valor de promedio de edad hindues: ', promedio_de_edad_hindues:0:6);
    writeln ('Valor de promedio de edad germanos: ', promedio_de_edad_germanos:0:6);
    writeln ('Valor de promedio de edad latinos: ', promedio_de_edad_latinos:0:6);
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.