![]() |
*HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gnomes
Hallo Leute! :bounce1:
Ich brauche eure Hilfe bei dem Sortieralgorithmus Gnomesort. Ich muss den am Montag in der Schule vortragen. Den Quelltext dafür hab ich auch schon fertig. Theoretisch müsste er funktionieren, aber wie das so ist klappt es in der Praxis net. :wall: Der Algorithmus sortiert zwar aber nicht alles... :gruebel: Naja hier erstmal der Quelltext:
Delphi-Quellcode:
Vielleicht könnt ihr mir ja helfen und wisst wo der Fehler liegt. :coder2: Wär jedenfalls total lieb, wenn mir jemand helfen könnte. Ich sag schon mal Danke im Voraus! :-Dprocedure TForm1.BitBtn2Click(Sender: TObject); var i,hilfe, Anzahl, Tauschung, Vergleiche : integer; begin i:=0; Anzahl:=Listbox1.Items.Count; Vergleiche:=0; Tauschung:=0; while i<Anzahl-1 do Begin Vergleiche:=Vergleiche+1; if i<0 then begin i:=i+1; end; If StrToInt(Listbox1.Items[i]) > StrToInt(Listbox1.Items[i+1]) then Begin hilfe:=StrToInt(Listbox1.Items[i]); Listbox1.Items[i]:=Listbox1.Items[i+1]; Listbox1.Items[i+1]:=IntToStr(hilfe); Tauschung:=Tauschung+1; i:=i+1; End else i:=i-1; End; Label3.Caption:='Die Zahlen wurden '+InttoStr(Vergleiche)+' mal verglichen und '+InttoStr[Tauschung)+' mal getauscht!'; end; |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Such mal hier in der DP nach
![]() |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
hats einen grund, warum
Delphi-Quellcode:
if i<0 then
begin i:=i+1 end;
Delphi-Quellcode:
steht?
statt if i<0 then inc(i)
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Wahrscheinlich weil die Naschkatze noch nicht so lange mit Delphi Programmiert und die Funktion inc() noch nicht kennt. Als ob daran das sortieren scheitern würde... :roll:
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
schau du mal, wo du gucken solltest... :)
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
![]() |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Naja, über die Steigerung der Übersichtlichkeit durch Inc ließe sich streiten ;) .
@naschelnde Katze: Vergleich deine Implementation nochmal mit der Algorithmusbeschreibung ;) . Am Schluss muss es heißen
Delphi-Quellcode:
. = DerZuIgnoriendeEinrückungsaktivierendePunkt
i:=i-1; End else i:=i+1; End; |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
ich habe nicht gesagt, dass es falsch ist :)
ok dem Lehrer könnts vielleicht merckwürdig erscheinen, wenn plötzlich inc(i) steht |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
also ich weiß was inc(i) oder auch dec(i) bedeutet... :P nur ich weiß nicht ob mein Lehrer glaubt dass ich es weiß und so ist es ja auch einfacher
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
:?: HÄ? :?: |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
tja stimmt tatsächlich: am ende hast du i:=i+1 und i:=i-1 verwechselt
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
hast du es gesehen?(+ und -)
übrigens hast du wo ich am anfang gesagt habe auch einen einzelnen befehl mit begin und end umklammert :) |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
hier zur Veranschaulichung: x7 4 5 7 1 2 1 7x4 5 7 1 2 1 x4 7 5 7 1 2 1 4x7 5 7 1 2 1 4 7x5 7 1 2 1 4x5 7 7 1 2 1 4 5x7 7 1 2 1 4 5 7x7 1 2 1 4 5 7 7x1 2 1 4 5 7x1 7 2 1 4 5x1 7 7 2 1 4x1 5 7 7 2 1 x1 4 5 7 7 2 1 1x4 5 7 7 2 1 1 4x5 7 7 2 1 1 4 5x7 7 2 1 1 4 5 7x7 2 1 1 4 5 7 7x2 1 1 4 5 7x2 7 1 1 4 5x2 7 7 1 1 4x2 5 7 7 1 1x2 4 5 7 7 1 1 2x4 5 7 7 1 1 2 4x5 7 7 1 1 2 4 5x7 7 1 1 2 4 5 7x7 1 1 2 4 5 7 7x1 1 2 4 5 7x1 7 1 2 4 5x1 7 7 1 2 4x1 5 7 7 1 2x1 4 5 7 7 1x1 2 4 5 7 7 1 1x2 4 5 7 7 1 1 2x4 5 7 7 1 1 2 4x5 7 7 1 1 2 4 5x7 7 1 1 2 4 5 7x7 |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
okay... ich glaub jetzt hab ichs doch gesehn... mal guckn obs klappt...
hatte tomatn auf den augen :dancer2: |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
1. was sollen die x-en???
2. fängst du ganz oben an, d.h. alles über deinem i(bzw unter) muss in Ordnung sein, sonst hast du nie Ordnung also geht er solange runter, bis er tauschen muss (bzw mit i hoch) dann geht er wieder hoch und guckt immer, ob der nach oben geschobene wert nicht vielleicht noch höher muss, ist das irgendwann nicht der Fall geht er wieder runter und so weiter, bis er unten angekommen ist und sich scher ist, dass über ihm(also überall) Ordnung herrscht nd es klappt, habs schon ausprobiert! |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Okay DANKESCHÖN :mrgreen: Leute... ich brauchte erst ein Forum, der mir sagt, dass ich + und - vertauscht hab :oops:
aber 4 bzw. 6 Augen sehn ja bekanntlich mehr als 2 supi, danke, danke, danke :!: !!!!!!!!!!! :!: :thumb: |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
übrigens würdest du dir freunde machen, wenn du wüsstest, warum es falsch ist(nicht weils nicht funkrtioniert, sondern weils nicht funktionieren kann, bloss warum?) ansonsten würde ich sagen, ist alles gesagt
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
so wie du es gemacht hast konnte es nicht funktionieren(hast du unter anderm daran gesehen, dass es nicht funktioniert hat).
weisst du, warum an der Stelle ein plus und an anderer Stelle ein minus muss? also was er macht, wenns richtig ist und was er gemacht hat, als falsch war? |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
Zitat:
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
also meiner hat sich aufgehängt, weil er aus dem while nicht mehr rauskahm (wie auch)
|
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
ohh das wollt ich natürlich net... :wall:
bei mir war das aber nicht... da hat er nur "falsch" geordnete Zahlen ausgegebn aus 7 3 19 16 6 wurde dann 7 16 19 3 6 oder sowas naja jetzt klappts ja :mrgreen: |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
ja 1 2 3 7 8 9 4 5 6 blieb wie es ist, weil gleich zu Begin 1 kleiner ist als 2...
bei dir ist das anders: 7 3 19 16 6 3 7 19 15 5 weiter sollte er abe uach nicht kommen oder?(ich kanns nicht susprobieren, weil er sich aufhängt, wenn ichs falsch mache |
Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
ach tatsächlich ich hab herrausgefunden, wie er sich n icht merh aufhängt und ich hatte recht
naja jetzt wo du deinen Fehler nachvollzogen hast, bin ich glücklich und helfe dir immer wieder gerne |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz