Pascal/Turbo Pascal - programa telefonico

 
Vista:
sin imagen de perfil

programa telefonico

Publicado por Erik (73 intervenciones) el 24/02/2014 18:22:10
tengo que hacer este programa:
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.
gracias de antemano
- Si no se introdujo ninguna llamada indicarlo al usuario.
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

programa telefonico

Publicado por ramon (2158 intervenciones) el 27/02/2014 11:56:19
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
60
61
62
63
{Esto te serviría}
 
program telefono;
 uses
    crt;
 type
    dtelefono = record
          nllamadas : integer;
          duracion : array[1..100] of real;
          duratotal : real;
         end;
 
  var
    dato : array[1..100] of dtelefono;
    i : integer;
    tec : char;
    totales : real;
 
   procedure entrallamada;
   begin
      clrscr;
      writeln('   Entradas Llamadas ');
      writeln;
      write('    duracion : ');
      i := i + 1;
      dato[i].nllamadas := i;
      readln(dato[i].duracion[dato[i].nllamadas]);
      if dato[i].duracion[dato[i].nllamadas] = 0 then
      i := i - 1
    else
      dato[i].duratotal := dato[i].duracion[dato[i].nllamadas];
   end;
 
   function resultados : real;
   var
     t : integer;
     tota, dur : real;
   begin
       dur := 0;
       tota := 0;
       for t := 1 to i do
       begin
          dur := dur + dato[t].duracion[t];
          tota := tota + dato[t].duratotal;
       end;
       writeln('  Tiempo De Llamadas : ',dur:0:2);
       writeln('  Numero llamadas    : ',i);
       resultados := tota;
   end;
 
  begin
     i := 0;
   repeat
     entrallamada;
     writeln;
     writeln('   Finaliza tecla [ESC] otra Cantinua ');
     tec := readkey;
   until tec = #27;
   write;
   totales := resultados;
   writeln('  Valor Medio        : ',totales / i: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