• Lenguaje

    Pascal

  • Descripción

    Dada el peso, la altura y el sexo, de unos estudiantes. Determinar la cantidad de vitaminas que deben consumir estos estudiantes, en base al siguiente criterio:
    - Si son varones, y su estatura es mayor a 1.60, y su peso es mayor o igual a 150 lb, su dosis, serán: 20% de la estatura y 80% de su peso. De lo contrario, la dosis será la siguiente: 30% de la estatura y 70% de su peso.
    - Si son mujeres, y su estatura es mayor de a 1.50 m y su peso es mayor o igual a 130 lb, su dosis será: 25% de la estatura y 75% de su peso. De lo contrario, la dosis será: 35% de la estatura y 65% de su peso.
    La dosis debe ser expresada en gramos.

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

var genero : integer;
var dosis_en_gramos, estatura_en_metros, peso_en_gramos, peso_en_libras : real;
var tecla_repetir : char;
begin
    repeat
        clrscr;
        write ('Ingresa el valor de estatura en metros: ');
        readln (estatura_en_metros);
        write ('Ingresa el valor de peso en libras: ');
        readln (peso_en_libras);
        dosis_en_gramos := 0;
        writeln ('Selecciona el valor de genero.');
        writeln ('    1.- Mujer');
        writeln ('    2.- Var'#162'n');
        write ('    : ');
        repeat
            readln (genero);
            if (genero<1) or (genero>2) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (genero>=1) and (genero<=2);
        peso_en_gramos := peso_en_libras*453.59237;
        if (genero=2) and (estatura_en_metros>1.6) and (peso_en_libras>=150) then
            begin
                dosis_en_gramos := estatura_en_metros*0.2+peso_en_gramos*0.8;
            end;
        if (genero=2) and ((estatura_en_metros<1.6) or (peso_en_libras<150)) then
            begin
                dosis_en_gramos := estatura_en_metros*0.3+peso_en_gramos*0.7;
            end;
        if (genero=1) and (estatura_en_metros>1.5) and (peso_en_libras>=130) then
            begin
                dosis_en_gramos := estatura_en_metros*0.25+peso_en_gramos*0.75;
            end;
        if (genero=1) and ((estatura_en_metros<1.5) or (peso_en_libras<130)) then
            begin
                dosis_en_gramos := estatura_en_metros*0.35+peso_en_gramos*0.65;
            end;
        writeln ('Valor de dosis en gramos: ', dosis_en_gramos:0:6);
        writeln ('Valor de peso en gramos: ', peso_en_gramos: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.