Pascal/Turbo Pascal - Aytuda con programa peso relativo

 
Vista:

Aytuda con programa peso relativo

Publicado por Bea (7 intervenciones) el 12/01/2008 21:01:29
Hola:
Necesito ayuda con este programa pues no sé porque al compilar e introducir los datos no es correcto en el lenguaje Pascal.
Consiste en utilizar sentencias selectivas y en función del valor del peso relativo, indicar si es un peso adecuado o está por encima o por debajo. El peso relativo deberá estar entre dos valores que deben ser constantes PESOMIN 20 Y PESOMAX 26 .

Program Indica_si_el_peso_es_adecuado;

Const
PESOMIN='20';
PESOMAX='26';


(*-- Variables globales --*)

Var
nombre: string[40];
edad: integer;
peso: real;
altura: real;
altura_al_cuadrado: real;
peso_relativo: real; (*Almacena el resultado de dividir el peso por el
cuadrado de la altura expresa en metros*)


(*--Programa principal --*)

Begin
(*Aquí debe ir la solicitud y lectura de datos*)

write ('Introduzca su nombre: ');
readln (nombre);

write ('Introduzca su edad: ');
readln (edad);

write ('Introduzca su peso en Kg: ');
readln(peso);

write ('Introduzca su altura en m: ');
readln(altura);

(*Aquí debe ir el cálculo del resultado*)

altura_al_cuadrado:=altura*altura;
peso_relativo:=peso/(altura_al_cuadrado);

(*Aquí debe ir la presentación de los resultados*)

writeln('Hola ', nombre);
writeln('Tu edad es ', edad, ', tu peso ' , peso:0:2, ' y tu altura ',
altura:4:2);
writeln('Tu peso relativo es ', peso_relativo:0:2);
BEGIN
IF ('peso_relativo'>PESOMAX)THEN
IF('peso_relativo'<PESOMIN)THEN
writeln('Peso por debajo de lo recomendado')
ELSE
writeln('Peso por encima de lo recomendado')
ELSE
writeln('Peso correcto');

END;

END.


Si introduzco datos para comprobar con el compilador si es correcto siempre sea un resultado u otro me dice peso por encima de lo recomendado, ejp:
-edad:23
Kg: 66
altura: 1.65
peso relativo: 24.24 (aquí debería de decir peso correcto) pues no está por debajo del peso mínimo que es la constante peso PESOMIN:20 ,ni tampoco está por encima del peso máximo que es la constante PESOMAX: 26

Otro ejemplo:
edad:38
peso en Kg: 78
altura:1.6

Otro ejemplo: edad: 26
peso en Kg: 50
altura: 1.60
peso relativo: 19.53
Debería de decir peso por debajo de lo recomendado y dice lo contrario
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Aytuda con programa peso relativo

Publicado por M@rceloL (25 intervenciones) el 14/01/2008 23:58:45
Bea, creo que acá hay un error de concepto.

Vos declarás las constantes como Strings, y los números como integer y real.

¿Porqué falla todo? Bueno, porque comparar un real con un string es como compara peras con manzanas.

Tus variables PESOMIN y PESOMAX deberían ser real y, por supuesto, tus otros datos con los que las vas a comprar, también.

const
    PESOMAX=26.0;
    PESOMIN=20.0;

(. . .)

var peso_relativo: real;

(. . .)

if peso_relativo > PESOMAX then
  WriteLn('Estás muy flaco, comé algo')
else if peso_relativo < PESOMIN then
  WriteLn('Estás muy gordo, aflojá con los postres')
else
WriteLn('Estás fantástico, no comás ni más ni menos');

¿Se entiende la idea?

Nota: Las constantes las declaré con un ".0" porque no tengo pascal instalado y nopodía probar cómo las tomaba si no declaraba así.

Saludongos.
  
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar