Pascal/Turbo Pascal - Ayuda con este programa

 
Vista:
sin imagen de perfil

Ayuda con este programa

Publicado por Giovanna Claudis (1 intervención) el 21/06/2014 20:32:47
Una cadena de cines quiere controlar la evolución de sus 20 salas repartidas en Capital, y para ello lee la siguiente información:

 Sala (1 a 20)
 Zona (1 a 8)

Luego se lee la información de cada proyección realizada el último mes de sus 33 películas

 Código de Película (3 dígitos no correlativos)
 Sala
 Cantidad de espectadores

La información finaliza cuando se lee Código de Película =0


1. Informe las películas que tuvieron cantidad total de espectadores menores al promedio.

2. Informe la zona con menor cantidad de espectadores (puede haber más de una. No tomar en cuenta aquellas zonas que no tuvieron espectadores).

3. Emita un listado con las Salas y la cantidad total de películas proyectadas ordenadas de mayor a menor.

4. Indique la zona donde se proyectaron menor cantidad de películas, no tomar en cuenta las zonas sin emisión de películas.

Muchas gracias de antemano.
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 con este programa

Publicado por ramon (2158 intervenciones) el 26/06/2014 00:36:22
{Mira tengo esto en preparacion pero mis dudas me an parado dime algo sobre esto

3. Emita un listado con las Salas y la cantidad total de películas proyectadas ordenadas de mayor a menor.

4. Indique la zona donde se proyectaron menor cantidad de películas, no tomar en cuenta las zonas sin emisión de películas.}

3 la ordenación por codigo de sala o por películas emitidas.
4 que referencia se toma 1 película o cuantas.

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
program controlcines;
  uses
     crt;
   type
      salas = record
       zona : string[40];
       codigopeli : string[3];
       numespecta : integer;
      end;
  var
    sala : array[1..20] of salas;
    cont : integer;
    tecla : char;
 
  procedure Entrada_datos(n : integer);
  var
    i : integer;
    esta : boolean;
  begin
    clrscr;
    writeln('***** Entradas Datos Salas *****');
    writeln;
    esta := false;
    with sala[n] do
    begin
     write('   Entre Zona Ejp. [Luccieni]       : ');
     readln(zona);
     write('   Entre Codigo Pelicula Ejp. [1f8] : ');
     readln(codigopeli);
     write('   Entre Num. Espectadores          : ');
     readln(numespecta);
     end;
    end;
 
  function promedio : real;
  var
     sal, esp, i : integer;
     pro : real;
  begin
      sal := 0;
      esp := 0;
      pro := 0;
      promedio := 0;
      for i := 1 to cont - 1 do
      begin
      if sala[i].numespecta > 0 then
      begin
         esp := esp + sala[i].numespecta;
         sal := sal + 1;
      end;
    end;
        pro := esp / sal;
        promedio := pro;
  end;
 
  procedure peliculas_menores_del_promedio;
  var
    pa : integer;
    medi : real;
    especta : array[1..20] of integer;
 
  begin
     medi := promedio;
     for pa := 1 to cont do
     begin
         if sala[pa].codigopeli > ' ' then
         especta[pa] := sala[pa].numespecta;
     end;
      for pa := 1 to cont do
      if especta[pa] < medi then
      writeln(sala[pa].codigopeli,'      ',sala[pa].numespecta);
  end;
 
  procedure zona_de_menores_espectadores;
  var
    pa : integer;
    medi : real;
    especta : array[1..20] of integer;
  begin
     medi := promedio;
     for pa := 1 to cont do
     begin
         if sala[pa].codigopeli > ' ' then
           if sala[pa].numespecta < medi then
             especta[pa] := sala[pa].numespecta;
      end;
      for pa := 1 to cont do
      writeln(sala[pa].zona,'      ',sala[pa].numespecta);
  end;
 
  procedure salas_peliculas_totales;
  var
    pp, sa : integer;
  begin
      pp := 0;
      for sa := 1 to cont do
      begin
         if sala[sa].codigopeli > ' ' then
         begin
         pp := pp + 1;
         writeln(sala[sa].zona);
         end;
      end;
        writeln;
        writeln('  Total Peliculas Emitidas = ',pp);
  end;
 
 
 
 
 
  begin
     cont := 1;
     textcolor(15);
 
 
  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