Ir ao conteúdo
  • Cadastre-se
jemc77

Exercicio Matrizes em Pascal

Recommended Posts

Olá,

Esta é a minha primeira participação no forum, estou começando na programação e espero que alguem possa me dar umas dicas.

Tenho a seguinte tarefa:

"Você dever construir um programa para solucionar o seguinte problema: O dono de um Teatro deseja informatizar seu estabelecimento que possui espaço para 150 pessoas sentadas. Ele precisa controlar a venda destas poltronas. Para isto ele necessita saber na hora da reserva do ingresso qual a poltrona e o nome do comprador para efetivar a compra. As poltronas possuem uma numeração consecutiva iniciando em 1 (um) até 150. São 15 fileiras de 10 lugares.

Utilizando o conceito de matriz e fazendo a analogia de que cada poltrona é uma célula da matriz. Crie um programa que guarde nesta matriz o nome de quem reservou a poltrona e a data em que isto foi feito.

O programa também deve poder cancelar a reserva feita.

O programa deverá informar quantos lugares vagos ainda existem.

Requisitos:

O programa deverá ter um menu para controlar a RESERVA e o CANCELAMENTO, além de mostrar as poltronas livres.

O programa deverá efetivar a reserva pelo numero da poltrona desejada."

Não quero um programa pronto, só um empurrãozinho. Como guardar os dados na matriz, como cancelar uma reserva e listar os lugares vagos?

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isto foi o que já consegui fazer. Não sei se está legal:

program teatro;

uses crt;

var

opcao,l,c,i,h,poltrona :integer;

T1,t2: array [1..15,1..10]of string;

data,nome :string;

begin

H:=1;

GOTOXY(30,2); WRITELN('Teatro do Senac');

GOTOXY(3,4); WRITELN(' Data Nome Poltrona');

for i:=1 to 15 do

begin

GOTOXY(3,5+i); WRITELN('[ ] [ ] [ ]');

end;

for i:=1 to 78 do

begin

GOTOXY(i,1); WRITELN('*');

GOTOXY(i,3); WRITELN('*');

GOTOXY(i,24); WRITELN('*');

end;

for i:=1 to 24 do

begin

GOTOXY(1,i); WRITELN('*');

GOTOXY(78,i); WRITELN('*');

end;

for l:= 1 to 15 do

for c:= 1 to 10 do

begin

inc(h);

t1[l,c] :=h;

end;

if opcao = 1 then

begin

for l:= 1 to 15 do

for c:= 1 to 10 do

begin

if (t1[l,c]=opcao) and (t2[l,c]:= '') then

t2[l,c]:=(data,nome,poltrona);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá cara, seja bem vindo ao forum!

Como percebi, você já sabe criar uma matriz.. então minha sugestão é simples:

Crie, dentro da matriz, dimensões suficientes para guardar:

O nome, a data e se foi ou não pago.

Com esse "foi ou não pago" você pode jogar num loop para cancelar..

por exemplo:

for i:=1 to 150 do

.begin

..if lugar[i,1] = 'Nome do cliente' then

...{faça para apagar o nome do cliente, a data, e se foi ou não pago, para dizer que a vaga está livre}

..end;

.end;

Deu pra ter uma ideia? se quiser eu explico melhor!

E acho que essa parada do loop ja deu pra dar uma ideia de como calcular as vagas livres né?

Eu posso falar mas quero fazer você pensar o maximo possivel.. pois isso é o que mais aprendemos ^^

Qualquer coisa poste e te ajudarei!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara... eu fiz um projeto parecido... nem cheguei a terminar todo ele, faltaram algumas funções, como pra reservar cadeiras consecutivas caso fosse uma família que quisesse assistir ao espetáculo... tente adaptar o código... e use registro para armazenar as informações do nome do ocupante e hora em que o ingresso foi comprado...

aí vai o código, eu usei o pascalzim pra criar ele... creio que so copiar ele pro turbo ou free e acrescentar a biblioteca CRT não resolverá o problema da interface... melhor você abrir no pascalzim mesmo...

