Jump to content

[Ajuda] Pilha com Array (garagem)


rkixa

Recommended Posts

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

Link to comment
Share on other 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.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.