Implementar fila
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.
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
Curtidas 0
Respostas
Joel Rodrigues
01/03/2012
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.
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.
GOSTEI 0
Valdelir Castanheiro
01/03/2012
Fiquei na mesma
GOSTEI 0
Guinther Pauli
01/03/2012
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
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
GOSTEI 0
Marco Salles
01/03/2012
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;
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;
GOSTEI 0
Valdelir Castanheiro
01/03/2012
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.
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.
GOSTEI 0