Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Austausch-Sortieralgorithmus mit Prozeduren (https://www.delphipraxis.net/167969-austausch-sortieralgorithmus-mit-prozeduren.html)

Delphi-Laie 29. Apr 2012 16:12

AW: Austausch-Sortieralgorithmus mit Prozeduren
 
Zitat:

Zitat von haui95 (Beitrag 1163899)
mit dem Austausch-Sortieralgorithmus

Es gibt nicht "den" Austausch-Sortieralgorithmus, sondern (nur) Sortieralgorithmen, die (auch oder ausschließlich) (aus-)tauschen oder nicht.

haui95 2. Mai 2012 19:45

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.

Aphton 2. Mai 2012 19:57

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.

Delphi-Laie 2. Mai 2012 22:36

AW: Austausch-Sortieralgorithmus mit Prozeduren
 
Was, zum Teufel, ist der "Austausch-Sortieralgorithmus"?

Furtbichler 3. Mai 2012 06:50

AW: Austausch-Sortieralgorithmus mit Prozeduren
 
Google, zum Teufel, mal.

Delphi-Laie 3. Mai 2012 10:54

AW: Austausch-Sortieralgorithmus mit Prozeduren
 
Zitat:

Zitat von Furtbichler (Beitrag 1164658)
Google, zum Teufel, mal.

Was google wohl findet...diese Diskussion an vorderster Stelle!

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.

Aphton 3. Mai 2012 14:06

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)

BUG 3. Mai 2012 14:21

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:

DeddyH 3. Mai 2012 17:59

AW: Austausch-Sortieralgorithmus mit Prozeduren
 
Zitat:

Zitat von BUG (Beitrag 1164736)
Wenn du über die Qualität des Info-Unterichts diskutieren willst, kannst du ja ein Thema in K&T aufmachen :mrgreen:

Bloß nicht :shock:

Aphton 3. Mai 2012 18:01

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.
Seite 2 von 2     12   

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