Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - bubblesort in listbox ausgeben


julian2003 - Mo 11.05.09 15:01
Titel: bubblesort in listbox ausgeben

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
var
  Form1: TForm1;
  a:array [1..9of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var bis, i, h:integer;
begin
  randomize;
  bis := High(a);
  for i:=1 to bis do
    a[i]:=random(100)+1;
  repeat
   for i:=0 to bis do
   if a[i] > a[i+1then begin
     h := a[i];
     a[i] := a[i+1];
     a[i + 1] := h
   end;
   Dec(bis)
  until bis = 1;

  for i:=1 to high(a) do
  listbox1.Items.Add(inttostr(a[i]));

end;

in der ausgabe habe ich dann neun zahlen richtig geordnet wobei jedoch die 2. zahl immer -1 ist!

vielen dank, julian

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt und 2. Frage entfernt


Narses - Mo 11.05.09 15:21

Moin und :welcome: im Forum!

user profile iconjulian2003 hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
5:
var
  a:array [1..9of integer;

[...]
   for i:=0 to bis do
Schau mal genau hin, du deklarierst das Array von 1.. aber läufst in der Schleife mit 0 los. :idea: ;)

cu
Narses


julian2003 - Mo 11.05.09 15:53

var
a:array [1..9] of integer;

[...]
for i:=1 to bis do

habs jetzt so umgeändert, aber ich bekommen noch immer an der 2. stelle in der listbeox jedes mal ein -1 ausgegeben :( ?!


Marc. - Mo 11.05.09 17:28

user profile iconjulian2003 hat folgendes geschrieben Zum zitierten Posting springen:
habs jetzt so umgeändert, aber ich bekommen noch immer an der 2. stelle in der listbeox jedes mal ein -1 ausgegeben :( ?!

Auf dem ersten Blick sieht dein Code korrekt aus, auch ein schneller Copy+Paste-Test schließt einen Fehler aus. Jedoch erscheint bei mir bei deinem Code an zweiter Stelle fast immer eine Null.
Der Grund liegt wohl darin, dass du Randomize, das den Pseudo-Zufalls-Generator initialisiert, in der Button-Prozedur aufrufst. Das bringt natürlich wenig. Besser wäre es Randomize ins Form-Create zu verfrachten.
Damit hat sich das Problem bei mir behoben. :zwinker:

Grüße,
Marc