Ir ao conteúdo

Ajuda em vetor


felipemussii

Posts recomendados

Postado

Galera a professora no cursinho de programação pediu para fazermos um programa de venda de poltronas de um onibus,

porém essas poltronas teram q estar visiveis para saber se esta vaga ou nao e o numero 0 respresenta o lugar vago e o numero 1 representa o lugar oculpado eu desenvolvi o código só q na hora de alterar esses dois valores nao muda fica sempre o zero .(Pascal)

Fico grato desde de já pela ajuda.

                           {Programa de venda de poltronas em um ônibus,
sendo q a poltrona livre é marcada pelo numero 0 e a poltrona
oculpada é marcada pelo numero 1, temos 40 poltronas no onibus.}
Program Vendadepass ;
uses wincrt;
type vetor =array [1..40]of integer;

procedure rotvalida(var a:integer);
begin
while (a<1) or (a>40) do
begin
write('Poltrona nao existente, Dígite novamente: ');
readln(a);
end;
end;

var
d:vetor;
polt,lot,i,a:integer;
Begin
lot:=40;
for i:=1 to 20 do
begin
d[i]:=0;
end;
for i:=21 to 40 do
begin
d[i]:=0;
end;
for a:=40 downto 1 do
begin
clrscr;
{-----------------------------------Inicio da construção do painel de poltronas--------------------------------------------}

gotoxy (37,1);writeln('Janela');
gotoxy (12,2);writeln('=============================================================');
gotoxy (12,3);writeln('| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |');
gotoxy (12,4);writeln('=============================================================');
gotoxy (12,5);writeln('| ',d[1],' | ',d[2], ' | ',d[3],' | ',d[4],' | ',d[5],' | ',d[6],' | ',d[7],' | ',d[8],' | ',d[9],' | ',d[10],' |');
gotoxy (12,6);writeln('=============================================================');
gotoxy (12,7);writeln('| ',d[11],' | ',d[12], ' | ',d[13],' | ',d[14],' | ',d[15],' | ',d[16],' | ',d[17],' | ',d[18],' | ',d[19],' | ',d[29],' |');
gotoxy (12,8);writeln('=============================================================');
gotoxy (12,9);writeln('| 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |');
gotoxy (12,10);writeln('=============================================================');
gotoxy (35,11);writeln('Corredor');
gotoxy (12,12);writeln('=============================================================');
gotoxy (12,13);writeln('| 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |');
gotoxy (12,14);writeln('=============================================================');
gotoxy (12,15);writeln('| ',d[21],' | ',d[22],' | ',d[23],' | ',d[24],' | ',d[25],' | ',d[26],' | ',d[27],' | ',d[28],' | ',d[29],' | ',d[30],' |');
gotoxy (12,16);writeln('=============================================================');
gotoxy (12,17);writeln('| ',d[31],' | ',d[32],' | ',d[33],' | ',d[34],' | ',d[35],' | ',d[36],' | ',d[37],' | ',d[38],' | ',d[39],' | ',d[40],' |');
gotoxy (12,18);writeln('=============================================================');
gotoxy (12,19);writeln('| 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |');
gotoxy (12,20);writeln('=============================================================');
{---------------------------------------Fim da construção do painel de poltronas-----------------------------------------------------}

writeln('Ainda temos ',lot,' lugares livres'); {informa quantos lugares ainda estão vagos}
write('Numero da poltrona: ');
readln(polt); {leitura da poltrona a ser vendida}
rotvalida(polt);
for i:=1 to 40 do { Etrutura para modificar o numero do acento para um ou seja acento }
begin {q foi comprado q antes tinha zero agora fica como 1}
if polt=d[i]then
begin
d[i]:=1;
end;
end;

lot:=lot-1; {contador de acentos}

end;
writeln('Ônibus lotado');
End.

  • Membro VIP
Postado

Olá felipemussii.

Galera a professora no cursinho de programação pediu para fazermos um programa de venda de poltronas de um onibus, porém essas poltronas teram q estar visiveis para saber se esta vaga ou nao e o numero 0 respresenta o lugar vago e o numero 1 representa o lugar oculpado eu desenvolvi o código só q na hora de alterar esses dois valores nao muda fica sempre o zero .(Pascal)