outra coisa... paciência... são quase mil linhas de código... boa sorte... §=)


Program Teatro_Carlos_Gomes ;
var
lugar:array [1..20,1..20] of char;
i,j,it,jt,l,publico,disponivel,consec,dconsec,fe,a:integer;
arrecadacao,ingresso:real;
flag,opcao:char;
login:string;
sair,sair2,sair3:boolean;

procedure head;
begin
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' T E A T R O C A R L O S G O M E S ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
end;

procedure duaslinhas;
begin
writeln;
writeln;
end;

procedure dozelinhas;
begin
for l:=1 to 12 do
writeln;
end;

procedure sim_nao;
begin
textcolor (lightred);
write ('S');
textcolor (lightgreen);
write ('im ou ');
textcolor (lightred);
write ('N');
textcolor (lightgreen);
write ('ao? ');
end;

procedure palco_1;
begin
clrscr;
writeln;
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' P A L C O ',#14,' ',#14,' ',#14);
end;

procedure palco_2;
begin
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
writeln (' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14,' ',#14);
end;

Begin
for i:=1 to 20 do
for j:=1 to 20 do
lugar[i,j]:='O';
dozelinhas;
dozelinhas;
writeln (' Para uma melhor vizualizacao');
writeln;
write (' aumente o tamanho da tela ou maximize-a (alt+ENTER) ');
readkey;
clrscr;
duaslinhas;
head;
duaslinhas;
write (' Informe seu login: ');
read (login);
login:=upcase(login);
duaslinhas;
write (' Informe o valor do ingresso: ');
read (ingresso);
if (ingresso<0) then
ingresso:=ingresso*(-1);
duaslinhas;
write (' Olá ',login);
readkey;
clrscr;
repeat
publico:=0;
for i:=1 to 20 do
for j:=1 to 20 do
if (lugar[i,j]='X') then
publico:=publico+1;
disponivel:=400-publico;
textcolor (lightgreen);
duaslinhas;
head;
duaslinhas;
textcolor (white);
writeln (' Operador: ',login);
writeln;
writeln (' Ingresso: R$ ',ingresso:2:2);
writeln;
writeln (' Lugares disponiveis: ',disponivel);
duaslinhas;
textcolor (lightred);
writeln (' Informe o numero da opção desejada:');
duaslinhas;
write (' 1');
textcolor (lightgreen);
writeln (' > Ver o mapa do teatro');
writeln;
textcolor (lightred);
write (' 2');
textcolor (lightgreen);
writeln (' > Consultar a disponibilidade de um lugar');
writeln;
textcolor (lightred);
write (' 3');
textcolor (lightgreen);
writeln (' > Reserva de lugares');
writeln;
textcolor (lightred);
write (' 4');
textcolor (lightgreen);
writeln (' > Troca de lugares');
writeln;
textcolor (lightred);
write (' 5');
textcolor (lightgreen);
writeln (' > Total arrecadado');
writeln;
textcolor (lightred);
write (' 6');
textcolor (lightgreen);
writeln (' > Cancelar reserva');
writeln;
textcolor (lightred);
write (' 7');
textcolor (lightgreen);
writeln (' > Cancelamento do espetáculo');
writeln;
textcolor (lightred);
write (' 8');
textcolor (lightgreen);
writeln (' > Configurações administrativas');
writeln;
textcolor (lightred);
write (' 9');
textcolor (lightgreen);
write (' > Sair ');
opcao:=(readkey);
case (opcao) of

'1':
repeat
clrscr;
duaslinhas;
duaslinhas;
writeln (' O mapa do teatro pode ser exibido de três maneiras, sendo exibido para o ');
writeln (' palco PRINCIPAL (central) ou palco lateral ESQUERDO ou palco lateral DIREITO.');
duaslinhas;
writeln (' A venda de ingressos tera sempre como orientacaoo palco PRINCIPAL... ');
textcolor (lightred);
duaslinhas;
writeln;
writeln (' Informe o numero da opção desejada:');
duaslinhas;
write (' 1');
textcolor (lightgreen);
writeln (' > Ver o mapa do teatro voltado para o PALCO ESQUERDO');
writeln;
textcolor (lightred);
write (' 2');
textcolor (lightgreen);
writeln (' > Ver o mapa do teatro voltado para o PALCO CENTRAL');
writeln;
textcolor (lightred);
write (' 3');
textcolor (lightgreen);
writeln (' > Ver o mapa do teatro voltado para o PALCO DIREITO');
writeln;
textcolor (lightred);
write (' 4');
textcolor (lightgreen);
write (' > Voltar ao menu principal ');
opcao:=(readkey);
case (opcao) of
'1':
for j:=1 to 20 do
begin
textcolor (lightgreen);
if (j=1) then
begin
palco_1;
writeln (' ',#14,' ',#14,' ',#14,' E S Q U E R D O ',#14,' ',#14,' ',#14);
palco_2;
duaslinhas;
end;
if (j mod 2=0) then
textcolor (lightblue)
else if (j mod 2=1) then
textcolor (lightgreen);
if (j=11) then
begin
textcolor (lightred);
write ('COLUNAS');
textcolor (lightgreen);
write (' ',j,' ',#26,' ');
end
else if (j<>10) and (j<11) then
write (' ',j,' ',#26,' ')
else if (i<>11) and (j>9) then
write (' ',j,' ',#26,' ');
for i:=20 downto 1 do
begin
if (lugar[i,j]='X') then
textcolor (lightred)
else
begin
if (j mod 2=0) then
textcolor (lightblue)
else
textcolor (lightgreen);
end;
write (lugar[i,j]);
write (' ');
end;
writeln;
if (j=20) then
begin
textcolor (lightgreen);
writeln;
writeln (' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24);
writeln;
writeln (' 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1');
writeln;
textcolor (lightred);
writeln (' F I L E I R A S');
textcolor (lightgreen);
duaslinhas;
writeln (' X indica lugar ocupado e O um lugar vazio');
duaslinhas;
write (' Pressione qualquer tecla para voltar ao menu de vizualizacao... ');
readkey;
end;
end;

'2':
for i:=1 to 20 do
begin
textcolor (lightgreen);
if (i=1) then
begin
palco_1;
writeln (' ',#14,' ',#14,' ',#14,' C E N T R A L ',#14,' ',#14,' ',#14);
palco_2;
duaslinhas;
end;
if (i mod 2=0) then
textcolor (lightblue)
else if (i mod 2=1) then
textcolor (lightgreen);
if (i=11) then
begin
textcolor (lightred);
write ('FILEIRAS');
textcolor (lightgreen);
write(' ',i,' ',#26,' ');
end
else if (i<>10) and (i<11) then
write (' ',i,' ',#26,' ')
else if (i<>11) and (i>9) then
write (' ',i,' ',#26,' ');
for j:=1 to 20 do
begin
if (lugar[i,j]='X') then
textcolor (lightred)
else
begin
if (i mod 2=0) then
textcolor (lightblue)
else
textcolor (lightgreen);
end;
write (lugar[i,j]);
write (' ');
end;
writeln;
if (i=20) then
begin
textcolor (lightgreen);
writeln;
writeln (' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24);
writeln;
writeln (' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20');
writeln;
textcolor (lightred);
writeln (' C O L U N A S');
textcolor (lightgreen);
duaslinhas;
writeln (' X indica lugar ocupado e O um lugar vazio');
duaslinhas;
write (' Pressione qualquer tecla para voltar ao menu de vizualizacao... ');
readkey;
end;
end;
'3':
for j:=20 downto 1 do
begin
textcolor (lightgreen);
if (j=20) then
begin
palco_1;
writeln (' ',#14,' ',#14,' ',#14,' D I R E I T O ',#14,' ',#14,' ',#14);
palco_2;
duaslinhas;
end;
if (j mod 2=1) then
textcolor (lightblue)
else if (j mod 2=0) then
textcolor (lightgreen);
if (j=10) then
begin
textcolor (lightred);
write ('COLUNAS');
textcolor (lightgreen);
write (' ',j,' ',#26,' ');
end
else if (j<10) then
write (' ',j,' ',#26,' ')
else if (j<>10) and (j>9) then
write (' ',j,' ',#26,' ');
for i:=1 to 20 do
begin
if (lugar[i,j]='X') then
textcolor (lightred)
else
begin
if (j mod 2=0) then
textcolor (lightblue)
else
textcolor (lightgreen);
end;
write (lugar[i,j]);
write (' ');
end;
writeln;
if (j=1) then
begin
textcolor (lightgreen);
writeln;
writeln (' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24,' ',#24);
writeln;
writeln (' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20');
writeln;
textcolor (lightred);
writeln (' F I L E I R A S');
textcolor (lightgreen);
duaslinhas;
writeln (' X indica lugar ocupado e O um lugar vazio');
duaslinhas;
write (' Pressione qualquer tecla para voltar ao menu de vizualizacao... ');
readkey;
end;
end;
end;
until (opcao='4');

'2':
repeat
clrscr;
duaslinhas;
write (' Informe APENAS o numero da FILEIRA do lugar a ser pesquisado ');
read (i);
while (i>20) or (i<1) do
begin
if (i>20) then
begin
writeln;
write (' O teatro possui apenas 20 fileiras! por favor, informe um numero menor... ');
read (i);
end
else if (i<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a fileira ');
read (i);
end;
end;
writeln;
write (' Informe APENAS o numero COLUNA do lugar a ser pesquisado ');
read (j);
while (j>20) or (j<1) do
begin
if (j>20) then
begin
writeln;
write (' O teatro possui apenas 20 colunas! por favor, informe um numero menor... ');
read (j);
end
else if (j<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a coluna ');
read (j);
end;
end;
if (lugar[i,j]='X') then
begin
writeln;
write (' O lugar [',i,' - ',j,'] já esta ocupado...');
readkey;
flag:='N';
end
else
begin
writeln;
write (' O lugar esta disponível... Deseja reserva-lo? ');
sim_nao;
flag:=upcase(readkey);
writeln;
while (flag<>'N') do
begin
if (flag='S') then
begin
clrscr;
lugar[i,j]:='X';
duaslinhas;
writeln (' LUGAR [',i,' - ',j,'] RESERVADO COM SUCESSO POR ',login,'!!!');
writeln;
write (' Pressione qualquer tecla para voltar ao menu principal... ');
readkey;
flag:='N';
end
else if (flag<>'S') and (flag<>'N') then
begin
clrscr;
writeln;
writeln (' Opção invalida!');
write (' O lugar esta disponível... Deseja reserva-lo? ');
sim_nao;
flag:=upcase(readkey);
end;
end;
end;
until (flag='N');

'3':
repeat
begin
clrscr;
duaslinhas;
writeln (' O ingresso possui a seguinte localizacao no teatro:');
writeln;
textcolor (lightred);
writeln (' (N DA FILEIRA - N DA COLUNA) ex: [15 - 10] (FILEIRA 15 - COLUNA 10)');
writeln;
writeln (' Quanto menor o numero da FILEIRA mais perto do palco principal.');
writeln (' Quanto menor o numero da COLUNA mais a esquerda de quem esta de frente');
writeln (' para o palco principal.');
writeln;
textcolor (lightgreen);
writeln (' O teatro possui 20 fileiras e 20 colunas, somando um total de 400 lugares');
duaslinhas;
textcolor (lightred);
writeln (' Informe o numero da opcao desejada');
duaslinhas;
write (' 1');
textcolor (lightgreen);
writeln (' > Reservar um lugar apenas');
writeln;
textcolor (lightred);
write (' 2');
textcolor (lightgreen);
writeln (' > Verificar lugares consecutivos na mesma fileira');
writeln;
textcolor (lightred);
write (' 3');
textcolor (lightgreen);
write (' > Voltar ao menu pricipal ');
opcao:=(readkey);
repeat
case (opcao) of
'1':
if i=i then
begin
clrscr;
duaslinhas;
write (' Informe apenas o numero da fileira do lugar a ser reservado ');
read (i);
while (i>20) or (i<1) do
begin
if (i>20) then
begin
write (' O teatro possui apenas 20 fileiras! por favor, informe um numero menor... ');
read (i);
end
else if (i<1) then
begin
write (' Por favor, informe um numero maior que 0');
read (i);
end;
end;
write (' Informe apenas o numero coluna do lugar a ser reservado ');
read (j);
while (j>20) or (i<1) do
begin
if (j>20) then
begin
write (' O teatro possui apenas 20 colunas! por favor, informe um numero menor... ');
read (j);
end
else if (i<1) then
begin
write (' Por favor, informe um numero maior que 0');
read (j);
end;
end;
if (lugar[i,j]='X') then
begin
writeln (' O lugar [',i,' - ',j,'] ja esta reservado!');
writeln;
writeln (' Favor olhar o mapa e escolher outro lugar...');
writeln;
write (' Pressione qualquer tecla para voltar ao menu de reservas... ');
readkey;
sair2:=true;
end
else
begin
clrscr;
lugar[i,j]:='X';
duaslinhas;
writeln (' LUGAR [',i,' - ',j,'] RESERVADO COM SUCESSO POR ',login,'!!!');
writeln;
writeln (' Pressione qualquer tecla para voltar ao menu de reservas... ');
readkey;
sair2:=true;
end;
end;

'2':
if i=i then
begin
duaslinhas;
writeln ('Opcao nao disponivel no momento ');
sair2:=true;
end;

'3':
sair2:=true;

end;
until (sair2=true);
end;
until (opcao='3');

'4':
if (i=i) then
begin
clrscr;
duaslinhas;
write (' Informe APENAS o numero da FILEIRA do lugar a ser trocado ');
read (i);
while (i>20) or (i<1) do
begin
if (i>20) then
begin
writeln;
write (' O teatro possui apenas 20 fileiras! por favor, informe um numero menor... ');
read (i);
end
else if (i<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a fileira ');
read (i);
end;
end;
writeln;
write (' Informe APENAS o numero COLUNA do lugar a ser trocado ');
read (j);
while (j>20) or (j<1) do
begin
if (j>20) then
begin
writeln;
write (' O teatro possui apenas 20 colunas! por favor, informe um numero menor... ');
read (j);
end
else if (j<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a coluna ');
read (j);
end;
end;
if (lugar[i,j]='O') then
begin
writeln;
writeln (' O lugar [',i,' - ',j,'] esta desocupado...');
readkey;
end
else
begin
writeln;
write (' Deseja mesmo trocar os lugares? ');
sim_nao;
flag:=upcase(readkey);
while (flag<>'N') do
begin
if (flag='S') then
begin
it:=i;
jt:=j;
duaslinhas;
write (' Informe APENAS o numero da FILEIRA do novo lugar ');
read (i);
while (i>20) or (i<1) do
begin
if (i>20) then
begin
writeln;
write (' O teatro possui apenas 20 fileiras! por favor, informe um numero menor... ');
read (i);
end
else if (i<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a fileira ');
read (i);
end;
end;
writeln;
write (' Informe APENAS o numero COLUNA do novo lugar ');
read (j);
while (j>20) or (j<1) do
begin
if (j>20) then
begin
writeln;
write (' O teatro possui apenas 20 colunas! por favor, informe um numero menor... ');
read (j);
end
else if (j<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a coluna ');
read (j);
end;
end;
if (lugar[i,j]='X') then
begin
writeln;
writeln (' O novo lugar esta ocupado e a troca nao foi efetuada!');
writeln;
write (' O ingresso continuara valendo para o local anterior [',it,' - ',jt,']... ');
readkey;
flag:='N';
end
else
begin
lugar[it,jt]:='O';
lugar[i,j]:='X';
clrscr;
duaslinhas;
writeln (' O LUGAR ANTERIOR ERA [',it,' - ',jt,'] E O NOVO LUGAR E [',i,' - ',j,'].');
writeln;
writeln (' SUBSTITUICAO REALIZADA POR ',login,'!!!');
writeln;
write (' Pressione qualquer tecla para voltar ao menu principal... ');
readkey;
flag:='N';
end;
end
else if (flag<>'S') and (flag<>'N') then
begin
clrscr;
writeln;
writeln (' Opção invalida!');
write (' Deseja mesmo trocar os lugares? ');
sim_nao;
flag:=upcase(readkey);
end;

end;
end;
end;

'5':
if (i=i) then
begin
clrscr;
arrecadacao:=publico*ingresso;
duaslinhas;
writeln;
writeln (' O teatro arrecadou até agora R$ ',arrecadacao:2:2,' com um total de ',publico,' pessoas');
writeln;
writeln (' O valor do ingresso e R$ ',ingresso:2:2);
writeln;
write (' Pressione qualquer tecla para voltar ao menu principal... ');
readkey;
end;

'6':
if (i=i) then
begin
flag:='S';
clrscr;
duaslinhas;
writeln (' Você esta prestes a cancelar uma reserva!');
writeln;
write (' Tem certeza que deseja continuar? ');
sim_nao;
flag:=upcase(readkey);
while (flag<>'N') do
begin
if (flag='S') then
begin
clrscr;
duaslinhas;
write (' Informe APENAS o numero da FILEIRA do novo lugar ');
read (i);
while (i>20) or (i<1) do
begin
if (i>20) then
begin
writeln;
write (' O teatro possui apenas 20 fileiras! por favor, informe um numero menor... ');
read (i);
end
else if (i<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a fileira ');
read (i);
end;
end;
writeln;
write (' Informe APENAS o numero COLUNA do novo lugar ');
read (j);
while (j>20) or (j<1) do
begin
if (j>20) then
begin
writeln;
write (' O teatro possui apenas 20 colunas! por favor, informe um numero menor... ');
read (j);
end
else if (j<1) then
begin
writeln;
write (' Informe um numero maior que 0 para a coluna ');
read (j);
end;
end;
if (lugar[i,j]='X') then
begin
clrscr;
lugar[i,j]:='O';
duaslinhas;
writeln (' RESERVA [',i,' - ',j,'] CANCELADA COM SUCESSO POR ',login,'!!!');
readkey;
clrscr;
duaslinhas;
write (' Cancelar outra reserva? ');
sim_nao;
flag:=upcase(readkey);
if (flag='N') then
begin
duaslinhas;
writeln (' Pressione qualquer tecla para voltar ao menu pricipal... ');
end;
end
else
begin
clrscr;
duaslinhas;
writeln (' O lugar ainda não foi reservado...');
writeln (' Você pode voltar ao menu principal e olhar o mapa ou tentar novamente...');
writeln;
write (' Tentar novamente sem olhar o mapa? ');
sim_nao;
flag:=upcase(readkey);
end;
end
else if (flag<>'S') and (flag<>'N') then
begin
clrscr;
writeln (' Opção Invalida! ');
write (' Cancelar outra reserva? ');
sim_nao;
flag:=upcase(readkey);
end;
end;
end;

'7':
if (i=i) then
begin
clrscr;
repeat
duaslinhas;
writeln (' AVISO!!! voce esta prestes a apagar o registro dos ingressos vendidos!!!');
writeln;
writeln (' As informações serao perdidas e o espetaculo sera cancelado... ');
duaslinhas;
write (' Tem certeza que deseja continuar e apagar tudo? ');
sim_nao;
flag:=upcase(readkey);
writeln;
while (flag<>'N') do
begin
if (flag='S') then
begin
clrscr;
for i:=1 to 20 do
for j:=1 to 20 do
lugar[i,j]:='O';
duaslinhas;
writeln (' TODOS AS RESERVAS DE LUGARES FORAM APAGADAS POR ',login,'!!!');
writeln;
write (' Pressione qualquer tecla para voltar ao menu principal... ');
readkey;
flag:='N';
end
else if (flag<>'S') and (flag<>'N') then
begin
clrscr;
writeln;
writeln (' Opção invalida!');
write (' Tem certeza que deseja continuar e apagar tudo? ');
sim_nao;
flag:=upcase(readkey);
end;
end;
until (flag='N');
end;

'8':
repeat
clrscr;
duaslinhas;
writeln (' opções administrativas');
duaslinhas;
textcolor (lightred);
writeln (' Informe o numero da opcao desejada');
duaslinhas;
write (' 1');
textcolor (lightgreen);
writeln (' > Trocar de usuario');
writeln;
textcolor (lightred);
write (' 2');
textcolor (lightgreen);
writeln (' > Alterar o valor dos ingressos');
writeln;
textcolor (lightred);
write (' 3');
textcolor (lightgreen);
write (' > Voltar ao menu principal ');
opcao:=(readkey);
case (opcao) of
'1':
if i=i then
begin
clrscr;
duaslinhas;
writeln (' ALTERACAO DE LOGIN');
duaslinhas;
writeln (' LOGIN ATUAL: ',login);
duaslinhas;
write (' Informe o novo login ');
read (login);
login:=upcase(login);
duaslinhas;
writeln (' OPERACAO REALIZADA COM SUCESSO, O NOVO LOGIN E ',login);
readkey;
end;
'2':
if i=i then
begin
clrscr;
duaslinhas;
writeln (' ALTERACAO DO VALOR DO INGRESSO');
duaslinhas;
writeln (' VALOR ATUAL DOS INGRESSOS: R$ ',ingresso:2:2);
duaslinhas;
write (' Informe o novo valor do ingresso ');
read (ingresso);
if ingresso<0 then
ingresso:=ingresso*(-1);
duaslinhas;
writeln (' OPERACAO REALIZADA COM SUCESSO, O NOVO VALOR DO INGRESSO E R$ ',ingresso:2:2);
readkey;
end;
end;
until (opcao='3');

'9':
repeat
clrscr;
duaslinhas;
writeln (' AVISO!!! Se voce sair apagara registro dos ingressos vendidos!!!');
writeln;
writeln (' As informações serao perdidas e o espetaculo sera cancelado... ');
duaslinhas;
write (' Tem certeza que deseja sair e apagar tudo? ');
sim_nao;
flag:=upcase(readkey);
writeln;
while (flag<>'N') do
begin
if (flag='S') then
begin
clrscr;
textcolor (lightred);
duaslinhas;
duaslinhas;
duaslinhas;
writeln (' "Quando todas as possibilidades sao esgotadas, o que resta por mais ');
writeln (' absurdo e grotesco que pareça ser, e a verdade..."');
duaslinhas;
duaslinhas;
writeln (' Sir Arthur Connan Doyle');
dozelinhas;
writeln (' Agradecimentos e dedicatoria:');
writeln;
writeln (' Lana Carolina Ribeiro Pedroso.');
duaslinhas;
duaslinhas;
duaslinhas;
writeln (' contato: rossiniliberal@bol.com.br');
readkey;
sair:=true;
flag:='N';
end
else if (flag<>'S') and (flag<>'N') then
begin
clrscr;
writeln;
writeln (' Opção invalida!');
writeln;
write (' Tem certeza que deseja continuar e apagar tudo? ');
end;
end;
until (flag='N');
end;
clrscr;
until (sair=true);
End.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×