Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Brauche dringend Hilfe beim Sortieren (https://www.delphipraxis.net/116501-brauche-dringend-hilfe-beim-sortieren.html)

Thebigx 30. Jun 2008 20:28


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:
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 weiß ist nicht grad sinnvoll aber mir ist nix anderes zur zeit eingefallen.

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

Die Muhkuh 30. Jun 2008 20:29

Re: Brauche dringend Hilfe beim Sortieren
 
Hi,

dafür gibt es verschiedene Sortier-Algorithmen. Schaust Du z.B. hier, solltest Du fündig werden.

Thebigx 30. Jun 2008 20:34

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

Die Muhkuh 30. Jun 2008 20:37

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 BubbleSort auf.

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;

Thebigx 30. Jun 2008 20:57

Re: Brauche dringend Hilfe beim Sortieren
 
ok ich hab das halt jetzt mit meinen 12 Editfeldern gemacht dich ich da habe

Delphi-Quellcode:
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;
aber wie füge ich das jetzt in die listbox ein?...Listbox1.items.add(array)???

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
http://www.bilder-hochladen.net/files/790n-1-jpg.html

guidok 2. Jul 2008 11:55

Re: Brauche dringend Hilfe beim Sortieren
 
Einfach in einer Schleife jeden einzelnen Arraywert mit
Delphi-Quellcode:
Listbox1.items.add(array[i]);
Aber mal ne Frage: Wonach sortierst du eigentlich? Die derzeitige Sortierung erscheint mir etwas sinnlos.

RavenIV 2. Jul 2008 12:24

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:
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 ;
Nur gut, dass ich nicht Dein Lehrer bin. Bei mir wärst Du durchgefallen bei solcher Namensgebung.
"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 :-(

Thebigx 7. Jul 2008 14:08

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

http://www.bilder-hochladen.net/files/790n-1-jpg.html

RavenIV 7. Jul 2008 14:12

Re: Brauche dringend Hilfe beim Sortieren
 
Zitat:

Zitat von Thebigx
Also zunächst einmal muss ich mich rechtfertigen, dass mein Lehrer das genau so macht mit der Variablen bezeichnung und uns auch so beibringt.

/offtopic
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:

Forlan 7. Jul 2008 14:20

Re: Brauche dringend Hilfe beim Sortieren
 
Zitat:

Man darf auch in der Schule das Gehirn benutzen. Evil or Very Mad
Da stimm ich RavenIV zu. Unser Lehrer meinte auch, dass man für Edit Boxen immer eEingabe und eAusgabe benutzen soll -_-

Also überleg dir doch einfach ein paar etwas sinnvollere Namen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz