Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gnomesort (https://www.delphipraxis.net/77441-%2Ahilfe%2A-ich-brauch-eure-hilfe-sortieralgorithmus-gnomesort.html)

naschkatze1987 19. Sep 2006 17:21


*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:

procedure 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;
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! :-D

Phoenix 19. Sep 2006 17:25

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Such mal hier in der DP nach Hier im Forum suchenTutorial Sortieralgorithmen. Da gibts nämlich schon genug zu dem Thema was Deine Fragen eigentlich erschöpfend beantworten :)

dino 19. Sep 2006 17:29

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:
statt if i<0 then inc(i)
steht?

Phoenix 19. Sep 2006 17:34

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:

dino 19. Sep 2006 17:38

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
schau du mal, wo du gucken solltest... :)

mkinzler 19. Sep 2006 17:39

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von dino
hats einen grund, warum

Delphi-Quellcode:
if i<0 then
begin
i:=i+1
end;
Delphi-Quellcode:
statt if i<0 then inc(i)
steht?

Ist doch das Selbe und keine Fehler.

http://de.wikipedia.org/wiki/Gnomesort

Khabarakh 19. Sep 2006 17:41

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;

dino 19. Sep 2006 17:51

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

naschkatze1987 19. Sep 2006 18:25

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

naschkatze1987 19. Sep 2006 18:27

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von Khabarakh
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;


:?: HÄ? :?:

naschkatze1987 19. Sep 2006 18:28

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von Phoenix
Such mal hier in der DP nach Hier im Forum suchenTutorial Sortieralgorithmen. Da gibts nämlich schon genug zu dem Thema was Deine Fragen eigentlich erschöpfend beantworten :)

so schlau war ich auch schon... aber zu gnomesort hab ich nix gefunden

dino 19. Sep 2006 18:30

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
tja stimmt tatsächlich: am ende hast du i:=i+1 und i:=i-1 verwechselt

dino 19. Sep 2006 18:32

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 :)

naschkatze1987 19. Sep 2006 18:33

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von dino
tja stimmt tatsächlich: am ende hast du i:=i+1 und i:=i-1 verwechselt

also eigentlich soll das so sein... wenn getauscht wird geh ich wieder eins zurück um dann die vorherigen, die ich dann vertauscht hab, zu vergleichen...
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

naschkatze1987 19. Sep 2006 18:35

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von dino
hast du es gesehen?(+ und -)

übrigens hast du wo ich am anfang gesagt habe auch einen einzelnen befehl mit begin und end umklammert :)

ja das ist ja wurscht... war nur noch drin weil ich beim probiern mehrere anweoisungen hatte

Khabarakh 19. Sep 2006 18:36

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von naschkatze1987
wenn getauscht wird geh ich wieder eins zurück um dann die vorherigen, die ich dann vertauscht hab, zu vergleichen...

Und genau das macht dein Code eben nicht :roll: . Bei einem Tausch gehst du einen Schritt vor, bei keinem einen Schritt zurück.

naschkatze1987 19. Sep 2006 18:37

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:

dino 19. Sep 2006 18:40

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!

naschkatze1987 19. Sep 2006 18:41

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:

dino 19. Sep 2006 18:44

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

naschkatze1987 19. Sep 2006 18:47

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von dino
ü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

das kapier ich jetzt nicht... was funktioniert nicht und was soll falsch sein?

dino 19. Sep 2006 18:56

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?

naschkatze1987 19. Sep 2006 19:01

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
Zitat:

Zitat von dino
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?

ja, ich weiß warum das plus dahin und das minus dahin muss... hatte sie wahrscheinlich nur vertauscht beim einfügn und löschn und so... denn es hatte schon funktioniert und jetzt war ich so verzweifelt, was er mir da für Zahlen raus gibt

dino 19. Sep 2006 19:04

Re: *HILFE* Ich brauch eure Hilfe: Sortieralgorithmus->Gn
 
also meiner hat sich aufgehängt, weil er aus dem while nicht mehr rauskahm (wie auch)

naschkatze1987 19. Sep 2006 19:09

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:

dino 19. Sep 2006 19:20

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

dino 19. Sep 2006 19:23

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