pilha e fila - socorro

03/04/2003

0

CÓDIGO COM ERRO - SOCORRO
PRECISO IMPLEMENTAR UM PROGRAMA QUE SEJA CAPAZ DE CONTROLAR UMA PILHA E UMA FILA SIMULTANEAMENTE, DE MODO QUE AO ESCOLHER INSERIR ELEMENTO O MESMO O SEJA INSERIDO NAS DUAS ESTRUTURAS AO MESMOS TEMPO, ESTOU NISSO E NÃO SAIO:


program pilha;

uses
sysutils;

//==========
// Variáveis Globais
//==========
VAR vetor: array [1..10] of integer;
opc, x, i: integer;
conf: string;

//==========
// Procedimento para Limpeza de Tela
//==========
procedure CLEAR;
var I: integer;
begin
for I := 1 to 24 do
writeln;
end;

//==========
// Procedimento PUSH(x)
//==========
procedure PUSH(x, i: integer);
begin
vetor[i]:= x; //inclementa o I
readln;
end;

//==========
// Procedimento POP
//==========
procedure POP(i: integer);
begin
writeln(´O valor ´, vetor[i],´ da pilha foi excluido.´);
readln;
end;

//==========
// Procedimento ACESSAR
//==========
procedure ACESSAR(i: integer);
begin
write(´Valor mais acima: ´, vetor[i]);
end;

//==========
// Procedimento VER PILHA
//==========
procedure ver(i: integer);
var j: integer;
begin
for j:= i downto 1 do
begin
writeln(vetor[j]);
end;
end;

//========================================================================
// P R O G R A M A P R I N C I P A L
//========================================================================
begin
i:= 0;
repeat // Dá início ao laço que executa o menu várias vezes

CLEAR; // Limpa a tela

// Descrição do menu de opções
writeln(´M E N U D E O P C O E S´);
writeln;
writeln(´1 ... PUSH(x)´);//INSERIR NA PILHA//
writeln(´2 ... POP´); //EXLUIR NA PILHA//
writeln(´3 ... ACESSAR PILHA´);
writeln(´4 ... VER PILHA´);
writeln(´5 ... IN (x)´) ;//INSERIR NA FILA //
writeln(´6 ... OUT´); EXCLUIR NA FILA//
writeln(´7 ... ACESSAR FILA´);
writeln(´8 ... VER FILA´);
writeln(´9 ... SAIR´);
write (´Opcao: ´);
readln(OPC); // Leitura da Opção

case OPC of // verifica a Opção escolhida. Veja no Help o
// funcionamento do comando CASE
1: begin // Execução da Opção 1
if i = 10 then
begin
writeln;
writeln(´Pilha cheia´);
readln;
end else begin
writeln;
write(´Digite o valor a ser inserido: ´);
readln(x);
i:= i+1; // inclmenta o vetor
push(x, i);
end;
end;

2: begin // Execução da Opção 2
if i< 1 then
begin
writeln;
writeln(´Pilha vazia´);
readln;
end else begin
pop(i);
i:= i-1;
end;
end;

3: begin // Execução da Opção 3
if i< 1 then
begin
writeln;
writeln(´Pilha vazia´);
readln;
end else begin
writeln;
ACESSAR(i);
readln;
end;
end;

4: begin // Execução da Opção 4
if i< 1 then
begin
writeln;
writeln(´Pilha vazia´);
readln;
end else begin
writeln;
writeln(´Pilha com o topo acima´);
VER(i);
readln;
end;
end;

9: begin // Execução da Opção 9
writeln;
writeln(´Abandonar o Programa.´);
write (´Confirma (S/N)? ´);
readln(CONF);
CONF := uppercase(CONF); // Transforma tudo em MAIÚSCULO
if CONF <> ´N´
then OPC := 10;
end;

else begin // Execução de Opção Incorreta
writeln;
writeln(´Digite somente opcoes validas.´);
readln;
end;
end;// fim do case

until OPC = 10; // Comparação de Opção de saída
end. // Fim do Programa Principal

//Não consigo implementar a parte da fila//

AJUDEM-ME :roll: :?:


Favor postar o título em minúsculas
Moderador


Zanza

Zanza

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar