Registriert seit: 31. Mai 2009
1.198 Beiträge
Turbo Delphi für Win32
|
AW: Austausch-Sortieralgorithmus mit Prozeduren
27. Apr 2012, 19:18
Delphi-Quellcode:
Type TFeld = Array [1..100] of Integer;
var
Form1: TForm1;
x: Integer; // -> was zur hölle?
Feld: TFeld;
procedure Beenden(); // -> warum unnötig 2x deklarieren? da wo es geschlossen werden muss, die aktuelle schließ-routine aufrufen (in deinem fall: application.terminate; sollte man meiden - weiteres problem)
begin
Application.Terminate;
end;
procedure Generieren(var Feld: TFeld; x: Integer); // -> warum nur von 1 bis x? warum nicht die ganze liste?
var
i: Integer;
begin
for i := 1 to x do
begin
Feld[i] := Random(x) + 1;
Form1.ListBox1.Items.Add(IntToStr(Feld[i]));
end;
end;
procedure Ausgabe(x: Integer);
var
i, j: Integer;
begin
for i := 1 to x do // warum immer bis zu einer bestimmten stelle? (x)
Form1.ListBox1.Items.Add(IntToStr(Feld[j])); // j ist nicht intitialisiert -> enthält zufälligen wert -> was zur hölle? hausverstand?
end;
procedure Tauschen(var Feld: TFeld);
var
i, j, Temp: Integer;
begin // i und j sind nicht definiert; enthalten zufällige werte!
if (Feld[i] > Feld[j]) then // was zur hölle?
begin
Temp := Feld[i];
Feld[i] := Feld[j];
Feld[j] := Temp;
end;
Ausgabe(StrToInt(Form1.Edit1.Text));
end;
procedure Sortieren(var Feld: TFeld; x: Integer);
var
i, j: Integer;
begin
for i := 1 to x - 1 do
for j := i + 1 to x do
Tauschen(Feld); // hier besser i und j als parameter übergeben, beim rumpf der tauschen procedure dies umändern und die lokalen variable derselben routine entfernen
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Beenden(); // besser: application.terminate (nach deinem geschmack); ordnetlich: close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ListBox1.Clear;
Generieren(Feld, StrToInt(Form1.Edit1.Text));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Ausgabe(StrToInt(Form1.Edit1.Text));
end;
end.
Text..
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
Geändert von Aphton (27. Apr 2012 um 19:20 Uhr)
|