Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Variablen sortieren (https://www.delphipraxis.net/145628-variablen-sortieren.html)

Watzi 5. Jan 2010 13:20


Variablen sortieren
 
Hallo,

ich schreibe ein Programm, das den Tabellenplatz von Handballmannschaften ausgeben soll. Die Punkte der Mannschaften habe ich auch schon ausgerechnet. Nur weiß ich nicht, wie ich sie jetzt sortieren kann, so dass es am Ende etwa so aussieht:
1. Platz: JSG Mendig/Welling, 14 Punkte
2. Platz: HSG Hachenburg/Bad Marienberg, 14 Punkte
3. Platz: HSV Rhein-Nette, 12 Punkte
usw.

Bis jetz habe ich mir das überlegt:

Delphi-Quellcode:
  sortieren[1]:=HSVRheinNette;
  Mannschaft[1]:='HSV Rhein-Nette';
  sortieren[2]:=HSGRoemerwall;
  Mannschaft[2]:='HSG RÃmerwall';
  sortieren[3]:=TVfLSinzigRemagen;
  Mannschaft[3]:='TVfL Sinzig/Remagen';
  sortieren[4]:=TVBassenheim;
  Mannschaft[4]:='TV Bassenheim';
  sortieren[5]:=HSGHachenburgBadMarienberg;
  Mannschaft[5]:='HSG Hachenburg/Bad Marienberg';
  sortieren[6]:=TuSAhrweiler;
  Mannschaft[6]:='TuS Ahrweiler';
  sortieren[7]:=TVArzheim;
  Mannschaft[7]:='TV Arzheim';
  sortieren[8]:=TGBoppard;
  Mannschaft[8]:='TG Boppard';
  sortieren[9]:=TuSAhrbach;
  Mannschaft[9]:='TuS Ahrbach';
  sortieren[10]:=JSGMendigWelling;
  Mannschaft[10]:='JSG Mendig/Welling';

  for I := 1 to 10 do
  begin
    x := i;
    for j := i+1 to 9 do
      if sortieren[x] > sortieren[j] then
        x := j;
      begin
        m := sortieren[x];
        sortieren[x] := sortieren[i];
        sortieren[i] := m;
      end;
    startseite.memo1.Lines.Add(Mannschaft[x] + ':' + inttostr(sortieren[i]));
  end;
Der Array sortieren ist von Typ Integer und enthält die Punkte der entsprechenden Mannschaft, der Array Mannschaft ist vom Typ string und enthält den Mannschaftsnamen.

Als Ergebnis bekomme ich dann das:

Zitat:

HSG RÃmerwall: 0
TuS Ahrweiler: 2
TVfL Sinzig/Remagen: 4
TV Arzheim: 4
TuS Ahrbach: 4
TG Boppard: 8
TV Arzheim: 10
TG Boppard: 12
TuS Ahrbach: 14
JSG Mendig/Welling: 14
TV Arzheim, TG Boppard un TuS Ahrbach kommen doppelt vor und dafür kommen HSV Rhein-Nette, TV Bassenheim und HSG Hachenburg/Bad Marienberg gar nicht vor.
Ich glaube, der Fehler liegt bei der Ausgabe Mannschft[x]...ich weiß aber nicht, was ich ändern muss, damits funktioniert...

Kann mir jemand helfen? :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 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