**

sexta-feira, 19 de outubro de 2012

Esquema e programa da Fila

Esquema de Fila (FIFO- First in First aot) isto quer dizer que o Primeiro a entrar é o Primeiro a sair.



Programa da Fila


Program Fila;
Type Dados=Record
 Nome:string[20];
 Idade:integer;
 Peso:real;
 prox:^Dados;
End;
Var Cauda, Frente, Px:^Dados;
 opcao:integer;
 escolha:char;
Procedure Inserir;
Begin
 New(Px);
 Write('Insira o Nome: ');
 Readln(px^.nome);
 Write('Insira a Idade: ');
 Readln(px^.idade);
 Write('Insira o Peso: ');
 Readln(px^.peso);
 If (frente=nil) Then  Begin  
  Frente:=Px;  
  Cauda:=Px;
End
 Else
  Begin  
   Cauda^.prox:=Px;
    Cauda:=px;
  End;
 End;
Procedure Percorrer;
Begin
 If (Frente=Nil) Then
 Writeln('Fila Vazia')
 Else
  Begin  
 Px:=Frente;
 Repeat
  Writeln(px^.nome);  
  Writeln(px^.idade);  
  Writeln(px^.peso);  
  Px:=px^.prox;
 Until (Px^.prox=nil);
 End;
End;
Procedure Remover;
Begin
 Px:=Frente;
 If Px=Nil Then  
  Writeln('Fila Vazia')
 Else
  Begin  
  Px:=Frente;
   Frente:=Frente^.prox;
   Dispose(Px);
 End;
End;
Begin //Programa Principal
 Frente:=Px;
 Cauda:=Px;
 Repeat
  Writeln('Menu');
  Writeln('------------');
   Writeln('1->Inserir');
  Writeln('------------');
   Writeln('2->Listar');
  Writeln('------------');
  Writeln('3->Ordenar');
   Writeln('------------');
  writeln('4->Remover');
  Writeln('------------');
  Writeln('0->Sair');
  Writeln('------------');
  Writeln('Qual a opcao?');
  Writeln('------------');
  Readln(opcao);
  Case escolha Of
    1:Inserir;  
   2:Mostrar;  
   3:Remover;
  End;
 Until(x=0);
  Writeln ('--> O PROGRAMA VAI ENCERRAR ;D <--');
End.



Breve reflexão sobre "Filas"

As "Filas" são muito úteis por vários motivos, pois tem varias funções que são muito úteis para o dia-a-dia, tais como por exemplo nos Hospitais, pois com este programa pode-se saber qual a ordem de chegada para a consulta, ou seja, insere todos os nomes dos utentes que chegam e o programa faz uma fila da ordem de chegadas e sempre que chegue um utente novo o nome pode ser acrescentado à fila ou até eliminar um utente que tenha sido atendido.

Sem comentários:

Enviar um comentário