Entwickler-Ecke
Sonstiges (Delphi) - Sortieren(manuell)
Daether - So 31.08.03 16:47
Titel: Sortieren(manuell)
Hi,
ich habe Aufgabe bekommen ein Programm zu machen, mit dem man sortieren kann. Klingt ganz einfach die Aufgabe:
Man hat Elemente (Zahlen). Zum Beispiel 4,5,67,30,6.
Das ganze sollte dann so anfangen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure ordnen var i : integer begin zahlen:=||Anzahl der Zahlen(weiß nicht aus was er die ziehen soll)||; for I:=1 to zahlen do begin end; end. |
Nun soll das letzte Elemant mit dem vorletzten verglichen werden und gegebenenfalls getauscht werden, was in diesem Fall passieren müsste, also 4,5,67,6,30. Nun muss die sechs weiter nach links verglichen werden bis die Zahl links kleiner ist als 6, das wäre hier 4,5,6,67,30. Dann muss wieder verglichen werden, diesmal mit der 30 anfangen und weiter durchgehen in der Reihe, bis man durch ist.
Weiß irgendwer wie man das Programmiert?
Moderiert von
Klabautermann: Delphi-Tags hinzugefügt.
mimi - So 31.08.03 17:06
| Zitat: |
Weiß irgendwer wie man das Programmiert?[/
|
habe dein problem nicht so gans verstanden :(
wie meinst du das mit den zahlen "4,5,67,30,6"
könntes du das bitte etwas ausfürhlicher beschreiben ???
Daether - So 31.08.03 17:31
hm, ich probier es mal mit einer Algoritmusbeschreibung die ich habe:
Ich habe 6 Elemente, genauer gesagt 6 Zahlen. Diese will ich sortieren, halt die kleinste links, die größte rechts.
Nehmen wir die Zahlen mal so:
1,5,3,6,4,2. Die sind ungeordnet, sieht man ja.
Das Ergebnis soll so aussehen:
1,2,3,4,5,6. Das soll durch einen selbst erstellten Programmcode erreicht werden und nicht durch eine voregefrtigte Funktion von Delphi.
Nun der Algoritmus:
Element 6 (2) wird mit Element 5 (4) verglichen
wenn E6>E5 nichts machen
wenn E6<E5 beide Elemente vertauschen und E6 mit E4 (6) vergleichen, gegebenenfalls tauschen oder weiter mit E3 vergleichen.....
In Elementen:E1,E9,E2,E3,E4,E5.
In Zahlen:1,2,5,3,6,4
Wenn E6 nun irgendwann E6>Ex (hierE1) wird nichtmehr getauscht. Wenn das geschehen ist, wird das E5 mit dem links stehenden Element E4 vergliche und gegebenenfalss getausch, bzw. weiter verglichen.
Das ganze sollte irgendwie mit einer Schleife gehen, for i:=1 to Elemente(hier sind es 6) do
und in der Schleife nochma:
while rechtes Element < linkes Element vertauschen
until rechtes Element > linkes Element
Hoffe das ist verständlicher
Terra23 - So 31.08.03 17:58
Wenn du nicht unbedingt einen eigenen Algorithmus programmieren musst, dann hilft dir vielleicht
das hier [
http://www.delphi-forum.de/viewtopic.php?t=13560&highlight=] weiter. Dort findest du einen Code zum Sortieren von StringGrids nach Zahlen. Das mußt du nur noch so anpassen, wie du es brauchst. Bei mir klappt es. Vielleicht hilft's dir ein wenig..
Terra23 - So 31.08.03 18:46
Dann installiere doch ein anderes Delphi. :-) Ich möchte jetzt keine Mutmaßungen anstellen, aber vielleicht ist das Delphi 7 nicht ganz "sauber"..
Daether - So 31.08.03 19:01
hab kein anderes :oops:
Außerdem hat das nichts mit der Sauberkeit zu tun, es funtzte ja schon einige male, hab jetzt das erste ma das Problem.
PS: Ich brauch das ganze zu morgen :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!