Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Sortierfunktion ohne Grafik
Speedy90 - Mo 03.03.08 19:05
Titel: Sortierfunktion ohne Grafik
Hey Hey
bin hier neu aber find alles recht hiflreich was man hier bei euch so findet ...
Jedoch finde ich nichts für mein momentanes problem. Mein Problem ist folgendes:
Ich schreibe Mittwoch eine Klassenarbeit in programmieren. Wir programmieren zwar in Delphi ( sprich nur im Dos Fenster bzw ne Konsolenanwendung ) aber noch nicht Grafik orientiert. Und unser Lehrer meinte dann am Freitag zu uns das wir für eine 1 auch eine Sortierfunktion programmieren können müssen ... jedoch verzweifel ich zurzeit vollkommen an der Funktion .. habe mir zwar schon zurzeit ein Struktogramm aufgebaut aber trotzdem komm ich einfach nicht weiter ..
Könnte mir einer von euch helfen ? denn möchte die Arbeit am Mittwoch nicht verhaun bzw auch nicht schlechter als 2 sein da ich meine Note doch halten möchte ... ich denke mal das es hier einzelne gibt die über solch eine Aufgabe lachen werden aber ich als anfänger beiß mir nunmal die Zähne aus und würd mich freuen wenn mir einer der "alten Hasen" helfen könnte
Gruß Speedy
Marc. - Mo 03.03.08 19:13
Hi!
Welche Daten willst Du denn sortieren? Vermutlich Arrays oder?
Wie schaut denn Dein bisheriger Ansatz aus und was genau funktioniert nicht?
Und letzendlich, welche Sortierverfahren hattet ihr bereits im Unterricht? (Bubblesort, Quicksort, Shellsort usw.)
Grüße,
Marc.
nagel - Mo 03.03.08 19:15
Hi und :welcome:
1. Was hat die Sortierfunktion mit Grafik zu tun?
2. Habt ihr schon Sortierverfahren gelernt?
3. Wo genau scheitern deine Versuche?
4. Wenn ihr noch keine Verfahren gelernt habt, schau dir mal welche an und nimm das, das dir am einfachsten erscheint (also beispielsweise Selection Sort, Quicksort, Bubblesort, Mergesort, Shellsort).
Speedy90 - Mo 03.03.08 19:23
@ Marc :
Sry ganz vergessen ^^ also es geht darum das man per hand oder per random funktion Zahlen erzzeugt die in 3 oder mehreren Variablen gespeichert wird .. also es muss nicht unbedingt ein array sein ... und diese zahlen dann vond er größten zur kleinsten geordnet werden
Den Ansatz werd ich heut abend mal nachreichen... hab ihn zurzeit nicht zur hand da er auf meinem PC daheim ist und ich noch unterwegs bin und grad am notebook on bin ...
und nein haben noch keine Sortierverfahren durchgenommen ... nur kurz angesprochen wie sowas gehen könnte und damit das struktogramm erstellt .. aba ich bin nicht schlau draus geworden ^^
@ nagel:
zu 1 ) ich habs nur dazu geschrieben da ich hier zwar vieles zu dem thema gesehen habe aba das alles soweit ich es erkennen konnte mit Grafik war... sollte nur verdeutlichen das es sich um eine ausgabe dann in einem DOS Fenster handeln soll
zu 2 ) nein haben wir nicht ... s.o. für genaueres ^^
zu 3 ) er sortiert mir meine Zahlen nicht ... Bsp : ich gebe die zahlen 1 5 2 ein ... dann gibt er mir die zahlen genaus so raus wie ich sie eingegeben habe obwohl er mir eig an erster stelle die größte stelle ausgeben soll und an letzter die kleinste ...
danke schonma für die rückmeldungen von euch
!!!!!! EDIT !!!!!!!
ich muss es euch moin nachreichen -.- mein verdammter bruder war an meinem pc und hat versehentlich en ordner aufm desktop gelöscht -.- natürlich den mit der Sortierfunktion ... wird zwar eng das mir dann noch einer behilflich sein kann aba naja
Speedy90 - Di 04.03.08 19:01
so okay jungs
hab das jetzt mal mithilfe von nem kumpel geschafft ...
hier im anhang hab ich euch mal die Unit angehangen und vielleicht kann mir einer noch en verbesserungstipp geben falls euch was auffällt ...
Aber danke für eure obigen antworten :)
Gruß Speedy
joker0000 - Di 04.03.08 19:48
ok, sieht doch nach nem ordentlichen bubble sort aus
Tino - Di 04.03.08 19:59
Die festen Werte bei FOR-TO-DO sind nicht ganz so optimal. ;-)
Speedy90 - Di 04.03.08 20:10
Tino hat folgendes geschrieben: |
Die festen Werte bei FOR-TO-DO sind nicht ganz so optimal. ;-) |
was empfiehlst denn als verbesserung ? ;)
Yogu - Di 04.03.08 20:26
Mit Length(ArrayName) bekommst du die Anzahl der Elemente im Array. Wenn du jetzt die Konstanten dynamisch anpasst, dann kann man ein Array übergeben, das eine andere Anzahl von Elementen beinhaltet.
Tino - Di 04.03.08 20:27
Ich würde mit
Length die Länge des Array abfragen und diesen Wert dann benutzen. Ich hab mal kurz drüber geschaut und ein paar Änderungen (Hervorgehoben) vorgenommen. Achtung: ich habs nicht getestet!! :-)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure sortieren_mallmann (var ABC: array of integer); var j,i,x:integer; begin for j:=0 to Length (ABC) -1 do for i:=j+1 to Length (ABC) -1 do begin if abc [i] > abc [j] then begin x:=abc[i]; abc[i]:=abc[j]; abc[j]:=x; end; end; end; |
uall@ogc - Do 13.03.08 09:43
Auch wenns zu spät ist und es ejemand mal lesen sollte:
Besser mit LOW und HIGH arbeiten statt mit length.
Low(ABC) to high (ABC)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!