![]() |
Delphi-Version: 5
Sortieralgorithmen
hallo leute,
ja ich weiß die schon wieder :-) heute muss ich eine funktion schreiben, die das vergleichen von 2 zeilen ersetzen soll (wenn ihr euch noch an den bubblesort von freitag erinnert)
Delphi-Quellcode:
wenn ihr es euch mal ansehen könntet... über einen tipp würde ich mich freuen!
unit sortieren;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private function Sort(ASrcA, ASrcD: String): Integer; function CharToInt(AValue: Char): Integer; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; CharTable: array[0..25] of Char = ('A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I','J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i, j : Integer; //Position Buffer: String; //speicher begin for j := 0 to Memo1.lines.count -2 do begin for i := j+1 to Memo1.Lines.Count -1 do begin if Memo1.Lines[j] > Memo1.lines[i] then //soll mit funktion Sort ausgetauschen werden begin Buffer := Memo1.lines[j]; Memo1.Lines[j] := Memo1.Lines[i]; Memo1.Lines[i] := Buffer; end; end; end; end; function TForm1.CharToInt(AValue: Char): Integer; var i : Integer; begin Result := -1; for i := 1 to length(CharTable) do begin if CharTable[i] = AValue then begin Result := i; Break; end; end; end; function TForm1.Sort(ASrcA, ASrcD: String): Integer; // komme ab hier nicht weiter var i: Integer; s: String; begin Result := -1; for i := 1 to Length(CharTable) do end; end. |
AW: funktion erstellen... weiß nicht weiter
Hier kommt der Tipp *Trommelwirbel*:
![]() Schau Dir im Besonderen einmal die Rückgabewerte an. |
AW: funktion erstellen... weiß nicht weiter
theoretisch versteh ich es.... aber praktisch ist so eine Sache... ich probier mal rum.
|
AW: funktion erstellen... weiß nicht weiter
Wenn es nur um das Vergleichen geht, würde ich die Funktion Compare nennen. Im ButtonClick könnte das dann später so aussehen:
Delphi-Quellcode:
for j := 0 to Memo1.lines.count -2 do
begin for i := j+1 to Memo1.Lines.Count -1 do begin if Compare(Memo1.Lines[j], Memo1.Lines[i]) > 0 then |
AW: funktion erstellen... weiß nicht weiter
ich soll ja eine funktion erstellen die alle werte auf einmal vergleicht.
|
AW: funktion erstellen... weiß nicht weiter
Das macht keinen Sinn. Oder soll die Funktion auch gleich das Tauschen und somit die komplette eigentliche Sortierung übernehmen?
|
AW: funktion erstellen... weiß nicht weiter
nein eigentlich nur das vergleichen ich denke dass mein ausbilder mir bloß die funktionen näher bringen will.
|
AW: funktion erstellen... weiß nicht weiter
Dann erklär doch einmal, was genau Deine Funktion vergleichen und vor allem, was sie zurückgeben soll (Minimum, Maximum oder was?).
|
AW: funktion erstellen... weiß nicht weiter
also sie soll eben alle werte in einem Wort vergleichen und das Höchste auf eine Stelle höhersetzen... aber das soll ja im endeffekt nicht mit in die funktion. die funktion soll eben nur jeden einzelnen buchstaben eines worten mit den einzelnen buchstaben vom zweiten wort usw. vergleichen
|
AW: funktion erstellen... weiß nicht weiter
Einen String kannst Du wie ein Array durchlaufen, um die einzelnen Buchstaben zu ermitteln. Und den ASCII-Code eines Buchstaben erhältst Du mit
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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