silencept
29-01-2007, 19:27
boas...é o meu primeiro topico...
agradecia que me podesses postar aki um exemplo de uma ordenação para usar em ficheiros de registos em pascal...
tava mesmo a percisar e com alguma urgencia...
se percisarem do programa eu posso mandar...
desde ja agradeço a quem me poder ajudar...
obrigado...
Boas!
Nada como tentar pensar um pouco como funcionam as ordenações e em último caso recorrer ao melhor amigo do programador (http://www.google.com) ;)
http://pt.wikipedia.org/wiki/Bubble_sort (tem código pascal)
vê se te ajuda ;)
abraços, HecKel
silencept
29-01-2007, 19:52
Boas!
Nada como tentar pensar um pouco como funcionam as ordenações e em último caso recorrer ao melhor amigo do programador (http://www.google.com) ;)
http://pt.wikipedia.org/wiki/Bubble_sort (tem código pascal)
vê se te ajuda ;)
abraços, HecKel
boas...
obrigado pela resposta...
o problema é k ja tentei o google e eu tenho essa ordenaçao...
mas só a consigo implementar em vector....
mas neste momento perciso para ficheiro de registos e ai é k esta o problema...
se poderes ajudar agradecia imenso...
ahhh
Regra numero 1 no manuseamento de ficheiros: Só gravar os dados quando todos tratados e só os ler, nunca trabalhar directamente sobre o ficheiro
Com isto quero eu dizer, saca do ficheiro e mete numa estrutura e/ou vector, ordena e volta a gravar no ficheiro ;) Garanto-te que é mais rápido, visto que apenas fazes 2 acessos ao ficheiro (os acessos demoram algum tempo) e mais simples de implementar ;)
abraços, HecKel
silencept
29-01-2007, 20:47
o problema é k ja tentei fazer isso...
mas n consigo...
mandei-te uma PM...
se poderes posta aqui um exemplo ou adiciona-me no msn se faz favor
mandei o meu mail por PM
obrigado...
Se ao leres o ficheiro fores preenchendo logo um array consegues isso facilmente. Não me recordo bem da sintaxe de Pascal, o que te estou a dizer é o algoritmo genérico para estes casos ;)
abraços, HecKel
silencept
29-01-2007, 21:01
vou tentar....
se poderes adiciona-me no msn ou no skype...
agradecia....
obrigado...
Boas!
http://pt.wikipedia.org/wiki/Bubble_sort (tem código pascal)
Bubble Sort??? Isso nos meus tempos dava direito a chumbo directo :D ShakerSort era mesmo o minimo dos minimos...
Já não me lembro nada de Pascal, mas o que o Heckel disse está certo. Lês o ficheiro todo (ou apenas as partes necessárias conforme a quantidade de memória consumida), ordenas e gravas de novo.
Ocasionalmente, se por um acaso estiveres a trabalhar com fixed record size, pode ser mais "económico" ler apenas os dados em que a ordenação se vai basear, ordená-los e depois fazer swapping dos dados do ficheiro por blocos. Mas apenas justifica se tiveres de fazer swap a um numero relativamente pequeno de registos.
Ele tem dificuldades em implementar uma ordenação num ficheiro e tu queres que ele implemente um introsort? Quer dizer, o mais importante nesta altura é que funcione. A velocidade vem depois.