• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rkixa

[Ajuda] Pilha com Array (garagem)

2 mensagens neste tópico

Boas,

Tenho que entregar este trabalho hoje que consiste em simular uma pilha com um array.

O exercício consiste em fazer uma garagem onde a entrada e saida de carros obedece ao LIFO.

O que eu não consigo fazer são a passagem dos parametros das funcões abaixo para fazer os if's que estão comentados.

program ex_garagem;

uses crt;

const max=10;

type carros=record
            ano:integer;
            marca, matricula:string;
            end;

     garagem=record
             parque:array[1..max] of carros;
             cauda, contador:integer;
             end;

var parque:garagem;
      opcao:char;

procedure inicializar(var g:garagem);
    begin
     g.contador:=0;
     g.cauda:=0;
    end;

procedure registo(var g:garagem; var x:boolean);
    begin
    {if x=true
    then writeln('A garagem est  cheia, retire um carro por favor!')
    else }
     begin
      g.cauda:=g.cauda+1;
      writeln('Marca: ');
      readln(g.parque[g.cauda].marca);
      writeln('Matricula: ');
      readln(g.parque[g.cauda].matricula);
      writeln('Ano: ');
      readln(g.parque[g.cauda].ano);
      writeln;

      g.contador:=g.contador+1;
     end;
    end;

procedure ver_registo(g:garagem);
    var i:integer;

    begin
     for i:=1 to g.cauda do
      begin
       writeln('Veiculo ',i);
       writeln('Marca: ', g.parque.marca);
       writeln('Matricula: ',g.parque.matricula);
       writeln('Ano: ',g.parque.ano);
       writeln;
      end;
    end;

procedure apagar_reg(var g:garagem);
    begin
    {if y=true
    then writeln('A garagem est  vazia!')
    else}
     begin
     writeln('O seguinte carro vai ser retirado:');
     writeln('Marca: ', g.parque[g.cauda].marca);
     writeln('Matricula: ',g.parque[g.cauda].matricula);
     writeln('Ano: ',g.parque[g.cauda].ano);

     g.cauda:=g.cauda-1;
     end;
    end;

procedure estado(var g:garagem; var x:boolean);
    begin
     writeln('A garagem tem ',g.contador,' lugares ocupados');
     writeln('A lota‡Æo m xima da garagem ‚ de ',max,' lugares');
    end;

function cheio(var g:garagem; var x:boolean):boolean;
    begin
     if g.contador=10
      then cheio:=true
      else cheio:=false;
    end;

function vazio(var g:garagem; var y:boolean):boolean;
    begin
     if g.contador=0
      then vazio:=true
      else vazio:=false;
    end;

begin
clrscr;
inicializar(parque);

repeat

writeln('Escolha a op‡Æo desejada');
writeln('A - Estacionar');
writeln('R - Retirar');
writeln('V - Ver veiculos');
writeln('E - Estado da garagem');
writeln('S - Sair');
writeln;
readln(opcao);
writeln;

case opcao of

  'a','A' : begin
            cheio(parque,x);
            registo(parque,x);
            end;

  'r','R' : begin
            vazio(parque,y);
            apagar_reg(parque);
            end;

  'v','V' : ver_registo(parque);

  'e','E' : estado(parque,x);
end;

until opcao='s';

readkey;
end.

Agradecia mesmo uma ajuda.

cumps,

rkixa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de atribuir valores às variáveis x, y e parque.

Só não sei se deves pedir esses valores ao utilizador ou se o programa deverá calculá-los/atribui-los.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora