Ir ao conteúdo
  • Cadastre-se

fila dinamica,ajuda


fabao1966

Posts recomendados

Oi pessoal, estou com um programa em fila dinamica rodando legal, porém queria incluir mais uma variavel do tipo string e nãp consigo, gostaria de uma ajuda, por favor me ajudem com essa missão impossivel segue o codigo:

program fila;

uses crt;

type

apontador = ^celula;

celula = record

item:integer;

prox:apontador;

end;

tipofila=record

frente:apontador;

tras:apontador;

end;

procedure iniciafila(var fila:tipofila);

var

aux:apontador;

begin

new (aux);

fila.frente:=aux;

fila.tras:=fila.frente;

fila.tras^.prox :=nil;

end;

function vazia(fila:tipofila):boolean;

begin

vazia:=fila.frente = fila.tras;

end;

procedure inserir(x:integer;var fila:tipofila);

var aux:apontador;

begin

new (aux);

fila.tras^.prox:=aux;

aux^.prox := nil;

aux^.item :=x;

fila.tras := aux;

end;

procedure imprimir(fila:tipofila);

var aux:apontador;

begin

aux := fila.frente^.prox;

while ( aux <> nil ) do begin

writeln(aux^.item);

aux:=aux^.prox;

end;

end;

procedure retirar(var x:integer; var fila:tipofila);

var

aux:apontador;

begin

aux:=fila.frente^.prox;

x:=aux^.item;

fila.frente^.prox := aux^.prox;

if (fila.frente^.prox = nil ) then fila.tras := fila.frente;

dispose(aux);

end;

procedure media(l:tipofila; var media:real);

var

aux:apontador;

b:integer;

begin

aux:=l.frente;

media:=0;

b:=0;

while aux^.prox <> nil do begin

aux:=aux^.prox;

media:=media+aux^.item;

b:=b+1;

end;

media:=media/b;

end;

procedure quantidade(l:tipofila; var qtde:integer);

var

aux:apontador;

b:integer;

begin

aux:=l.frente;

while aux^.prox <> nil do begin

aux:=aux^.prox;

qtde:=qtde+1;

end;

end;

////////////////////// { Programa principal }

var

elem:integer;

f:tipofila;

qtde:integer;

opc:CHAR;

n:integer;

soma:integer;

m:real;

begin

iniciafila(f);

repeat

writeln('[1]..INSERIR [2]..EXCLUIR [3]..LISTAR [4]..MEDIA [5]..TAMANHO [6]..SAIR');

opc:= READKEY;

case opc of

'1' :begin

writeln('Entre com o elemento a ser inserido');

readln(elem);

inserir(elem,f);

delay(2000);

clrscr;

end;

'2' :begin

if vazia(f) then writeln('A fila est vazia, impossivel retirar elemento !')

else begin

retirar(elem,f);

writeln('O elemento', elem , 'foi removido da fila');

delay(2000);

clrscr;

end;

end;

'3':begin

writeln('Elementos do fila');

imprimir(f);

delay(2000);

clrscr;

end;

'4' :begin

media(f,m);

writeln('A media ‚ ',m:3:2);

delay(2000);

clrscr;

end;

'5' :begin

quantidade(f,qtde);

writeln('A quantidade de elementos ‚:', qtde );

delay(2000);

clrscr;

end;

'6': begin

writeln('Saindo do programa, obrigado');

delay(2000);

end;

end;

until opc>='6';

end.

me ajudem

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!