![]() |
AW: Austausch-Sortieralgorithmus mit Prozeduren
Zitat:
|
AW: Austausch-Sortieralgorithmus mit Prozeduren
So, habe mir Zeit genommen mich nochmal mit den Routinen zu beschäftigen und habe den "Austausch-Algorithmus" noch einmal neu in Quelltext verfasst, jedoch sortiert mir mein Programm nun Namen oder Wörter in einer ListBox. Vielleicht könnte jemand einmal drüber schauen. Bis jetzt funktioniert das Programm ;)
Delphi-Quellcode:
const n = 100;
var Form1: TForm1; Feld: Array[1..n] of String; Zaehler: Integer; implementation {$R *.dfm} procedure Hinzufuegen(Name: String); begin Feld[Zaehler] := Name; inc(Zaehler); end; procedure Tausche(var Str1, Str2: String); var Temp: String; begin Temp := Str1; Str1 := Str2; Str2 := Temp; end; procedure Sortieren; var i, j: Integer; begin for i := 1 to n - 1 do for j := i + 1 to n do if (Uppercase(Feld[i]) > Uppercase(Feld[j])) then Tausche(Feld[i], Feld[j]); end; procedure TForm1.FormCreate(Sender: TObject); begin Zaehler := Zaehler + 1; end; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin Hinzufuegen(Edit1.Text); ListBox1.Clear; for i := 1 to n do if (Feld[i] <> '') then ListBox1.Items.Add(Feld[i]); Edit1.Clear; end; procedure TForm1.Button2Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.Button3Click(Sender: TObject); var i: Integer; begin Sortieren; ListBox1.Clear; for i := 1 to n do if (Feld[i] <> '') then ListBox1.Items.Add(Feld[i]); end; end. |
AW: Austausch-Sortieralgorithmus mit Prozeduren
Ja sieht nun viel ordentlicher aus.
Es gibt aber immernoch Probleme, wenn auch nur kleine: 1. deine Zählervariable: - es findet keine Initialisierung statt - nirgendswo bekommt Zähler einen Anfangswert (1?) verpasst. Im FormCreate wird sie "erhöht" (inkrementiert) - sie hat aber einen zufälligen Wert (davon ist auszugehen, wenn nichts zugewiesen wurde bei globalen Variablen). - die Procedure "hinzufügen" ist fehleranfällig: wenn du es nämlich genau 100x ausführst und noch ein weiteres Mal. Da wird dann versucht, auf einen Index zuzugreifen, der außerhalb des Bereiches liegt (Bereichsfehler). Besser wäre es, wenn du ne Kontrolle einbaust ~ (Zähler <= n) 2. der "Schließknopf" - Application.Terminate funktioniert zwar, aber dies gibt deiner Anwendung nicht die Möglichkeit, Deinitialitsierungen durchzuführen (Speicherfreigaben usw). Besser ist es, wenn du einfach ein Close; aufrufst. |
AW: Austausch-Sortieralgorithmus mit Prozeduren
Was, zum Teufel, ist der "Austausch-Sortieralgorithmus"?
|
AW: Austausch-Sortieralgorithmus mit Prozeduren
Google, zum Teufel, mal.
|
AW: Austausch-Sortieralgorithmus mit Prozeduren
Zitat:
Den "Austausch-Sortieralgorithmus" gibt mit dieser Bezeichnung (derzeit sonst) nicht, zumal (aus)tauschen eine essentielle Operation allgemeiner Sortieralgorithmen gibt, was demnach eine solche Bezeichnung sehr unglücklich dastehen ließe. Wenn ich "exchange sort" suche, komme ich auf Lösungen, die an manchem Simplesort (sicher auch keine selbsterklärende Bezeichnung) auf sortieralgorithmen.de zu entsprechen scheint. |
AW: Austausch-Sortieralgorithmus mit Prozeduren
"Selection Sort" (wenn man sicht die diversen Sortieralgorithmen auf Wikipedia ansieht und von der Logik (nicht Code) her vergleicht, so kommt man zu diesem Entschluss =P)
|
AW: Austausch-Sortieralgorithmus mit Prozeduren
Manche Lehrer scheinen Bubble-Sort auch so zu bezeichnen (sagt zumindest Google), es scheint aber wirklich Selection-Sort zu sein.
Aber eigentlich ist das egal, der nächste arme Hund, dem der Lehrer den richtigen Namen des Algorithmus nicht verrät, wird diese Thema mit der Überschrift finden. Wenn du über die Qualität des Info-Unterichts diskutieren willst, kannst du ja ein Thema in K&T aufmachen :mrgreen: |
AW: Austausch-Sortieralgorithmus mit Prozeduren
Zitat:
|
AW: Austausch-Sortieralgorithmus mit Prozeduren
Da gibts nichts zum Diskutieren; soetwas wie Qualität gibt es im Info Unterricht (zumindest in der Oberstufe) nicht!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz