Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: Austausch-Sortieralgorithmus mit Prozeduren

  Alt 27. Apr 2012, 19:09
Eiei, jede Menge Fehler sehe ich da...

Die Funktion Sortieren wird gar nicht aufgerufen, warum? Warum sind die Funktionen Sortieren, Tauschen, Ausgabe & Co nicht deklariert? Auch wenn man eine Deklaration weglassen kann, wenn die aufgerufene Funktion vor dem Aufruf steht, so sollte man sich angewöhnen, immer eine Deklaration vorzunehmen.

Delphi-Quellcode:
procedure Ausgabe(x: Integer);
var
  i, j: Integer;
begin
  for i := 1 to x do
    Form1.ListBox1.Items.Add(IntToStr(Feld[j]));
end;
Öhm, die Schleife benutzt i als Laufvariable, aber der Feldindex benutzt j? Das kann nicht funktionieren und wird wahrscheinlich auch der Grund für die AV sein.

Und wäre es nicht besser, das var Feld: TFeld; durch ein const Feld: TFeld; zu ersetzen? Bin mir nicht ganz sicher, ob hier dasselbe zutrifft wie bei Objekten, deren Adresse ja durch das const geschützt wird und nicht deren Inhalt.

Noch ein paar Kleinigkeiten:
  • Application.Terminate sollte man vermeiden, wenn es geht. Ein einfaches TForm.Close tut seinen Dienst ebenfalls, bedeutet aber deutlich weniger hartes Beenden des Programms (härter ist nur Halt oder das Abschießen des Prozesses).
  • Verwende aussagekräftige Bezeichner! Button1 und Edit1 sind kein solchen.
  • Auch wenn man Funktion(); für parameterlose Funktionen verwenden kann, ich vermeide es und benutze stattdessen Funktion; . Keine Ahnung, ob das Verwenden leerer Klammern Auswirkungen haben kann und/oder ob das irgendeinem Standard entspricht oder widerspricht (nein, ich meine nicht den C-Standard ).
  • Du benutzt ein statisches Feld mit 100 Elementen, erlaubst dem Benutzer aber gleichzeitig, eine Zahl in ein Edit einzugeben, die darüber hinausgehen kann. Das ist potentiell fehlerträchtig! Dazu kommt, dass ungültige Eingaben (Buchstaben & Co) nicht weggeworfen werden.

MfG Dalai
  Mit Zitat antworten Zitat