Thema: Delphi Fehler beim Felderzeugen

Einzelnen Beitrag anzeigen

brutus

Registriert seit: 12. Sep 2003
45 Beiträge
 
#1

Fehler beim Felderzeugen

  Alt 21. Sep 2003, 20:56
Hallo erstmal an alle.
Ich hab einen Fehler bei einem kleinen Programm: eigentlich sollte ein zufällig erzeugtes Feld ausgegeben werden dass dann mit Bubblesort (durch While) oder Minsort sortiert wird allerdings wird immer dass erste mal wenn ich auf die button klicke das Feld nicht richtig sortiert. Wenn ich aber ein neues Feld erzeuge wird es richtig sortiert. Kann mir irgendjemand helfen???
Hier wird das Feld erzeugt (müßte eigentlich richtig sein?!)

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var i: integer;
begin
for i:= 0 to 9 do
begin
f[i]:=(random(49)+1);
stringgrid1.cells[i,0]:=inttostr(f[i])
end;
end;
Hier der Minsort Quelltext:
Delphi-Quellcode:
 
procedure TForm1.Button2Click(Sender: TObject);
VAR i, a, u, m :integer;
BEGIN
FOR a:= 1 TO 9 DO
BEGIN
     u:=a;
     FOR i:= a+1 TO 10 DO
            IF f[i] < f[u] THEN
                BEGIN
                u:=i;
                m:=f[u];
                f[u]:=f[a];
                f[a]:=m;
                END;
END;
FOR i:= 1 TO 10 DO
stringgrid1.cells[i-1,0]:= inttostr(f[i]);
END;
Und hier Bubble mit While
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
var i,m,e: integer;
BEGIN
e:= 10;
    WHILE e>1 DO
     BEGIN
          FOR i:= 0 TO e-1 DO
              BEGIN
                IF f[i]>f[i+1] THEN
                 BEGIN
                m:=f[i];
                f[i]:=f[i+1];
                f[i+1]:=m;
                END;
                END;
              e:= e-1;
     END;
FOR i:= 0 TO 9 DO
stringgrid1.cells[i,0]:=inttostr(f[i])
END;
Bitte helft mir ! ! ! !

[edit]Ich hab mir das Programm noch mal angesehen es wird jeweils ein Feld sortiert und das nächste nur teilweise[/edit]
  Mit Zitat antworten Zitat