hi leute
ich hab nich gerade hier angemeldet und möchte
erstmal im voraus sagen, dass nir eure seite echt gut gefällt und sehr hilfreich ist
ich habe nun folgendes problem:
diesen delphi-code habe ich erstellt und nöchte nun eine passende oberfläche dazu kreieren...
leider ist mir das wissen mit der verknüpfung zwischen den methoden den buttons abhanden gekommen
zu dem würde ich gerne wissen ob der bisherige codeakzeptabel ist(nein delphi spinnt momentan ein bisschen)
Delphi-Quellcode:
unit UZahlen;
interface
uses
Math;
type
TZahlen =
class(TObject)
private
sZahlen, aZahlen :
array[1..12000]
of longint;
maxZahl : integer;
anzahlTausch : integer;
anzahlVergleich : integer;
public
constructor create;
procedure feldbelegen(anzahl: integer);
procedure feldinit;
procedure anzahlinit;
function holen(i: integer; feld: integer) : integer;
function tauschZurueck : integer;
function vergleichZurueck : integer;
procedure bubblesort;
procedure quicksort(links: integer; rechts: integer);
end;
implementation
constructor TZahlen.create;
begin
maxZahl := 0;
randomize;
end;
procedure TZahlen.feldbelegen(anzahl: integer);
var
i: Integer;
begin
maxZahl := anzahl;
for i := 1
to anzahl
do
aZahlen[i] := random(1000000);
end;
procedure TZahlen.feldinit;
var
i: Integer;
begin
for i := 1
to 12000
do
begin
aZahlen[i] := 0;
sZahlen[i] := 0;
end;
end;
procedure TZahlen.anzahlinit;
begin
anzahlVergleich := 0;
anzahlTausch := 0;
end;
function TZahlen.holen(i: integer; feld: integer) : integer;
begin
if (feld = 1)
then
holen := aZahlen[i]
else
holen := sZahlen[i]
end;
function TZahlen.tauschZurueck : integer;
begin
tauschZurueck := anzahlTausch;
end;
function TZahlen.vergleichZurueck : integer;
begin
vergleichZurueck := anzahlVergleich;
end;
procedure TZahlen.bubblesort;
var
i, j, speicher: integer;
begin
sZahlen := aZahlen;
for i := 1
to maxZahl-1
do
begin
for j := i+1
to maxZahl
do
begin
Inc(anzahlVergleich);
if sZahlen[i] > sZahlen[j]
then
begin
speicher := sZahlen[j];
sZahlen[j] := sZahlen[i];
sZahlen[i] := speicher;
Inc(anzahlTausch);
end;
end;
end;
end;
procedure TZahlen.quicksort(links: integer; rechts: integer);
var
l, r, pivot, speicher: integer;
begin
if rechts = -1
then
begin
rechts := maxZahl;
sZahlen := aZahlen;
end;
l := links;
r := rechts;
pivot := sZahlen[Ceil((l+r)/2)];
repeat
while sZahlen[l] < pivot
do
begin
Inc(l);
Inc(anzahlVergleich);
end;
while sZahlen[r] > pivot
do
begin
Dec(r);
Inc(anzahlVergleich);
end;
if l <= r
then
begin
speicher := sZahlen[l];
sZahlen[l] := sZahlen[r];
sZahlen[r] := speicher;
Inc(anzahlTausch);
Inc(l);
Dec(r);
end;
until l > r;
if links < r
then
quicksort(links, r);
if l < rechts
then
quicksort(l, rechts);
end;
end.
freue mich auf eure kritischen kommentare
danke
[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]