Ayuda con programacion en pascal
Publicado por ciro (1 intervención) el 20/06/2014 21:59:56
Buenas tardes, soy nuevo en este tema de la programación y tengo una serie de consultas el enunciado del ejercicio es este:
Una cadena de cines quiere controlar la evolución de sus 32 salas repartidas en Capital, y para ello lee la siguiente información:
Sala (1 a 32)
Zona (1 a 7)
Luego se lee la información de cada proyección realizada el último mes de sus 45 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
Identificar los Datos suministrados y la estructura de datos a utilizar, los resultados, las relaciones entre datos y resultados, explicitar una estrategia.
Se solicita realizar la codificación en lenguaje Pascal que:
1. Informe por película cuál fue la cantidad total de espectadores que superen al promedio obtenido del total de proyecciones realizadas
2. Informe la zona con mayor cantidad de espectadores (puede haber más de una).
3. Emita un listado con las Salas y la cantidad total de películas proyectadas ordenadas de mayor a menor.
LA CODIFICACION EN PASCAL QUE HICE FUE ESTA
Program grupo9;
uses crt;
var
Z: array [1..7] of byte;
S: array [1..32] of byte;
CP: array [1..45] of byte;
CESP: array [1..45] of byte;
CEPZ: array [1..7] of byte;
ContP: array [1..45] of byte;
ZP: array [1..7] of byte;
ESZ: array [1..7] of byte;
I: byte;
J: byte;
tot: byte;
pel: byte;
sala: byte;
suma: byte;
prom: real;
max: real;
senal: real;
aux: real;
aux1: real;
esp: real;
pel: real;
Begin
For I:= 1 to 32 do
begin
Z[I]:=0;
S[I]:=0;
end;
For I:= 1 TO 32 do;
begin
Readln('Ingrese zona y sala');
ReadLn(z[I] , S[I]);
end;
tot:=0;
contp[I]:= 0 ;
Readln('pel, sala, esp');
While pel <> 0 do
BEGIN
I:=1;
while pel <> CP[I] and I < tot do
begin
I:= I+1;
end;
IF I > tot
then
begin
CP[I]:= pel;
tot:= tot + 1;
end;
CESP[I]:= CESP[I] + ESP;
FOR I:= 1 TO 32 DO
begin
IF sala = s[I]
then
begin
J:= z[i];
ESZ[J]:= ESZ[J] + ESP;
ZP[J]:= ZP[J] + 1;
CONTP[I]:= CONTP[I] + 1;
end;
Writeln ('pel, sala, esp')
end;
END;
SUMA:=0;
PROM:=0;
FOR I:= 1 TO 45 DO
begin
SUMA:= SUMA + CESP[I];
end;
PROM:= SUMA/TOT;
FOR I:= 1 TO 45 DO
Begin
IF CESP[I] > PROM
THEN
writeln ('CP[I], ESP[I]');
End;
MAX:= -1;
For I:= 1 to 7 Do
IF ESZ[J]< MAX
THEN
MAX:= ESZ[J];
writeln ('max');
Repeat
BEGIN
senal:=0;
FOR I:= 1 TO 31 DO
begin
aux:=contp[I];
contp[I]:= contp[I+1];
contp[I+1]:= aux;
aux1:= s[I];
S[I]:=S[I+1];
S[I+1]:= aux1;
senal:=9
end;
END;
until senal= '0';
writeln ('S[I], CONTP[I]');
repeat until keypressed;
end.
Me tira una serie de errores, si alguien me puede ayudar, desde ya muchas gracias.
Una cadena de cines quiere controlar la evolución de sus 32 salas repartidas en Capital, y para ello lee la siguiente información:
Sala (1 a 32)
Zona (1 a 7)
Luego se lee la información de cada proyección realizada el último mes de sus 45 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
Identificar los Datos suministrados y la estructura de datos a utilizar, los resultados, las relaciones entre datos y resultados, explicitar una estrategia.
Se solicita realizar la codificación en lenguaje Pascal que:
1. Informe por película cuál fue la cantidad total de espectadores que superen al promedio obtenido del total de proyecciones realizadas
2. Informe la zona con mayor cantidad de espectadores (puede haber más de una).
3. Emita un listado con las Salas y la cantidad total de películas proyectadas ordenadas de mayor a menor.
LA CODIFICACION EN PASCAL QUE HICE FUE ESTA
Program grupo9;
uses crt;
var
Z: array [1..7] of byte;
S: array [1..32] of byte;
CP: array [1..45] of byte;
CESP: array [1..45] of byte;
CEPZ: array [1..7] of byte;
ContP: array [1..45] of byte;
ZP: array [1..7] of byte;
ESZ: array [1..7] of byte;
I: byte;
J: byte;
tot: byte;
pel: byte;
sala: byte;
suma: byte;
prom: real;
max: real;
senal: real;
aux: real;
aux1: real;
esp: real;
pel: real;
Begin
For I:= 1 to 32 do
begin
Z[I]:=0;
S[I]:=0;
end;
For I:= 1 TO 32 do;
begin
Readln('Ingrese zona y sala');
ReadLn(z[I] , S[I]);
end;
tot:=0;
contp[I]:= 0 ;
Readln('pel, sala, esp');
While pel <> 0 do
BEGIN
I:=1;
while pel <> CP[I] and I < tot do
begin
I:= I+1;
end;
IF I > tot
then
begin
CP[I]:= pel;
tot:= tot + 1;
end;
CESP[I]:= CESP[I] + ESP;
FOR I:= 1 TO 32 DO
begin
IF sala = s[I]
then
begin
J:= z[i];
ESZ[J]:= ESZ[J] + ESP;
ZP[J]:= ZP[J] + 1;
CONTP[I]:= CONTP[I] + 1;
end;
Writeln ('pel, sala, esp')
end;
END;
SUMA:=0;
PROM:=0;
FOR I:= 1 TO 45 DO
begin
SUMA:= SUMA + CESP[I];
end;
PROM:= SUMA/TOT;
FOR I:= 1 TO 45 DO
Begin
IF CESP[I] > PROM
THEN
writeln ('CP[I], ESP[I]');
End;
MAX:= -1;
For I:= 1 to 7 Do
IF ESZ[J]< MAX
THEN
MAX:= ESZ[J];
writeln ('max');
Repeat
BEGIN
senal:=0;
FOR I:= 1 TO 31 DO
begin
aux:=contp[I];
contp[I]:= contp[I+1];
contp[I+1]:= aux;
aux1:= s[I];
S[I]:=S[I+1];
S[I+1]:= aux1;
senal:=9
end;
END;
until senal= '0';
writeln ('S[I], CONTP[I]');
repeat until keypressed;
end.
Me tira una serie de errores, si alguien me puede ayudar, desde ya muchas gracias.
Valora esta pregunta


0