Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ordnen in Array (https://www.delphipraxis.net/9918-ordnen-array.html)

block35plus1 7. Okt 2003 19:09


Ordnen in Array
 
Hi hab mal ne kleine Frag, wenn mehrere Zahlen im Array gespeichert sind, wie kann man die dann Ordnen damit sie von klein nach groß im Memofeld erscheinen. Ich muss es aber ohne Hilfen wie Listbox machen...
Wäre nett, wenn mir einer helfen könnte Danke

Chewie 7. Okt 2003 19:14

Re: Ordnen in Array
 
Am Ende der "Tutorial & Kurse"-Sektion gibt es ein Tutorial über Sortieralgorithmen. Schau dir das mal an.

n00b_on_knees 7. Okt 2003 19:23

Re: Ordnen in Array
 
Von klein nach groß?
das geht mit 2 verschachtelten for-Schleifen, von 0 bis anz-1, du vergleichst immer ob das aktuelle, i-te größer ist als das nächste, wenn ja kannst du das ganze mit hilfe einer hilfsvariable vertauschen, und dann am Ende des Sortiervorgangs alles ausgeben.

block35plus1 7. Okt 2003 19:48

Re: Ordnen in Array
 
ah das hilft mir sehr, nur da steht folgendes:

Delphi-Quellcode:
Procedure SelectionSort;
var i, j, min : Integer;
Begin
  For i:= 1 to N-1 Do
  Begin
    min:= i;
    For j:= i+1 To N Do
      If (Data[j] < Data[min]) Then min:= j;

    SwapValues( i, min);
  End;
End;
aber was bedeutet swapvalues, was muss ich dafür einsetzen?

Hansa 7. Okt 2003 20:13

Re: Ordnen in Array
 
Zitat:

Zitat von block35plus1
...wie kann man die dann Ordnen damit sie von klein nach groß im Memofeld erscheinen...

Indem Du ein zweites Array nimmst und die erste Zahl da in a [1] speicherst. Ist die zweite Zahl größer kommt sie in a[2]. Die dritte kommt dann in a[3], außer sie ist kleiner als a[2]. Dann nimmst Du eine Hilfsvariable und speicherst: hilf := a [2]. a [2] setzt du auf die dritte Zahl und die dritte mit a [3] := hilf. Das muß genügen. 8)

n00b_on_knees 7. Okt 2003 20:14

Re: Ordnen in Array
 
Ich denke mal Swapevalues steht für ein Unterprogramm, eine Prozedure die die beiden Werte vertauscht.

das wäre dann zb.:

Delphi-Quellcode:
procedure Swapevalues(var i, min: integer);
var
  Feld: TFeld;
  temp: integer;
begin
  temp:= Feld[i];
  Feld[i]:= Feld[min];
  Feld[min]:= temp;
end;


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