Pular para o conteúdo principal

Estrutura de dados ( Fila em Pascal )

O Exemplo a baixo é um fila, que utiliza apontadores para realizar as operações.


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;


var
elem:integer;
f:tipofila;
qtde:integer;
opc:integer;
n:integer;
soma:integer;
m:real;
{ Programa principal }

begin
iniciafila(f);

repeat
writeln(' 1 - Inserir ');

writeln(' 2 - Retirar ');

writeln(' 3 - Imprimir ');

writeln(' 4 - Media Aritim‚tica ');

writeln(' 5 - Quantidade de elementos ');

writeln(' 6 - Sair');


writeln(' 0 - limpar a tela');

readln(opc);

case opc of

1 :begin

writeln('Entre com o elemento a ser inserido');
readln(elem);
inserir(elem,f);

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');
end;

end;

3:begin
writeln('Elementos do fila');
imprimir(f);
end;


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

end;

5 :begin
quantidade(f,qtde);
writeln('A quantidade de elementos ‚:', qtde );
end;

6: writeln('Saindo do programa');

0:clrscr;
end;
until opc=6;

end.



Use o Free Pascal ou o Turbo Pascal pra compilar isso.

Postagens mais visitadas deste blog

Criando um sistema de login em Java.

Login Pessoal, nesse exemplo vou demonstrar como criar um sistema de login em Java, usando servlet , jsp , e html. A IDE usada será o Netbeans , Bom a primeira coisa a ser feita é criar um projeto web pelo NetBeans . Para isso, siga os seguintes passos. Menu     File → New Project Agora clique em Java Web, depois aplicação WEB. Agora clique em Next . Coloque um nome para sua aplicação WEB, e clique em finish . Novamente clique em Next . Feito isso, agora vamos criar o formulário para que o usuário entre com o Login e a senha. Formário HTML <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3.org/TR/html4/loose.dtd"> <html>     <head>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <titl...

Pilha em Pascal

program pilha; uses crt; type apontador = ^celula; celula = record item:integer; prox:apontador; end; tipopilha=record fundo:apontador; topo:apontador; end; procedure iniciapilha(var pilha:tipopilha); var aux:apontador; begin new (aux); pilha.fundo:=aux; pilha.topo:=pilha.fundo; pilha.topo^.prox :=nil; end; function vazia(pilha:tipopilha):boolean; begin vazia:=pilha.fundo = pilha.topo; end; procedure inserir(x:integer;var pilha:tipopilha); var aux:apontador; begin new (aux); pilha.topo^.prox:=aux; aux^.prox := nil; aux^.item :=x; pilha.topo := aux; end; procedure imprimir(pilha:tipopilha); var aux:apontador; begin aux := pilha.fundo^.prox; while ( aux nil ) do begin writeln(aux^.item); aux:=aux^.prox; end; end; procedure retirai(var x:integer; var pilha:tipopilha); var aux:apontador; begin aux:= pilha.fundo^.prox; x:=aux^.item; pilha.fundo^.prox := aux^.prox; if(pilha.fundo^.prox = nil ) then pilha.topo := pilha.fundo; dispose(aux); end; procedure retira...