O documento descreve um software para simular o funcionamento de filas em um supermercado, utilizando a estrutura de dados fila. O algoritmo simula o tempo de chegada de clientes, sua entrada e saída das filas, verificando o tempo de espera. Trechos de código mostram procedimentos para inicializar, inserir e remover itens da fila.
1. Estrutura de dados para sistemas de informação i Universidade Federal de Sergipe Centro de Ciências Exatas e da Terra Departamento de Computação
2. Apresentação Tema: Utilização da estrutura fila Dupla: João Victor Soares de Vasconcelos Felipe Marques Fontes
3. Definição Filas são estruturas lineares nas quais os itens são inseridos em uma extremidade. Para esta extremidade, dar-se o nome INÍCIO DA FILA. F.I.F.O.
6. Definições Fila de espera para cada caixa Capacidade máxima da fila No limite: próxima fila
7. Algoritmo do problema Algoritmo 1 . Para o TempoAtual até o TempoTotal faça 1.1 Se chegou algum cliente então Se a fila do caixa estiver cheia Então Incremente 1 ao número de desistências Senão Cliente entra na fila gravando informações relevantes 1.2 Se o caixa estiver vazio e tiver clientes na fila Então Remova o cliente da fila verificando o tempo que ele chegou Determine o tempo que o cliente ficou na fila Adicione 1 ao número de clientes atendidos Acumule o tempo que o cliente ficou na fila Tempo que o caixa ficará ocupado = tempo de atendimento ao cliente 1.3 Se o caixa estiver ocupado Então Subtraia 1 do tempo que o caixa ficará ocupado 2. Fim do Para 3. Imprima os resultados
8. Trecho de código Procedure para inicializar fila procedure iniciafila(var fila:tipofila); var aux: apontador; begin new (aux); fila.frente:= aux; fila.tras:= fila.frente; fila.tras^.prox:= nil;end;
9. Trecho de código Inserir cliente na fila 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;
10. Trecho de código Retirar cliente na fila 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;