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
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)