Fico grato desde de já pela ajuda.

Código:


sendo q a poltrona livre é marcada pelo numero 0 e a poltrona
oculpada é marcada pelo numero 1, temos 40 poltronas no onibus.}
Program Vendadepass ;
uses wincrt;
type vetor =array [1..40]of integer;

procedure rotvalida(var a:integer);
begin
while (a<1) or (a>40) do
begin
write('Poltrona nao existente, Dígite novamente: ');
readln(a);
end;
end;

var
d:vetor;
polt,lot,i:integer;
Begin
lot:=40;
for i:=1 to 20 do
begin
d[i]:=0;
end;
for i:=21 to 40 do
begin
d[i]:=0;
end;
for i:=40 downto 1 do
begin
clrscr;
{-----------------------------------Inicio da construção do painel de poltronas--------------------------------------------}

gotoxy (37,1);writeln('Janela');
gotoxy (12,2);writeln('=============================================================');
gotoxy (12,3);writeln('| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |');
gotoxy (12,4);writeln('=============================================================');
gotoxy (12,5);writeln('| ',d[1],' | ',d[2], ' | ',d[3],' | ',d[4],' | ',d[5],' | ',d[6],' | ',d[7],' | ',d[8],' | ',d[9],' | ',d[10],' |');
gotoxy (12,6);writeln('=============================================================');
gotoxy (12,7);writeln('| ',d[11],' | ',d[12], ' | ',d[13],' | ',d[14],' | ',d[15],' | ',d[16],' | ',d[17],' | ',d[18],' | ',d[19],' | ',d[29],' |');
gotoxy (12,8);writeln('=============================================================');
gotoxy (12,9);writeln('| 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |');
gotoxy (12,10);writeln('=============================================================');
gotoxy (35,11);writeln('Corredor');
gotoxy (12,12);writeln('=============================================================');
gotoxy (12,13);writeln('| 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |');
gotoxy (12,14);writeln('=============================================================');
gotoxy (12,15);writeln('| ',d[21],' | ',d[22],' | ',d[23],' | ',d[24],' | ',d[25],' | ',d[26],' | ',d[27],' | ',d[28],' | ',d[29],' | ',d[30],' |');
gotoxy (12,16);writeln('=============================================================');
gotoxy (12,17);writeln('| ',d[31],' | ',d[32],' | ',d[33],' | ',d[34],' | ',d[35],' | ',d[36],' | ',d[37],' | ',d[38],' | ',d[39],' | ',d[40],' |');
gotoxy (12,18);writeln('=============================================================');
gotoxy (12,19);writeln('| 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |');
gotoxy (12,20);writeln('=============================================================');
{---------------------------------------Fim da construção do painel de poltronas-----------------------------------------------------}

writeln('Ainda temos ',lot,' lugares livres'); {informa quantos lugares ainda estão vagos}
write('Numero da poltrona: ');
readln(polt); {leitura da poltrona a ser vendida}
rotvalida(polt);
for i:=1 to 40 do { Etrutura para modificar o numero do acento para um ou seja acento }
begin {q foi comprado q antes tinha zero agora fica como 1}
if polt=d[i]then
begin
d[i]:=1;
end;
end;

lot:=lot-1; {contador de acentos}

end;
writeln('Ônibus lotado');
End.
                           {Programa de venda de poltronas em um ônibus,

Vamos aos pontos:

  1. Na Linha 61 tem um for que está dentro de outro e você está utilizando a mesma variável para controlar os dois. Para corrigir, basta usar outra variável, como "j".
  2. Para verificar se está ocupada ou não, não precisa usar uma iteração (laço de repetição), basta usar o número da poltrona como coordenada do array, ou seja, a poltrona X vai está na posição d[X]...
  3. Creio que o laço de repetição principal não deve ser por "quantidade fixa", mas sim por "condição', ou seja, poderia ficar ou "enquanto houver vagas" ou "enquanto o usuário deseje continuar cadastrando".

No aguardo.

Abraços

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!