Delphi-PRAXiS

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

guidok 7. Jul 2008 14:27

Re: Brauche dringend Hilfe beim Sortieren
 
Zitat:

Zitat von Thebigx
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.

In dem Fall müsstest du VOR dem Sortieren erstmal die Punktezahl für jede Mannschaft berechnen (1. Sortierkriterium) und anschließend danach sortieren.

---

Zur Namensgebung sag ich jetzt mal nichts... :roll:

Butch87 7. Jul 2008 14:29

Re: Brauche dringend Hilfe beim Sortieren
 
Wieso benutzt du kein Stringgrid oder Listview zur Anzeige der Tabelle?!

Zudem solltest du dir eine eigene Klasse schreiben, in der du dann in den Attributen die
Punkte, den Namen und die Tore speichern kannst...

dann packst du dir die erzeugten Objekte inne Liste und sortierst nach der Punktzahl/Toten...
und das wird dann letztendlich noch angezeigt

guidok 7. Jul 2008 14:36

Re: Brauche dringend Hilfe beim Sortieren
 
Zitat:

Zitat von Butch87
Wieso benutzt du kein Stringgrid oder Listview zur Anzeige der Tabelle?!

Zudem solltest du dir eine eigene Klasse schreiben, in der du dann in den Attributen die
Punkte, den Namen und die Tore speichern kannst...

dann packst du dir die erzeugten Objekte inne Liste und sortierst nach der Punktzahl/Toten...
und das wird dann letztendlich noch angezeigt

Wenn ich mir so anschaue, was der Treaderöffner bisher an Code geschrieben hat, dann bezweifle ich, dass er ne eigene Klasse dafür schreiben wird. Ich schätze Klassen kommen erst später im Lehrplan...

Butch87 7. Jul 2008 14:43

Re: Brauche dringend Hilfe beim Sortieren
 
Ja dacht ich mir auch schon, aber son bischen vorgreifen kann ja nicht schaden. Und wie sie ein Buch dazu haben, sollte dies eigntl (k)ein größeres Problem darstellen.
Und so ist es am einfachsten seine Daten zusammen zuhalten..., muss er wissen

b1zZ 7. Jul 2008 14:53

Re: Brauche dringend Hilfe beim Sortieren
 
Wenn es mit Klassen zu kompliziert für ihn ist, kann er ja erstmal mit einem array of Record arbeiten. Und dann selber sortieren.
Das hat noch den Vorteil, dass er sich bisschen mit Delphi auseinandersetzt und vielleicht daraus lernt.

Tutorials:
Records
Arrays

Und allgemein solltest du dir mal die Tutorial-Sparte ansehen

Thebigx 7. Jul 2008 15:29

Re: Brauche dringend Hilfe beim Sortieren
 
Zu eigenen Klassen schreiben und etc.

Wir haben weder ein Buch noch sind wir über das Programmieren von einfach Tafelwerken hinaus.
In der Klausur letzte Woche sollten wir nur von einer Pyramide den Oberflächeninhalt und das Volumen sowie die Mantelfläche berechnen. So weiß ich auch nicht so wirklich was mit Stringgrid oder Listview anzufangen. Demnach denke ich das unser Lehrer ganz schön komisch im Kopf is, oder es eine einfache Lösung dafür gibt. Da er das ja bis morgen haben/zeniseren will.

Und ich weiß, es hört sich jetzt an als wenn andere meine Hausaufgaben machen sollen, aber glaubt mir ich sitzte schon mehr als verzweifelt Stunden daran. Also wenn es nicht zuviel verlangt ist und jemand Lust und Zeit hätte, währe ich ihm sehr verbunden, wenn er mir dieses Programm schreiben könnte, oder zumindest so helfen das ich das schaffe

Danke schonmal im Vorraus

Coder1990 8. Jul 2008 01:47

Re: Brauche dringend Hilfe beim Sortieren
 
// offtopic

