Juliveram 0 Denunciar post Postado Novembro 18, 2005 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
Prog 183 Denunciar post Postado Novembro 18, 2005 Se você especificar o problema, fica mais fácil ajudar. Com qual procedimento esta tendo dificuldades? Compartilhar este post Link para o post Compartilhar em outros sites
Juliveram 0 Denunciar post Postado Novembro 18, 2005 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
ricci ottadnot 4 Denunciar post Postado Março 10, 2006 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