Olá a todos, tudo beleza? Poderiam me ajudar?
Meu código tem a finalidade de reservar poltronas de um cinema, mostrar ao usuário as poltronas ocupadas caso ele digite uma já reservada e por fim mostrar uma lista do que já foi reservado.
O problema é que ao digitar o "indicador que finaliza" o algoritmo, ele só mostra a lista de reservados mas pede novamente o nome do usuário.
Como fazer para, ao digitar o "zero" ele mostrar a lista do que já foi reservado e aguardar apenas uma tecla pra finalizar?
Se puderem me dizer o que fiz de errado e uma breve explicação, ficaria grato.
Abraços.
Program Polt ;var cliente:array [1..50] of string;i:integer;Begin writeln('Reserva de poltronas numeradas'); writeln(' * Digite o numero da poltrona [1 a 50]'); writeln(' * Digite 0 para finalizar as entradas'); writeln; for i:=1 to 50 do // permite uma entrada de ate 50 dados cliente[i]:=''; // aspas simples indicando campo vazio while (i<>0) do begin writeln; write('Poltrona: ' ); readln(i); while ((i<0) or (i>50)) do begin writeln('Poltrona deve ser de 1 a 50'); writeln; write('Poltrona: ' ); readln(i); end; if (i=0) then // bloco que mostra ao usuario o que foi reservado ja pelo sistema begin writeln('POLTRONA NOME'); for i:=1 to 50 do if (cliente[i]<>'') then writeln(' ',i,' ',cliente[i]); writeln; end; if (cliente[i]='') then // se poltrona estiver vazia, confirma mostrando o cliente e a confirmacao de reserva begin write('Nome: '); readln(cliente[i]); writeln('Confirmado'); writeln; end else begin writeln('Poltrona não disponivel'); // se poltrona estiver reservada, alerta tal write('Poltrona<s> não disponiveis '); for i:= 1 to 50 do if (cliente[i]<>'') then write(i,' '); writeln; end; end;End.