Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Algo sortiert falsch (https://www.delphipraxis.net/31987-algo-sortiert-falsch.html)

gordon freeman 16. Okt 2004 17:33


Algo sortiert falsch
 
Hi Leute,
ich hab mir mit Hilfe des Tuts aus der Code-Lib die folgende procedure gebastelt. Es soll eine Zeile sortiert werden (deshalb heißt der Array "letzteZeile" :-D ). In laenge wird die Anzahl der Einträge des Arrays gespeichert. In dem Array stehen 4 oder 5 Einträge. (z.B. 4, -12, -41, -3, 54) Diese sollen jetzt geordnet werden, so dass der höhste Eintrag als erster erscheint und der niedrigste als letztes. Hier der Code:

Delphi-Quellcode:
//////////////////////////////////////////
//Der Array "Letzte Zeile" wird sortiert//
//////////////////////////////////////////
procedure TForm11.BubbleSort(letzteZeile:Array of integer;laenge:integer);
var Zaehler1, Zaehler2, Austausch: Integer;
begin
     for Zaehler1 := laenge downto 2 do
         for Zaehler2 := 1 to Zaehler1-1 do
             if letzteZeile[Zaehler2] < letzteZeile[Zaehler2+1] then
                begin
                Austausch := letzteZeile[Zaehler2];
                letzteZeile[Zaehler2] := letzteZeile[Zaehler2+1];
                letzteZeile[Zaehler2+1]:=Austausch;
                end;
end;
Ich rufe also in meinem Code die Prozedur mit:

Delphi-Quellcode:
Bubblesort(LetzteZeile,Spieleranzahl);
auf. (Spieleranzahl ist 'nen Integer). Da der Array LetzteZeile global ist müsste er doch eigentlich sortiert werden? Wird er aber nicht :wall: Was ist daran denn jetzt schon wieder falsch?????


p.s. Alle die mich wegen der Verwendung des Bubblesort-Sortierverfahrens kritisieren wollen, bitte ich dies nicht zu tun, da ich, wie erwähnt mit 4 bis 5 Einträgen arbeite und mir das Bubblesort-Verfahren für diese Anzahl von Einträgen als einfachstes erscheint. :stupid:

Keldorn 16. Okt 2004 18:23

Re: Algo sortiert falsch
 
Hallo

dein array wird vielleicht richtig sortiert, aber du hast
Delphi-Quellcode:
procedure TForm11.BubbleSort(VAR letzteZeile:Array of integer;laenge:integer);
ein Var in der Proc-deklaraiton vergessen.

edit: da du ein dynamisches Array hast, beginnt das bei 0, du mußt noch die Schleifen anpassen.

Mfg Frank

gordon freeman 16. Okt 2004 21:08

Re: Algo sortiert falsch
 
Mamchmal aht man echt 'nen Brett vor'm Kopf!
:wall: :wall: :wall: :wall: :wall:
Ich habe den Array "LetzteZeile" zwar in der Prozedure sortiert, aber das nur als lokale Variable. Hab den lokalen Array jetzt "zeile" genannt und ans Ende ein:

Delphi-Quellcode:
for i:=1 to laenge do
begin
letzteZeile[i]:=Zeile[i-1];
end;
gesetzt. Jetzt sortiert er auch.

:bouncing4: :bounce1: :firejump: :bounce2: :dancer: :dancer2: :dancer: :dancer2:


Danke an alle, die sich Gedanklen gemacht haben!


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