Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Bubblesort + Zeitstoppung (https://www.delphipraxis.net/122534-bubblesort-zeitstoppung.html)

de_vine 17. Okt 2008 17:35


Bubblesort + Zeitstoppung
 
Hallo habe ein Delphi projkt soll noch ZEITSTOPPUNG einbauen.
BITTE UM HILFE!

BUBBLESORT:

var
Form1: TForm1;
Z:ARRAY[1..1000]OF INTEGER;
I,E,D,HILF:INTEGER;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
E:=STRTOINT(Edit1.Text);
Memo1.Text:='';
Memo2.Text:='';

I:=1;
REPEAT
BEGIN Z[I]:=Random(100);
I:=I+1;
END;
UNTIL I=E+1;

I:=1;
REPEAT
BEGIN
Memo1.Lines.Add(inttostr(Z[I]));
I:=I+1;
END;
UNTIL I=E+1;

D:=E;
REPEAT
BEGIN
I:=1;
REPEAT
BEGIN
IF Z[I]>Z[I+1] THEN
BEGIN HILF:=Z[I];
Z[I]:=Z[I+1];
Z[I+1]:=HILF;
END;
I:=I+1;
END;
UNTIL I=D;
D:=D-1
END;
UNTIL D=1;

i:=1;
Repeat
Begin
Memo2.Lines.Add(inttostr(Z[i]));
i:=i+1;
End;
UNTIL I=E+1;


end;

end.

Das ist ein lauffähiges Bubblesort soll noch stoppung einbauen.
und zwar so ungefähr:

Infos zur Zeitstoppung in DELPHI

procedure TForm1.Button1Click(Sender: TObject); 16.10.2008
var z: Array of Integer;
var i,h,e: Integer;
zeitpunkt1, zeitpunkt2, Dauer : real; // in Tagen!!!
begin
. . .
zeitpunkt1:=time;

// der eigentliche Sortiervorgang

Zeitpunkt2:=time;
dauer:= (zeitpunkt2-zeitpunkt1)*24*3600; // in s
edit2.Text:=floattostr(dauer);
. . .
end;



muss das 2te iwie in das erste einbauen
danke im voraus!

Noedel 17. Okt 2008 17:39

Re: Bubblesort + Zeitstoppung
 
ja, dann nimmst du am besten gettickcount für die zeitnahme...
ungefähr so


start:=gettickcount;
bubble(meinarray);
ende:=gettickcount;
gesamt:=ende-anfang; //in ms

ich glaube wohl kaum, dass du, um 1000 zahlen zu sortieren "tage" brauchen wirst :)

de_vine 17. Okt 2008 17:41

Re: Bubblesort + Zeitstoppung
 
ja ber ich weiss nicht wo ich das eintragen soll!

malo 17. Okt 2008 17:53

Re: Bubblesort + Zeitstoppung
 
Den Ansatz hast du doch selbst. "zeitpunkt1" und "zeitpunkt2" musst du beide auf GetTickCount setzen, nicht auf "time".

Aber aufpassen: Die Zeiten werden angegeben in Millisekunden, um auf Sekunden zu kommen musst du das also mit 1000 multiplizieren durch 1000 teilen.

edit: Fehler durchgestrichen und korrigiert, sorry

Dunkel 17. Okt 2008 18:03

Re: Bubblesort + Zeitstoppung
 
Zitat:

Zitat von malo
Aber aufpassen: Die Zeiten werden angegeben in Millisekunden, um auf Sekunden zu kommen musst du das also mit 1000 multiplizieren.

...um dann auf Mikrosekunden zu kommen? Eher durch 1000 dividieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz