Hallo, bei einem kleinen Programm, welches Bubblesorten soll, tritt immer ein Stack-Überlauf auf, wenn eine Liste mit Zufallszahlen oder eine sortierte Liste von 0-x erstellt wird, welche danach sortiert werden soll. Bei einer invertiert sortierten jedoch nicht. Woran liegt das? Hier mal der Quelltext von dem Listen-Erstell-Button :-O also bei case...of 0 und 2 kommt ein Stacküberlauf, 1 geht reibungslos....
sorry für den nicht sehr eleganten Quelltext
Delphi-Quellcode:
lol:=true;
Anzahl:=StrToInt(EdtAnzahl.text);
SetLength(wert,Anzahl);
ListBox1.Clear;ListBox2.clear;
case cbxvorlage.itemindex of
0:
begin
for i:=0 to Anzahl-2 do
begin
wert[i]:=i;
end;
randomize;
Zufallszahl:=random(Anzahl);
wert[anzahl]:=Zufallszahl;
for i:=0 to Anzahl-1 do
begin
if lol=true then
ListBox1.Items.Add(IntTostr(wert[i]));
if checkbox1.checked=true then
begin
if i>499 then lol:=false;
end;
end;
end;
1:
begin
for i:=0 to Anzahl-1 do
wert[i]:=Anzahl-i;
for i:=0 to Anzahl-1 do
begin
if lol=true then
ListBox1.Items.Add(IntTostr(wert[i]));
if checkbox1.checked=true then
begin
if i>499 then lol:=false;
end;
end;
end;
2:
begin
randomize;
for i:=1 to anzahl do
wert[i]:=random(anzahl);
for i:=0 to Anzahl-1 do
begin
if lol=true then
ListBox1.Items.Add(IntTostr(wert[i]));
if checkbox1.checked=true then
begin
if i>499 then lol:=false;
end;
end;
end;
end;