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