![]() |
Delphi - Bubblesort - bin totaler anfänger...
... und kriege es nicht hin. :-D
Hi Zusammen , wie schon im topic erwähnt habe ich ein Problem mit dem Bubble_Sort:
Delphi-Quellcode:
------------------------------------------------------------------------
procedure TForm1.Bubble_Sort(var Z: TZ_Feld);
var i : integer; vertauscht : Boolean; procedure Vertauschen(m, n : integer); var Hilfszahl, a, b: integer; begin Hilfszahl:=Zahlenfeld[m]; Zahlenfeld[m]:=Zahlenfeld[n]; Zahlenfeld[n]:=Hilfszahl; vertauscht:=true; end; begin repeat vertauscht:=false; (( Der obere Teil wurde uns gegeben , es sind halt auch noch Sort und Neu klick , ausgabe und formcreate enthalten aber die brauch ich ja nicht hierrein zu schreiben))) so ich bin dann so verblieben:
Delphi-Quellcode:
so und nun weiss ich nicht mehr weiter . Ehrlich gesagt habe ich immoment noch nicht den wirklich den plan was ich da mache , also bitte um verständniss ;>
for i:= 1 to 9 do
begin a:StrtoInt(StringGrid1.cells[i,1]); b:StrtoInt(StringGrid1.cells[i+1,1]); if a > b then StringGrid1.cells[i,1]:=InttoStr(b); StringGrid1.cells[i+1,1]:=InttoStr(a); mfg :dancer: eLverpeilo :dancer2: [edit=FuckRacism]Delphi-Syntax; Mfg, FuckRacism[/edit] |
Re: Delphi - Bubblesort - bin totaler anfänger...
hallo el....,
erstmal herzlich willkommen. zweitens die suche im forum ist klasse und sollte dir helfen drittens delphi tags setzen, damit ist der code besser zu lesen raik |
Re: Delphi - Bubblesort - bin totaler anfänger...
Hallo und Herzlich Willkommen in der Delphi Praxis!
Zum Thema: ![]() Du kannst übrigens Deinen Beitrag ändern und [ delphi ] - Tags um den Code legen. Damit ist der lesbarer ;-) |
Re: Delphi - Bubblesort - bin totaler anfänger...
das tutorial hab ich mir schon angeguckt , kann das aber irgendwie nicht auf meins übertragen ....
|
Re: Delphi - Bubblesort - bin totaler anfänger...
Hier is die Tauschprozedur... hoffe du kannst dich ein wenig an diesem Beispiel orientieren...
Delphi-Quellcode:
Procedure TForm1.btnbubbleClick(Sender: TObject); //Tauschprozedur
Var i, j, s: Integer; Begin For i := 1 to ende - 1 do For j := i + 1 to ende do If zahl[i] > zahl[j] Then Begin s := zahl[i]; zahl[i] := zahl[j]; zahl[j] := s; End; edtausgabe.Text := ''; For i := 1 to ende do edtausgabe.Text := edtausgabe.Text + IntToStr(zahl[i]) + ' '; End; |
Re: Delphi - Bubblesort - bin totaler anfänger...
Hallo eLverpeilo,
hier ist mal eine Möglichkeit von mir bezüglich des BubbleSort Algorithmus.
Delphi-Quellcode:
Vielleicht hilft sie dir.
procedure TForm1.BubbleSort;
var Lauf1,Lauf2:Integer; begin for Lauf1:=20 downto 2 do for Lauf2:=2 to Lauf1 do if (Sort[Lauf2-1] > Sort[Lauf2]) then Tausch(Lauf2-1,Lauf2); end; Tschüß Markus |
Re: Delphi - Bubblesort - bin totaler anfänger...
Hallo el... ,
sicher wirst du hier irgendwann eine Quelltextlösung finden, die dich zufrieden stellt, das jedoch wird dem Lernen nicht viel beitragen. Mein Tip in solchen Fällen ist der so genannte "Schreibtisch-Test", du nimmst dir einen Zettel, schreibst eine Reihe von Zahlen auf und jeweils eine Spalte in eine Tabelle für eine Varible in deinem Programm, dann setzt du Breakpoints und lasst es laufen. Dann schreibst du Durchgang für Durchgang auf was passiert ist. Das ist zwar mit Arbeit verbunden, aber sollte beim Verständnis helfen. Es soll Leute geben, die Sortieralgortihmen erst nach dieser Methode richtig verstanden haben :roll: Czapie. |
Re: Delphi - Bubblesort - bin totaler anfänger...
Zu dieser Sache wollte ich nur mal sagen, dass es mir eher hilft, einen fertigen Quellcode zu sehen und auseinander zu nehmen...
|
Re: Delphi - Bubblesort - bin totaler anfänger...
Nabend nochmal ;>
also habe hier mal was gemacht , sind wahrscheinlich viele fehler drin , aber wollte mal von euch wissen was ich daran noch ändern muss: [procedure TForm1.Bubble_Sort(var Z: TZ_Feld);] [var i, j, a, s, b: Integer; vertauscht : Boolean;] [procedure Vertauschen( m, n : integer);] [var Hilfszahl: integer ;] [begin] [Hilfszahl:=Zahlenfeld[m];] [Zahlenfeld[m]:=Zahlenfeld[n];] [Zahlenfeld[n]:=Hilfszahl;] [vertauscht:=true;] [end;] [begin] [repeat] [vertauscht:=true;] [for i:= 9 downto 1 do] [for j:= 1 to i do] [a:=StrToInt(StringGrid1.Cells[i,1]);] [b:=StrToInt(StringGrid1.Cells[i+1,1]);] [if a > b then] [StringGrid1.Cells[i,1]:=IntToStr(b);] [StringGrid1.Cells[i+1,1]:=IntToStr(a);] [until sortiert;] // hier muss ich irgendwie Stringgrid1 von j = b zuweisen :wiejetzt: und j+1 = a . :wiejetzt: vertauscht : = false ; end; aber irgendwie krieg ich das alles irgendwie nicht hin :> mfg :dancer: eLverpeilo :dancer2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 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