EyeLook Posted May 2, 2015 at 09:41 AM Report Share #582314 Posted May 2, 2015 at 09:41 AM (edited) Olá outra vez! Desta vez preciso de uma pequena ajuda. Eu queria ordenar aqui umas coisas usando Pointers mas levar a informação. Vamos imaginar o seguinte: um parque de estacionamento onde tenho matricula, ano, dono, cor sei lá. informações (num record obvio) O que eu queria fazer era por exemplo ordenar os carros por ordem de ano (do maior para o menor) e levar a informação do carro. E é aí que eu erro, pois ele ordena mas não leva a informação. Alguma ajuda? Eu pensei em criar variáveis auxiliares para ir guardando e mostrando, mas não funciona :/ Edited May 2, 2015 at 09:54 AM by EyeLook Link to comment Share on other sites More sharing options...
nunopicado Posted May 2, 2015 at 10:34 AM Report Share #582317 Posted May 2, 2015 at 10:34 AM Mas é mesmo uma variável auxiliar, mas não para o ano, e sim do mesmo tipo do pointer completo. Usas por exemplo o algoritmo BubbleSort (há vários exemplos do algoritmo, mesmo no tutorial de pascal do Thoga31 aqui no fórum). Mas embora compares apenas o ano de cada dois registos, ao fazer a troca, não trocas só o ano, trocas todo o ponteiro. Alguma dúvida, avisa! "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
EyeLook Posted May 2, 2015 at 10:44 AM Author Report Share #582318 Posted May 2, 2015 at 10:44 AM (edited) Então tenho algo como isto mas continua a dar mal ehehe. for i:=1 to cont-1 do begin Ap:=Aux; Pa:=Aux^.Prox; for n:=1 to cont-1 do begin if (Ap^.ano > Pa^.ano) then begin xord:=Ap^.ano; Ap^.ano:=Pa^.ano; Pa^.ano:=xord; matricula2:=Ap^.matricula; contacto2:=Ap^.contacto; seguro2:=Ap^.seguro; cor2:=Ap^.cor; //Px:=Px^.Prox; //Pa:=Pa^.Prox; end; // Ap:=Ap^.Prox; // Pa:=Pa^.Prox; end; //Ap:=Aux; end; Agora a dúvida são essas linhas de código "ocultas" em comentário. Edited May 2, 2015 at 04:02 PM by thoga31 GeSHi Link to comment Share on other sites More sharing options...
passarito Posted May 5, 2015 at 09:55 AM Report Share #582480 Posted May 5, 2015 at 09:55 AM Boas, O processo para mudar um registo de um sitio para o outro é essencialmente desta forma: Lista: A->B->C->D Registo auxiliar: X Objectivo: Colocar C entre A e B ^X=^B (X fica a apontar para C) ^B=^C (B fica a apontar para D) ^C=^A (C fica a apontar para B) ^A=^X (A fica a apontar para C) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now