Einzelnen Beitrag anzeigen

Urba

Registriert seit: 8. Dez 2002
Ort: Ketsch
120 Beiträge
 
Delphi 6 Personal
 
#3

Re: Sortierer, hab ein sehr interessantes problem

  Alt 10. Apr 2004, 20:44
Hallo,

Also ich habe mir dein Programm mal angesehen und den Fehler auch gefunden :

Für jede Zahl die du "in die Hand nimmst" musst du auch alle Elemente durchgehen, am besten auch von vorne nach hinten.

Deine for-Schleife

for j:=N downto i-i do ergibt eigentlich recht wenig Senn denn i-i ist immer 0

schreibe die for-Schleife also einfach so :

for j:=1 to N-1 do und es funktioniert wunderbar.


Ach noch was. Wenn du mit vielen Zahlen arbeiten würdest dann braucht dein Programm eine ganze Weile, weil es die Listen immer neuzeichnet. Besser ist es mit BeginUpdate und Endupdate. Zum Beispiel bei deinem Zahlen ausrechnen würde das folgendermaßen aussehen :

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  randomize;
  setlength(data, N+1);
  ListBox1.Clear;
  ListBox1.Items.BeginUpdate; // Zeichnet die Liste nicht immer neu
  for i:=1 to N do
    begin
      data[i] := random(raum-1); // "+1" weg, sonst stimmt deine Angabe "Zahlenraum, 0-" nicht :o)
      ListBox1.Items.Add(inttostr(data[i]));
    end;
  ListBox1.Items.EndUpdate; // schliesst Update ab, jetzt erst wird die Liste neu gezeichnet
end;

Herzliche Grüße
Urba
Es gibt keine blöden Fragen, nur blöde Antworten
  Mit Zitat antworten Zitat