Pascal/Turbo Pascal - Un programa que solicite la duración de las llamadas, el valor medio y el número total de llamada

 
Vista:

Un programa que solicite la duración de las llamadas, el valor medio y el número total de llamada

Publicado por Rodrigo (1 intervención) el 12/03/2015 21:32:03
El ejercicio ba asi:
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.

----------------------------------------------------------------------------------
EL PROGRAMA DEBE VERSE ASI POR EJEMPLO:

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
----------------------------------------------------------------------------
De momento solo tengo esto.

program ejercicio_propuesto;

var
duracion:integer;


begin

duracion:=0;
repeat
write('Duracion de la llamada (0 para terminar): ');
read(duracion);
until duracion=0

end.

Porfa un crack que me ayude a completarlo.
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

Un programa que solicite la duración de las llamadas, el valor medio y el número total de llamada

Publicado por ramon (2158 intervenciones) el 13/03/2015 13:39:58
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
{A ver si esto ayuda }
 
program ejercicio_propuesto;
uses
   crt;
var
duracion:real;
llamad : integer;
tiemp : real;
 
begin
 llamad := 0;
duracion:=0.0;
tiemp := 0.0;
clrscr;
repeat
write('Duracion de la llamada (0 para terminar): ');
read(duracion);
if duracion > 0 then
begin
tiemp := tiemp + duracion;
llamad := llamad + 1;
end;
until duracion=0;
 writeln;
 writeln('  Numero Llamadas = ',llamad);
 writeln('  Duracion Total  = ',tiemp:0:2);
 writeln('  Duracion Media  = ',(tiemp / llamad):0:2);
 readkey;
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
sin imagen de perfil

Un programa que solicite la duración de las llamadas, el valor medio y el número total de llamada

Publicado por Elena (4 intervenciones) el 05/11/2017 16:06:36
¿Y cómo se indicaría qué "Si no se introdujo ninguna llamada indicarlo al usuario"?
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
sin imagen de perfil
Val: 35
Ha disminuido 1 puesto en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Un programa que solicite la duración de las llamadas, el valor medio y el número total de llamada

Publicado por Enrique Martin (15 intervenciones) el 03/02/2019 16:11:35
Aquí os dejo otra posible solución al problema planteado:

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
50
51
52
53
54
55
56
57
58
59
Program llamadaWhile;
 
var
 dullama:		integer; (*duracion de cada llamada*)
 dumediallama:   real;    (*la media entre la duracion de todas las llamadas*)
 dutotallama:	real;    (*duracion total de todas las llamadas*)
 numerollama:	integer;    (*numero de llamadas introducidas*)
 
begin
 (*Ponemos a cero los contadores y la media*)
 dutotallama := 0;
 numerollama := 0;
 dumediallama := 0;
 
 (*Solicitamos la duracion de la llamada*)
 writeln('Bienvenido/a al registro de llamadas');
 writeln;
 write('Introduzca la duracion de la llamada sin decimales');
 write(' (0 si desea finalizar):  ');
 readln (dullama);
 
 (*Evaluamos dullama, si la duracion es cero desde el principio,
   evidentemente el numero de llamadas tambien sera cero*)
 if (dullama = 0 ) then
   begin
    writeln;
    write('>Numero de llamadas: ',numerollama,'.' );
    write (' No hay mas resultados que mostrar');
    readln;
   end;
 
 (*Si la duracion de llamada es mayor a cero entonces se ejecuta el bucle
   iterativo While-Do, hasta que se introduzca la cifra cero*)
 
 while (dullama > 0) do
  begin
    dutotallama := dutotallama + dullama;(*Acumulamos las llamadas*)
    numerollama := numerollama + 1;       (*Contamos el numero de llamadas*)
    write ('Introduzca la duracion de la llamada sin decimales');
    write (' (0 si desea finalizar):  ');
    readln (dullama);
 
  (*Cuando se introduce la cifra cero pasamo a la siguiente sentencia*)
  if (dullama = 0) then
    begin
   (*Mostramos los datos que se encuentran en el contador y acumulador*)
 
     writeln ('> Numero de llamadas: ', numerollama);
     writeln ('> Duracion total: ', dutotallama :3:2);
 
  (*Declaramos la division para hacer la media*)
     dumediallama:= dutotallama/numerollama;
 
  (*Realizamos al operacion*)
     writeln ('> Media total: ', dumediallama:3:2);
     readln;
    end;
  end;
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