Problema con Pascal (Ejercicio de Aula Mentor)

acho_tio

Buenas!! Estoy aprendiendo a programar y tengo que hacer un ejercicio en Pascal. El enunciado es el siguiente:

Suponga que desea saber qué "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.

Estos resultados se presentarán por pantalla.

Para este ejercicio hace falta un bucle que vaya pidiendo la duración de las distintas llamadas. El algoritmo sería aproximadamente:

  • Iniciar los valores de las variables necesarias (número de llamadas y duración total de todas las llamadas entre otras).
  • Leer la duración de la primera llamada.
  • Mientras la duración de la llamada sea mayor que cero:
    o Incrementar el número de llamadas en uno.
    o Incrementar el tiempo total que suman todas las llamadas.
    o Leer la duración de otra llamada.
  • Si se ha introducido alguna llamada:
    o Realizar los cálculos necesarios.
    o Presentar resultados.
  • Si no se introdujo ninguna llamada indicarlo al usuario.
    [/b]

Yo he realizado el siguiente código sin obtener los resultados que me pide:

program Ejercicio_5_2_3;

uses crt;

var

contador_total:integer;
dur_actual:integer;
dur_total:integer;
dur_media:real;

BEGIN

contador_total := 0;
dur_total := 0;
dur_actual := 0;
dur_media :=0;

Repeat

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

dur_total := 0;
while (dur_actual > 0) do

contador_total := contador_total + 1;
dur_total := dur_actual + dur_total;
write ('Duracion de la llamada (0 para terminar): '); readln (dur_actual);

Until (dur_actual = 0);

If (dur_actual = 0) then

begin
write('Numero de llamadas: ',contador_total);
write('Duracion total: ',dur_total);
dur_media := (dur_total/contador_total);
write('Duracion media: ',dur_media);
end;

END.

A ver si algún alma caritativa puede ilustrarme!!

Gracias!!

acho_tio

El resultado sería algo así:

Duracion de la llamada (0 para terminar): 5
Duracion de la llamada (0 para terminar): 10
Duracion de la llamada (0 para terminar): 15
Duracion de la llamada (0 para terminar): 20
Duracion de la llamada (0 para terminar): 0

Numero de llamadas: 4
Duracion total: 50.0
Duracion media: 12.5

c:\cursopro>LLAMADAS.EXE
Duracion de la llamada (0 para terminar): 0

Numero de llamadas: 0. No hay resultados.

garlor

y, cual, exactamente, es tu duda?

acho_tio

Ya lo he resuelto. Gracias!

Usuarios habituales

  • acho_tio
  • garlor