Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: Corso en 14 Noviembre 2005, 02:56 am



Título: Pascal-Ejercico con while do
Publicado por: Corso en 14 Noviembre 2005, 02:56 am
Se me propuso hacer un programa en pascal el cual tiene que hacer esto:

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.

Bien, el  “algoritmo” (por llamarlo de alguna manera) que a mí se me ocurrió es el siguiente:

>iniciar los valores de las variables necesarias, numero de llamadas y duración total de todas las llamadas
>leer la primera llamada
>mientras llamada sea mayor que cero
   >incrementar el numero de llamadas en uno
   >incrementar el tiempo total que suman todas las llamadas
   >leer otra llamada
>presentar resultados.

Y el código en pascal:
Código:
program telefonos;

var


   numero: integer;
   duracion: real;
   media: real;


begin

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

  while (duracion>0) do
 
        begin
          numero:=numero+1;
          duracion:=duracion+duracion;
        end;

  media:=numero/duracion;

  writeln('Numero de llamadas: ',numero);
  writeln('Duracion total: ',duracion);
  writeln('Duracion media: ',media);
 
end.

Se compila, pero lo ejecutar y de
Código:
write('Duracion de la llamada (0 para terminar): ');
 readln(duracion);
Ya no pasa...

Sugerencias? Cuantas cosas me encontráis mal?
Si esta mal de la cabeza a los pies, no quiero la solución solo una orientación.

Salu2.


Título: Re: Pascal-Ejercico con while do
Publicado por: jvchino en 14 Noviembre 2005, 07:33 am
Código:
while (duracion>0) do
 
        begin
          numero:=numero+1;
          duracion:=duracion+duracion;
        end;

El problema es que dentro del WHILE ... DO  no tienes una sentencia para leer la "duración"

Debes tener otra variable Durac_Total que acumule todas las duraciones.

Código:
.
.
.
durac_total:=0;
while (duracion>0) do
        begin
          durac_total:=durac_total + duración;
          numero:=numero+1;
          readln(duracion)
        end;
.
.
.

Y tu media... esta al revés; debe ser  min/llamada  o  seg/llamada; entonces:
Código:
media:=durac_total/numero;

Saludos.


Título: Re: Pascal-Ejercico con while do
Publicado por: Kpax en 15 Noviembre 2005, 20:45 pm
el ; del while men te malogra todo
sakludos


Título: Re: Pascal-Ejercico con while do
Publicado por: Akuseimaru en 30 Junio 2009, 18:51 pm
mira men es sencillo lo que pasa que es la entrada de datos no tiene el ciclo repetitivo asi que lo ejecuta una sola vez tenes que ponerselo a la entrada de datos y listo... espero te sirva  ;D ;D ;D


Título: Re: Pascal-Ejercico con while do
Publicado por: steballys en 19 Marzo 2010, 22:29 pm
me puedes por favor explicar a que te refieres con que la entrada no tiene ciclo repetitivo es que soy nueva en esto y me cuesta mucho, pero igual si meinteresa enterder. gracias!