Hallo Leute,
Morgen schreiben wir unsere letzte Delphi Klausur. Ein Teil der Arbeit wird der Bubblesort sein. Und um nocheinmal sicher zu gehen, wollte ich einmal fragen, ob ihr einen Fehler findet bzw ob der Code so richtig ist. Ich hab ihn selbst geschrieben!!!
Im Anhang findet ihr das Struktogramm! Wäre euch sehr Dankbar!
Delphi-Quellcode:
VAR
wert: ARRAY [0..4] of INTEGER;
<~ Globale Variablen ~>
PROCEDURE 'Zufallszahlen erstellen'; // 1 Benötigt: Zufallszahlen generieren
VAR i : INTEGER; // Schleifenvariable
BEGIN
Randomize; // Zufallsgenerator einleiten
FOR i := 0 TO 4 DO // Schleife von 0 bis 4 (5 Durchläufe)
BEGIN
wert[i] := Random(100)+1; // Wert bekommt 5 Zufallszahlen bis 100
ListBox1.Items.Add(IntToStr(wert[i])); << Zufallszahlen ausgeben
END;
END;
<~ 5 Zufallszahlen von 0 bis 100 wählen ~>
PROCEDURE 'Bubble Sort'; // 2 Benötig: Sortieralgorithmus
VAR i , j , help : INTEGER; // 2 Schleifenvariablen und 1 Hilfsvariable
BEGIN
FOR j := length(wert)-2 DOWNTO 0 DO // Schleife von j-2 bis 0 runterzählen
BEGIN
FOR i := 0 TO j DO // Schleife von 0 bis j
// Hier wird I auf Null (0) gesetzt!!! Wichtig, sonst kann i jeden beliebigen Wert haben.
BEGIN
IF wert[i] > wert[i+1] THEN // Fallunterscheidung
BEGIN
help := wert[i]; // Wert wird der Hilfevar zugewiesen
wert[i] := wert[i+1]; // Wert immer um 1 hoch
wert[i+1] := help; // Hilfsvar auf Wert +1
END;
END;
END;
FOR i := 0 TO 4 DO // Schleife von 0 bis 4 (5 Durchläufe)
BEGIN
ListBox2.Items.Add(IntToStr(wert[i])); // Ausgabe der einzelnen Werte
END;
END;
<~ Bubble Sort Algorithmus ~>