Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Juliveram

pascal/ matriz

Recommended Posts

Ola senhores colegas da web. Sou estudante de Sistemas de informação e não estou conseguindo terminar o programa abaixo da forma correta.{ Escreva um programa para reservar cadeiras em um teatro cuja disposição deuma matriz E 30 por 40. O programa deve conter um procedimento com um menu. Opções: reservar, listar reservas , cadeiras e sair. O padrão da cadeira vaziadevera ser caracter. }PROGRAM TEATRO;USES CRT;VAR CADEIRAS: ARRAY[1..30,1..40]OF STRING; L,C,X,Y,N: INTEGER; OPC: CHAR; NOME: STRING;PROCEDURE MENU();BEGIN WRITELN(' 1 - RESERVAR '); WRITELN(' 2 - LISTAR RESERVAS '); WRITELN(' 3 - CADEIRAS '); WRITELN(' 4 - SAIR ');END;PROCEDURE RESERVAR();BEGIN WRITELN(' A RESERVA É PARA: '); READLN(L,C); WRITELN(' RESERVADO PARA '); READLN(NOME); CADEIRAS[L,C]:=NOMEEND;PROCEDURE LISTARRESERVAS();BEGIN FOR X:=1 TO 30 DO BEGIN FOR Y:=1 TO 40 DO BEGIN IF(CADEIRAS[X,Y]<>' 0 ')THEN WRITELN(CADEIRAS[X,Y],' '); END; WRITELN(' '); END; BEGIN WHILE(OPC>0) AND (OPC<4)DO BEGIN CASE OPC OF '1': WRITELN(' RESERVAR '); '2': WRITELN(' LISTAR RESERVAS '); '3': WRITELN(' CADEIRAS '); '4': WRITELN(' SAIR '); END; READKEY;END. Por favor caso algem entre os senhores saibam a resposta deste programa em pascal consertem o mesmo e reenvie p/ mim. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adorei sua pergunta Sr. Juliveram.program Teatro1; uses crt; var x,y,opc,vaga:integer; cadeira:array[1..5,1..5] of string[20]; procedure menu; begin writeln('Escolha sua opção :'); writeln('1- fazer reserva :'); writeln('2 - listar reservas :'); writeln('3 - mostrar tudo :'); writeln('4 - zerar toda a matriz :'); writeln('5 - sair :'); end; procedure testa_reserva (a,b:integer); begin if cadeira[a,b]<>'0' then begin writeln('FILA ',a,'COLUNA ',b,'ESTA RESERVADA PARA',cadeira[a,b]); writeln; vaga:=0 end else begin writeln('RESERVA EFETUADA'); writeln; vaga:=1 end; end; procedure reservar; var l,c,conta:integer; nome:string; begin conta:= 0; repeat if conta<>0 then writeln('Tente outro numero ente 1 e 5'); writeln('Entre com a fileira <1 a 5>:'); readln(l); conta:=conta+1; until (l>0) and (l<6); conta:=0; repeat if conta<>0 then writeln('Tente outro numero entre 1 e 5'); writeln('Entre com a coluna <1 a 5>:'); readln©; conta:= conta+1; until (c>0) and (c<6); writeln('Entre com o nome do dono da reserva:'); readln(nome); testa_reserva(l,c); if vaga=1 then cadeira[l,c]:= nome; end; procedure lista_reserva; begin for x:=1 to 5 do for y:=1 to 5 do if cadeira[x,y]<>'0' then writeln ('fila:',x,' coluna:',y,' -> ',cadeira[x,y]); end; procedure lista_tudo; begin for x:=1 to 5 do begin write('fila ',x,' '); for y:=1 to 5 do write(cadeira[x,y],' - '); writeln; end; end; procedure cria_matriz_zerada; begin for x:=1 to 5 do for y:=1 to 5 do cadeira[x,y]:='0'; end; BEGIN cria_matriz_zerada(); repeat menu(); readln(opc); clrscr; case opc of 1 : reservar(); 2 : lista_reserva(); 3 : lista_tudo(); 4 : cria_matriz_zerada(); end; until (opc=5) ; END.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teu programa esta quase perfeito, apenas apague o que esta em vermelho... la em baixo eu explico o pq...

 

program Teatro1;

uses crt;

var

x,y,opc,vaga:integer;

cadeira:array[1..5,1..5] of string[20];

procedure menu;

begin

writeln('Escolha sua opção :');

writeln('1- fazer reserva :');

writeln('2 - listar reservas :');

writeln('3 - mostrar tudo :');

writeln('4 - zerar toda a matriz :');

writeln('5 - sair :');

end;

procedure testa_reserva (a,b:integer);

begin

if cadeira[a,b]<>'0' then

begin

writeln('FILA ',a,'COLUNA ',b,'ESTA RESERVADA PARA',cadeira[a,b]);

writeln;

vaga:=0

end

else

begin

writeln('RESERVA EFETUADA');

writeln;

vaga:=1

end;

end;

procedure reservar;

var l,c,conta:integer;

nome:string;

begin

conta:= 0;

repeat

if conta<>0 then writeln('Tente outro numero ente 1 e 5');

writeln('Entre com a fileira <1 a 5>:');

readln(l);

conta:=conta+1;

until (l>0) and (l<6);

conta:=0;

repeat

if conta<>0 then writeln('Tente outro numero entre 1 e 5');

writeln('Entre com a coluna <1 a 5>:');

readln( c);

conta:= conta+1;

until (c>0) and (c<6);

writeln('Entre com o nome do dono da reserva:');

readln(nome);

testa_reserva(l,c);

if vaga=1 then

cadeira[l,c]:= nome;

end;

procedure lista_reserva;

begin

for x:=1 to 5 do

for y:=1 to 5 do

if cadeira[x,y]<>'0' then

writeln ('fila:',x,' coluna:',y,' -> ',cadeira[x,y]);

end;

procedure lista_tudo;

begin

for x:=1 to 5 do

begin

write('fila ',x,' ');

for y:=1 to 5 do

write(cadeira[x,y],' - ');

writeln;

end;

end;

procedure cria_matriz_zerada;

begin

for x:=1 to 5 do

for y:=1 to 5 do

cadeira[x,y]:='0';

end;

BEGIN

cria_matriz_zerada();

repeat

menu();

readln(opc);

clrscr;

case opc of

1 :

reservar();

2 :

lista_reserva();

3 :

lista_tudo();

4 :

cria_matriz_zerada();

end;

until (opc=5) ;

END.

 

 

 

quando você chama uma procedure ela naum precisa de parametros ...

você estava chamando a procedure menu deste modo:

menu();

mas o correto qdo se trata de uma procedure eh:

menu;

ficou massa teu programa:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.