![]() |
Brauche dringend Hilfe beim Sortieren
Hallo,
ich bräuchte dringend Hilfe bei einer Aufgabe. Wir sollen Eine Fußballtabelle Sortieren bloss bin ich beim Sortieren auf Probleme gestoßen. Hier mal mein Quelltext:
Delphi-Quellcode:
Ich weiß ist nicht grad sinnvoll aber mir ist nix anderes zur zeit eingefallen.
procedure TForm1.Button1Click(Sender: TObject);
var bs1, bs2, bs3, bs4, bs5, bs6, bs7, bs8, bs9, a, b, c, d, e, f, g, h, i, bt, bat, ct, ht, l1, l2, l3, l4, j, k, l, x, y, z, bayern, Barca, Chel, Hafen, s1, s2, s3, c1, c2, c3, h1, h2, h3 : integer ; begin a := StrToInt(edit1.Text); b := StrToInt(edit2.Text); c := StrToInt(edit3.Text); d := StrToInt(edit4.Text); e := StrToInt(edit5.Text); f := StrToInt(edit6.Text); g := StrToInt(edit7.Text); h := StrToInt(edit8.Text); i := StrToInt(edit9.Text); j := StrToInt(edit10.Text); k := StrToInt(edit11.Text); l := StrToInt(edit12.Text); If a > b then x := 3 else if a = b then x := 1 else x := 0 ; If e > f then y := 3 else if e = f then y := 1 else y := 0 ; If i > j then z := 3 else if i = j then z := 1 else z := 0 ; bayern := x + y + z; If b > a then s1 := 3 else if a = b then s1 := 1 else s1 := 0; If h > g then s2 := 3 else if h = g then s2 := 1 else s2 := 0; If k > l then s3 := 3 else if k = l then s3 := 1 else s3 := 0; Barca:= s1+s2+s3; If c > d then c1 := 3 else if c = d then c1 := 1 else c1 := 0; If f > e then c2 := 3 else if e = f then c2 := 1 else c2 := 0; If g > h then c3 := 3 else if g = h then c3 := 1 else c3 := 0; chel := c1+c2+c3; If d > c then h1 := 3 else if d = c then h1 := 1 else h1 := 0; If j > i then h2 := 3 else if j = i then h2 := 1 else h2 := 0; If l > k then h3 := 3 else if k = l then h3 := 1 else h3 := 0; Hafen := h1+h2+h3; bt := a+e+i; bat := b+h+k; ct := c+f+g; ht := e+j+l; bs1 := max(Bayern, barca); ListBox3.items.Add(IntToStr(Bt)); ListBox3.items.Add(IntToStr(Bat)); ListBox3.items.Add(IntToStr(ct)); ListBox3.items.Add(IntToStr(ht)); ListBox2.items.Add(IntToStr(Bayern)); ListBox2.items.Add(IntToStr(Barca)); ListBox2.items.Add(IntToStr(chel)); ListBox2.items.Add(IntToStr(hafen)); Ich wollte fragen wie ich das in einer Listbox absteigend sortieren kann? über sort macht der das nur aufsteigend Danke schonmal im Vorraus für eure Hilfe |
Re: Brauche dringend Hilfe beim Sortieren
Hi,
dafür gibt es verschiedene Sortier-Algorithmen. Schaust Du z.B. ![]() |
Re: Brauche dringend Hilfe beim Sortieren
danke schonmal für den tipp hab mir das mal angeguckt, aber ich steige da nicht so ganz hinter.
Ich denke bubble Sort wär am sinnvolsten, aber es wäre nett wenn du das kurz an einem beispiel erklären könntest |
Re: Brauche dringend Hilfe beim Sortieren
Bubblesort ist auch ausreichend für die paar Zahlen.
Als erstes benötigst Du ein Array, in dem die zu sortierenden Daten sind. Danach rufst Du den ![]() Pseudo-Code:
Delphi-Quellcode:
Array[0] = StrtoInt(Edit1.Text);
Array[n] = StrToInt(Editn.Text); // ... Procedure BubbleSort; var i,j : Integer; Begin For i:= Length(Array) downto 1 Do For j:= 1 To i Do If (Array[j-1] > Array[j]) Then SwapValues( j-1, j ); End; |
Re: Brauche dringend Hilfe beim Sortieren
ok ich hab das halt jetzt mit meinen 12 Editfeldern gemacht dich ich da habe
Delphi-Quellcode:
aber wie füge ich das jetzt in die listbox ein?...Listbox1.items.add(array)???
Array[0] = StrtoInt(Edit1.Text);
Array[1] = StrToInt(Edit2.Text); Array[2] = StrToInt(Edit3.Text); Array[3] = StrToInt(Edit4.Text); Array[4] = StrToInt(Edit5.Text); Array[5] = StrToInt(Edit6.Text); Array[6] = StrToInt(Edit7.Text); Array[7] = StrToInt(Edit8.Text); Array[8] = StrToInt(Edit9.Text); Array[9] = StrToInt(Edit10.Text); Array[10] = StrToInt(Edit11.Text); Array[11] = StrToInt(Edit12.Text); Procedure BubbleSort; var i,j : Integer; Begin For i:= Length(Array) downto 1 Do For j:= 1 To i Do If (Array[j-1] > Array[j]) Then SwapValues( j-1, j ); End; Weil ich hab 3 Listboxen Einmal Die manschaft, einmal die Punkte und einmal die tore damit sich das jeder vllt auch mal vorstellen kann wie das aussieht, hier mal ein bild ![]() |
Re: Brauche dringend Hilfe beim Sortieren
Einfach in einer Schleife jeden einzelnen Arraywert mit
Delphi-Quellcode:
Aber mal ne Frage: Wonach sortierst du eigentlich? Die derzeitige Sortierung erscheint mir etwas sinnlos.
Listbox1.items.add(array[i]);
|
Re: Brauche dringend Hilfe beim Sortieren
Noch viel sinnloser finde ich die Variablennamen und Komponentenbezeichnungen.
Edit1 bis Edit12 sind nicht vernünftig benannt. Listbox2 ebenso. Form1 und Button1 sind auch keine Leistung. Der Knaller ist das hier:
Delphi-Quellcode:
Nur gut, dass ich nicht Dein Lehrer bin. Bei mir wärst Du durchgefallen bei solcher Namensgebung.
var bs1, bs2, bs3, bs4, bs5, bs6, bs7, bs8, bs9, a, b, c, d, e, f, g, h, i, bt, bat, ct, ht, l1, l2, l3, l4, j, k, l, x, y, z, bayern, Barca, Chel, Hafen, s1, s2, s3, c1, c2, c3, h1, h2, h3 : integer ;
"Sechs - Setzen! - Der Nächste." Hat Deine Mutter dich auch mit "Kind1" benannt? Und heisst Deine Schwester "Kind2" oder "Tochter1"? Die Katze heisst "Tier1", der Hamster ist "Tier2" und der Wellensittich ist "Tier5", oder wie? Mann, Mann, Mann. Sowas ist nicht gut für mein altes Herz :-( |
Re: Brauche dringend Hilfe beim Sortieren
Also zunächst einmal muss ich mich rechtfertigen, dass mein Lehrer das genau so macht mit der Variablen bezeichnung und uns auch so beibringt.
Und auf eure Frage wonach Sortiert werden soll: Mein Lehrer fand, da ja EM war sollen wir ein Programm schreiben, dass die Manschaften (Je nachdem ob sie gewonnen 3 pkt, Verloren 0 pkt oder gLeichstand spielen 1 pkt) absteigend ordet, also die Manschaft mit den meisten Punkten oben steht. Haben zwei Manschaften die gleiche Punktzahl, sollen die Tore entscheiden. Hier nochmal das Bild dazu ![]() |
Re: Brauche dringend Hilfe beim Sortieren
Zitat:
Und wenn der Lehrer sich Kreide in die Nase steckt, dann macht ihr das auch, weil's cool aussieht, oder was? Nicht alles, was ein Lehrkörper (Leerkörper) macht, muss gut sein. Man darf auch in der Schule das Gehirn benutzen. :evil: |
Re: Brauche dringend Hilfe beim Sortieren
Zitat:
Also überleg dir doch einfach ein paar etwas sinnvollere Namen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 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