rkixa Posted October 5, 2009 at 08:51 AM Report Share #289998 Posted October 5, 2009 at 08:51 AM 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 More sharing options...
M6 Posted October 5, 2009 at 07:20 PM Report Share #290126 Posted October 5, 2009 at 07:20 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now