scheinbar hat dir ja keiner geholfen^^

zu dem lehrerthema kann ich auch einiges sagen... wenn ich mal unseren lehrer erläutern dürfte.. diese frau hat die meisten delphi befehle auswendig gelernt (damit meine ich wirklich auswendig!!!) das ist so eine die einfach alls strikt nach plan macht den sie zuhause bei sich in ihrem kellerchen geschmiedet hat.. sie hat keine ahnung von informatik und kann komplett keine weiterfürhrenden fragen beantworten.. da sie mathelehrerin ist, ist unser unterricht eigentlich bloß das lösen von mathematischen problemen und oder schreiben von "mathe lernprogrammen" für 5. klässler...
zu dem thema mit der komponentenbezeichnung -> wir dürfen (!!!) nur die automatisch generierten bezeichnungen verwenden, damit sie das später besser verstehen kann ( :wall: )...
wenn sie ein programm das man in der kursarbeit geschrieben hat nicht versteht (was zufällig bei mir der fall war) dann gibt sie punktabzug auch wenn sie sich dessen benutzung anhand des von mir geschriebenen tutorials oder des quelltextes erklären könnte ...
notengebung: um die epochal noten festzumachen sollen wir uns alle in einer reihe aufstellen - die besten nach vorne und die schlechtesten nach hinten (also wie wir uns einschätzen)- und dann vergleicht sie dies mit ihren aufzeichnungen ...
achja und ein programm dass man in der kursarbeit schreibt soll allein die geforderten funktionen haben - bedeutet da ich ein komplett funktionierendes programm geschrieben habe welche die funktionen trotzdem beinhaltet gibts punktabzug ....

@ topic
scheine ja leider zu spät zu kommen ..

Butch87 8. Jul 2008 06:55

Re: Brauche dringend Hilfe beim Sortieren
 
wenn ich mich nicht ganz irre, wurde im geholfen :gruebel: !!!
Die frage zu der sortierung wurde mit bubblesort beantwortet und ihm wurde ein beispiel gezeigt!!
Auf die frage hin, wie er es in die listbox bekommt, wurde ihm auch geantwortet!!! Das er nun nach den Punkten ordnen und eventuell noch die Tore vergleichen muss, da kann er auch selbst drauf kommen! Ein wenig Eigeninitiative sollte schon vorhanden sein.

Das ist echt der Hammer, was man da immer so hört. Die Informatik ist immer mehr im kommen und die Schule können/wollen sich keine kompetenten InfoLehrer leiste, das ist echt traurig.

@coder1990
Kann man da nicht irgendwie zum Direktor oder so gehen?! Das ist ja wohl mal keine Art zu benoten, bzw den Schülern den Stoff beizubringen. Die Schule sollte sich mal einen kompetenten Infolehrer zulegen, ihr macht das ja schließlich nicht zum Spass...
Allerdings hamm wir auch so einen "Lehrer", der es versteht sich bei komplizierteren Fragen geschickt zurückzuziehen und auf das Internet zu verweisen!! Mittlerweile hat jeder von uns mehr Ahnung/Erfahrung im programmieren, als der Typ!!

Coder1990 8. Jul 2008 16:31

Re: Brauche dringend Hilfe beim Sortieren
 
naja eher unwahrscheinlich da bei uns eh lehrermangel besteht und die schule zu wenig geld hat (angeblich) und naja informatik gibts bei uns leider ja auch nur in der oberstufe also das wurde noch nicht wirklich richtig in die schule integriert.. vll ändert sich das ja ... ich werde nächstes jahr (nach den sommerferien halt) wahrscheinlich ne informatik AG eröffnen um nicht oberstufen schülern den weg zu informatik zu erleichtern und vll grundlagen zu schaffen die die lehrer nicht so rüberbringen können, da es an unserer schule wirklich sehr einfach ist mit minimalen wissen sehr gute noten zu erlangen

