Fórum Implementar fila #413603

01/03/2012

0

preciso fazer um programa para implementar fila

procedure InsereItem(psItem: string)
Function RemoveItem: string
Function TotalItens: integer

A fila não deverá ter limite de itens, podendo se expandir conforme a necessidade. Quando não houverem itens na fila, a função RemoveItem deve retornar um string vazio.

implementar um formulário que permita ao usuário inserir strings na fila, remover e exibir o último item da fila, e obter o total de itens presentes na fila.

utilizar as funções VarArrayCreate e VarArrayRedim na implementação do procedimento InsereItem, somente VarArrayRedim na implementação da função RemoveItem, e as funções VarIsNul, VarIsEmpty e VarArrayHighBound na implementação da função TotalItens.
Valdelir Castanheiro

Valdelir Castanheiro

Responder

Posts

01/03/2012

Joel Rodrigues

Bem, isso está me parecendo trabalho de escola/curso, =)
então vou te dar as dicas de como fazer e você começa a tentar implementar.

*Fila (FIFO) = coleção de dados onde o primeiro item a ser inserido é também o primeiro a ser removido.

Na implementação dos métodos, utilize o seguinte raciocínio:

procedure InsereItem(psItem:string)
- Aumenta o comprimento do vetor em uma unidade (1);
- Adiciona o item na última posição (comprimento - 1);

function RemoveItem:string
- Retorna o primeiro item (índice zero);
- Diminui o comprimento do vetor em uma unidade (1);
- - Aqui pode ser preciso que você reduz o índice de cada item, ou seja, cada elemento de índice N vai cair uma posição (N-1);

function TotalItens:integer
- Use as funções VarArrayIsEmpty e VarArrayIsNull para verificar se o vetor existe e contém itens;
- Use a função VarArrayHighBound para retornar a quantidade de itens no vetor;

Bem, a lógica é essa.
Boa sorte.
Responder

Gostei + 0

01/03/2012

Valdelir Castanheiro

Fiquei na mesma
Responder

Gostei + 0

01/03/2012

Guinther Pauli

Valdelir

O próprio Delphi já possui os algoritmos prontos para Pilha, Fila e outras coleções, inclusive genéricas. Dê uma olhada na unit Contnrs nos fontes da VCL, lá consta o fonte completo da implementação da classe TQueue, pode ajudar nos seus estudos

Att,

Guinther Pauli
https://www.devmedia.com.br/guintherpauli
http://www.twitter.com/guintherpauli
http://facebook.com/guinther.pauli
http://gpauli.com
Responder

Gostei + 0

04/03/2012

Marco Salles

em System.Generics.Collections temos a classe TStack

var
PilhaString: TStack<string>
begin
PilhaString := TStack<string>.Create;
try
PilhaString.Push(primeiro);
PilhaString.Push(segundo);
PilhaString.Push(ultimo);
ShowMessage(PilhaString.Peek);
ShowMessage(PilhaString.Pop);
ShowMessage(PilhaString.Pop);
ShowMessage(PilhaString.Pop);
finally
PilhaString.Free;
end;

ps) se não me falha a memória não existe o método Top nesta classe
end;
Responder

Gostei + 0

06/03/2012

Valdelir Castanheiro

Bom dia

tentei mas não consegui sera que alguém tem um exemplo pronto?

a. Procedure InsereItem(psItem: string)
b. Function RemoveItem: string
c. Function TotalItens: integer

Não poderá ser utilizada nenhuma CLASSE ou OBJETO na implementação dos procedimentos e funções acima.

A fila não deverá ter limite de itens, podendo se expandir conforme a necessidade. Quando não houverem itens na fila, a função RemoveItem deve retornar um string vazio.

Para testar a fila, implementar um formulário que permita ao usuário inserir strings na fila, remover e exibir o último item da fila, e obter o total de itens presentes na fila.

Dicas: utilize as funções VarArrayCreate e VarArrayRedim na implementação do procedimento InsereItem, somente VarArrayRedim na implementação da função RemoveItem, e as funções VarIsNul, VarIsEmpty e VarArrayHighBound na implementação da função TotalItens.

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar