Pascal/Turbo Pascal - Ayuda,ejercicio para aprender Pascal

   
Vista:

Ayuda,ejercicio para aprender Pascal

Publicado por yo (1 intervención) el 05/04/2014 19:07:00
Hola me podríais ayudar a resolver este ejercicio, he buscado tanto por internet que cada vez estoy mas liada, estoy aprendiendo Pascal y se me hace muy difícil, todo es nuevo para mi. Gracias de ante mano.

hacer un programa más completo, que clasifique las llamadas en nacionales, provinciales y locales (N, P, L) y realizar los cálculos anteriores para cada tipo de llamadas.

El resultado debe ser parecido a:

Símbolo de MS - DOS

Duracion de la llamada (0 para terminar): 10
Tipo de llamada (N/P/L) N
Duracion de la llamada (0 para terminar): 20
Tipo de llamada (N/P/L) P
Duracion de la llamada (0 para terminar): 30
Tipo de llamada (N/P/L) L
Duracion de la llamada (0 para terminar): 40
Tipo de llamada (N/P/L) l
Duracion de la llamada (0 para terminar): 0
>> Nacional
> Llamadas: 1 Duracion: 10.0 > Media: 10.0
>> Provincial
> Llamadas: 1 Duracion: 20.0 > Media: 20.0
>> Local
> Llamadas: 2 Duracion: 70.0 > Media: 35.0
>> Total
> Numero de llamadas: 4
> Duracion total: 100.0
> Duracion media: 25.0


y mi programa es este, que he modificado tantas veces, que ya estoy liadísima con todo.

Program perfil_llamadas;

var
duracion:integer;
duracionN,duracionP,duracionL:integer;
respuesta:char;
llamadasN,llamadasP,llamadasL:integer;
duracion_total:integer;
duracionTN,duracionTP,duracionTL:integer;
Tllamadas,TllamadasN,TllamadasP,TllamadasL:integer;
Tmedia:real;
mediaN,mediaP,mediaL:real;
TmediaN,TmediaP,TmediaL:real;


(*-- Programa Principal -- *)
begin


duracionTN:=0;
duracionTP:=0;
duracionTL:=0;
duracion_total:=0;
Tllamadas:=0;
llamadasN:=0;
TllamadasP:=0;
TllamadasL:=0;
TllamadasN:=0;
llamadasN:=0;
llamadasP:=0;
llamadasL:=0;
TmediaN:=0;
TmediaP:=0;
TmediaL:=0;


writeln('Duracion de la llamada (0 para terminar): ',duracion);
readln(duracion);
write('Tipo de llamada (N/P/L) ',respuesta);
readln(respuesta);

while(duracion>0)do
begin
writeln('Duracion de la llamada (0 para terminar): ',duracion);
readln(duracion);
write('Tipo de llamada (N/P/L) ',respuesta);
readln(respuesta);



if(respuesta='N')then
begin
duracionN:=duracionN+duracion;
llamadasN:=llamadasN+1;
duracionTN:=duracionN+duracionTN;
TllamadasN:=llamadasN+TllamadasN;
mediaN:=duracionN/llamadasN;
TmediaN:=mediaN+TmediaN;
readln;
end;

if(respuesta='P')then
begin
duracionP:=duracionP+duracion;
llamadasP:=llamadasP+1;
duracionTP:=duracionP+duracionTP;
TllamadasP:=llamadasP+TllamadasP;
mediaP:=duracionP/llamadasP;
TmediaP:=mediaP+TmediaP;
readln;
end;

if(respuesta='L')then
begin
duracionL:=duracionL+duracion;
llamadasL:=llamadasL+1;
duracionTL:=duracionL+duracionTL;
TllamadasL:=llamadasL+TllamadasL;
mediaL:=duracionL/llamadasL;
TmediaL:=mediaL+TmediaL;
readln;
end;
end;

Tllamadas:=(TllamadasN+TllamadasP+TllamadasL);
duracion_total:=duracion_total+duracion;
Tmedia:=duracion_total/Tllamadas;

if(duracion=0)then
begin
write(' >> Nacional');
write('> Llamadas: ',TllamadasN,'Duracion: ',duracionTN,'> Media: ',TmediaN:0:2);
readln;
write('>> Provincial');
write('> Llamadas: ',TllamadasP,'Duracion: ',duracionTP,'> Media: ',TmediaP:0:2);
readln;
write('>> Local');
write('> Llamadas: ',TllamadasL,'Duracion: ',duracionTL,'> Media: ',TmediaL:0:2);
readln;
writeln('>> Total');
write('> Numero de llamadas: ',Tllamadas);
readln(Tllamadas);
write('> Duracion total: ',duracion_total);
readln(duracion_total);
write('> Duracion media: ',Tmedia:0:2);
readln(Tmedia);
end;

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

Ayuda,ejercicio para aprender Pascal

Publicado por ramon (2072 intervenciones) el 07/04/2014 00:25:08
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{Mira a ver si esto te sirve}
 
 program llamadas;
  uses
      crt;
   var
      nllamad : integer;
     tduraccin, tduraccip, tduraccil : real;
     tmedian, tmediap, tmedial   : real;
     nacionales, provinciales, locales : integer;
     durac : real;
 
 
    procedure entradas;
    var
       tec : char;
    begin
    durac := 1;
    while durac <> 0 do
    begin
       clrscr;
       writeln('  Entre Datos [0] Termina');
       writeln;
       write('  Entre Tiempo Llamada  : ');
       readln(durac);
       if durac <> 0 then
       begin
       write('  Entre Llamada [N/P/L] : ');
       repeat
          tec := upcase(readkey);
       until tec in['N','P','L'];
    case tec of
 'N' : Begin
          nacionales := nacionales + 1;
          tduraccin := tduraccin + durac;
       end;
 'P' : Begin
          provinciales := provinciales + 1;
          tduraccip := tduraccip + durac;
       end;
 'L' : Begin
          locales := locales + 1;
          tduraccil := tduraccil + durac;
       end;
      end;
     end;
    end;
  end;
 
  procedure presenta_calculos;
  begin
     clrscr;
     writeln('**** Resumen De Llamadas ****');
     writeln;
     writeln('  Numero Llamadas Nacionales    = ',nacionales);
     writeln('  Tiempos Llamadas Nacionales   = ',tduraccin:0:2);
     writeln;
     writeln('  Numero Llamadas Provinciales  = ',provinciales);
     writeln('  Tiempos Llamadas Provinciales = ',tduraccip:0:2);
     writeln;
     writeln('  Numero Llamadas Locales       = ',locales);
     writeln('  Tiempos Llamadas Locales      = ',tduraccil:0:2);
     writeln;
     writeln('  Numero De Llamadas            = ',
                nacionales + provinciales + locales);
     writeln('  Duraccion Total               = ',
                          tduraccin + tduraccip + tduraccil:0:2);
     writeln('  Duracion Media                = ',
                 (tduraccin + tduraccip + tduraccil) / 3:0:2);
     writeln;
     writeln(' <<< Pulse Una Tecla >>>');
     readkey;
   end;
 
   begin
       entradas;
       presenta_calculos;
   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