danielsjdr 0 Denunciar post Postado Novembro 28, 2005 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
EwE 0 Denunciar post Postado Novembro 29, 2005 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
danielsjdr 0 Denunciar post Postado Novembro 29, 2005 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 posicaoMas 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 testeif (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
Graymalkin 0 Denunciar post Postado Dezembro 13, 2005 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
japan 0 Denunciar post Postado Dezembro 15, 2005 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
Graymalkin 0 Denunciar post Postado Dezembro 15, 2005 Você sabe pra quê serve o operador mod?O operador mod, retorna o restotipo: a := 4 div 2a = 2b := 9 mod 3b = 0A 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