Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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






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

×