Pascal/Turbo Pascal - Ayuda con ejercicio pascal

   
Vista:

Ayuda con ejercicio pascal

Publicado por bea32 (1 intervención) el 20/01/2008 17:53:50
Hola necesito ayuda con este ejercicio.
Pues no es correcto y me da dice peso correcto y peso por encima a la vez

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*)
respuesta: char;

(*--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);

if (peso_relativo>PESOMAX)then
writeln ('Peso por encima de lo recomendado');

if (peso_relativo<PESOMIN)then
writeln('Peso por deabajo de lo recomendado.');

if (peso_relativo<=PESOMAX and peso_relativo>=PESOMIN) then
writeln('Peso correcto');

End.



Y luego estoy atascada con el progrma del foro el hacket que dice:
Ejercicio6:

Suponga que desea saber que "perfil" tienen sus llamadas telefónicas. Para ello realizará un programa que solicite la duración de las llamadas y calcule:
la duración total de sus llamadas
el valor medio
el número total de llamadas
y los presente por pantalla.

El resultado debe ser similar a esto:

Duración de la llamada (0 para terminar): 5
Duración de la llamada (0 para terminar): 10
Duración de la llamada (0 para terminar): 15
Duración de la llamada (0 para terminar): 20
Duración de la llamada (0 para terminar): 0

> Numero de llamadas: 4
> Duración total: 50.0
> Duración media: 12.5

Ejercicio7:

Añadir al programa anterior lo necesario para que clasifique las llamadas en Nacionales (N), Provinciales (P) y Locales (L) y realizar los mismo cálculos que antes para cada tipo de llamada (duración y numero de llamadas Nacionales, duración y numero de llamadas Provinciales y duración y numero de llamadas Locales). El programa también debe solicitar, después de presentar los resultados, si se desea realizar de nuevo todo el proceso anterior.

El resultado debe ser similar a esto:

Introduzca la duración de la llamada en minutos (0 para terminar): 5
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: p

Introduzca la duración de la llamada en minutos (0 para terminar): 15
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: n

Introduzca la duración de la llamada en minutos (0 para terminar): 20
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: l

Introduzca la duración de la llamada en minutos (0 para terminar): 40
Introduzca el tipo de llamada. N:Nacional, P:Provincial, L:Local: p

Introduzca la duración de la llamada en minutos (0 para terminar): 0


-Especificación llamadas Nacionales, Provinciales y Locales-

El numero de llamadas nacionales a sido: 1 y su duración: 15.00 minutos.
El numero de llamadas provinciales a sido: 2 y su duración: 45.00 minutos.
El numero de llamadas locales a sido: 1 y su duración: 20.00 minutos.

-Totales-

Numero de llamadas: 4
Duración total: 80.00 minutos.
Duración media: 20.00 minutos.

Desea continuar para realizar otra lista de llamadas? S/N: n
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:Ayuda con ejercicio pascal

Publicado por Bea (7 intervenciones) el 20/01/2008 20:37:07
Este programa de las llamadas tiene errores al compilar y no se como arreglarlo

Const

numero_llamadas=0;
duracion_total= 0;

Var
duracion: real;
duracion_media: real;


(*--Programa principal --*)

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

repeat
write ('Duracion de la llamada (0 para terminar): ');
readln (duracion);

numero_llamadas=(numero_llamadas+1)
readln (numero_llamadas);

duracion_total:=duracion_total+duracion;
writeln ('Duracion total: ');
readln (Duracion_total);

duracion_media:=duracion_total/numero_llamadas;
writeln ('Duracion media: ');
readln (Duracion_media);

until duracion>0;

end;

if (numero_llamadas=0) then
writeln ('No hay llamadas')
else
writeln('Duracion total, ');
writeln('Duracion media, ');

End.
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

RE:Ayuda con ejercicio pascal

Publicado por Vileta (1 intervención) el 21/01/2008 23:44:45
Creo saber el error pero no lo probe solo lo lei.
Tenes que inicializar: numero_llamadas, duracion_total en cero. De esta manera
Begin
numero_llamadas:=0;
duracion_total:= 0;
...

No declararlas como Constantes ya que en ese caso no puede modificarse durante la ejecución y es justamente eso lo que codificaste. Por eso tira error al compilar.
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