Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danielsjdr

Filas -- Alguem sabe um resposta convincente?!?

Recommended Posts

Olha gente...

 

Na implementação de filas por arranjos, é famoso o exemplo de se usar um vetor circular, correto?

 

Até então tdo certo, o procedimento para colocar um item na fila é:

 

procedure Enfileira(x:tipoitem; var fila:tipofila);begin  if ((fila.fim mod max) + 1 = fila.frente)	then writeln ('Fila cheia')	else begin		fila.item[fila.fim] := x;		fila.fim := (fila.fim mod max) + 1;	end;end;

Na parte do teste, nao tenho duvidas do PQ usar esta estrutura... agora na parte que incrementa, pq nao usar simplesmente fila.fim := fila.fim +1?!?!?!?!

 

Alguem sabe?!?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

se fila.fim for igual a max, fila.fim + 1 estara em uma posicao de memoria fora do vetor e se você usar (fila.fim mod max) + 1, você voltara p/ a primeira posicao

Compartilhar este post


Link para o post
Compartilhar em outros sites

se fila.fim for igual a max, fila.fim + 1 estara em uma posicao de memoria fora do vetor e se você usar (fila.fim mod max) + 1, você voltara p/ a primeira posicao

Mas olha para você ver... se a max = 8, na hora q tiver no 7 elemento ele vai fazer...incluir em fila.item[7]fila.tras := 7 +1 = 8Na proxima rodada ele faz o teste
if (fila.tras mod max) + 1 = fila.frente then writeln('Fila cheia');
Então, 8 mod 8 + 1 => 1 fila.frente = 1...Não vai dar erro! Ah! Não consigo entender isto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, 8 mod 8 + 1 => 1 fila.frente = 1...Não vai dar erro! Ah! Não consigo entender isto!

Você sabe pra quê serve o operador mod?Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você sabe pra quê serve o operador mod?

O operador mod, retorna o resto

tipo:

a := 4 div 2

a = 2

 

b := 9 mod 3

b = 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você sabe pra quê serve o operador mod?
O operador mod, retorna o restotipo: a := 4 div 2a = 2b := 9 mod 3b = 0
A pergunta foi direcionada ao Daniel, porque ele disse que não entendeu o código.Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.