@ topic
ne ich hab ja auf seinen letzten post angesprochen:
"Und ich weiß, es hört sich jetzt an als wenn andere meine Hausaufgaben machen sollen, aber glaubt mir ich sitzte schon mehr als verzweifelt Stunden daran. Also wenn es nicht zuviel verlangt ist und jemand Lust und Zeit hätte, währe ich ihm sehr verbunden, wenn er mir dieses Programm schreiben könnte, oder zumindest so helfen das ich das schaffe "
er scheint das problem nähmlich noch nicht gelöst zu haben

also versteh das jetzt nicht falsch aber bei uns sind auch ein paar im kurs die einfach informatik nicht richtig in den kopf kriegen, also dieses problemorientierte arbeiten und systeme entwickeln und ich kann dir sagen denen ergeht es nicht gut, ich rate dir entweder schnell dies in den kopf zu kriegen oder aus dem kurs rauszugehen .. die bei uns kriegen jetzt nähmlich nur noch 5er und 6er
naja vll hattest du ja auch nur bei dieser aufgabe probleme, aber ich wollte dich nur mal warnen

MfG

Guido Eisenbeis 8. Jul 2008 19:58

Re: Brauche dringend Hilfe beim Sortieren
 
Man, eine Deadline von 24 Stunden ist echt hart!

Da die ja denn wohl mittlerweile verstrichen ist, auch von mir ein mehr oder weniger OffTopic-Beitrag.

Als ich den Anfang gelesen habe, dachte ich zunächst, da will tatsächlich jemand, dass andere die Aufgaben für ihn machen. Was RavenIV dann geschrieben hat, sprach mir aus der Seele.

Aber im weiteren Verlauf gewann ich dann den Eindruck, dass es doch ein wenig komplizierter ist. So kann ich aus eigener Erfahrung alles das bestätigen, was meine Vorredner über die Lehrer und deren gängige Praxis erzählt haben. Heute bin ich Fachinformaitker (Anwendungsentwickler) und kann einiges mit anderen Augen sehen, was die Lehrer damals von sich gegeben haben.

Nichtsdestotrotz, was Thebigx offensichtlich fehlt, sind elementare Grundkenntnisse. Ihn mit tausenden Möglichkeiten vollzuknallen wird ihm wohl nichts bringen. Falls es überhaupt noch von Belang ist (Deadline) dann sollte er sich einen Sortierallgorithmus aussuchen und sich damit beschäftigen. Im WWW gibt es gerade zu diesem Thema jede Menge verständlich erklärte Tutorials. Die Bennenung der EditBoxes oder der ListBox kann er dann morgen in Angriff nehmen.

Guido.

Thebigx 9. Jul 2008 06:34

Re: Brauche dringend Hilfe beim Sortieren
 
Ich habe es (fragt mich nicht wie) geschafft meinen Lehrer dazu zu bringen doch nicht zu benoten, das es keiner aus Meinem Kurs hatte.
Und ich kann Guido nur zustimmen, ich glaube auch das mir sehr viele Grundkenntnisse fehlen, wo mein Lehrer es nicht schafft uns die beizubringen. Weil ich meine, ihr habt meinen Quelltext gesehen, und gestern hab ich die Klausur mit 15Pkt wiederbekommen, bester aus der Klasse...da könnt ihr euch vorstellen wie toll unser infounterricht ist :roll:

guidok 9. Jul 2008 07:37

Re: Brauche dringend Hilfe beim Sortieren
 
Also falls auch ein persönliches Interesse besteht Programmieren zu lernen, dann kann ich das Tutorial empfehlen.

Ich habe mir das Programmieren auch selbst (mehr oder weniger gut) bei gebracht.

Thebigx 9. Jul 2008 17:53

Re: Brauche dringend Hilfe beim Sortieren
 
Danke für den Tipp.
Bin grad dabei das durchzuarbeiten und schon auf den ersten seiten habe ich mehr erfahren, als im ganzen Kurshalbjahr :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.

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