Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Türme von Hanoi (rekursiv) (https://www.delphipraxis.net/94081-tuerme-von-hanoi-rekursiv.html)

rawsoul 15. Jun 2007 18:00


Türme von Hanoi (rekursiv)
 
Hey!

Gab es bestimmt schon tausende Male hier im Forum, jedoch hab ich es in der Codelibrary nicht gefunden, ich denke, es fehlt dort.

//Edit: Dies ist die rekursive Variante ;)

Delphi-Quellcode:
program tower_of_hanoi;

{$apptype console}

uses
  sysutils,
  classes,
  windows;

const
  sep='----------';

var
  n:integer;
  s:string;
  sl:tstringlist;
  time:integer;

procedure bewege(n,movefrom,moveto,using:integer);
begin
  if n>0 then
    begin
      bewege(N-1,movefrom,using,moveto);
      sl.Add('bewege '+inttostr(movefrom)+' --> '+inttostr(moveto));
      bewege(N-1,using,moveto,movefrom);
    end
end;

procedure askhanoi;
begin
  writeln('anzahl der scheiben = ?');
  readln(n);
  writeln('berechne...');
  time:=gettickcount;
  bewege(n,1,3,2);
  time:=gettickcount-time;
  writeln('zeit: '+floattostr(time/1000)+' s');
  writeln('speichern? (y/n)');
  readln(s);
  if s='y' then sl.savetofile('hanoi.txt');
  sl.clear;
  writeln;
  writeln(sep);
  writeln;
  askhanoi;
end;

begin
  writeln('turm von bewege');
  writeln(sep);
  writeln('by raw');
  writeln('mail: [email]rawsoulstar@gmail.com[/email]');
  writeln(sep);
  writeln;
  sl:=tstringlist.create;
  askhanoi;
  sl.free;
end.
Das ganze ist geschrieben nach dem Pseudocode von wiki :)

Bin natürlich für jeden Tipp dankbar - vor allem bezüglich der Geschwindigkeit ;)

LG,
Frank.

fLaSh11 15. Jun 2007 18:05

Re: Türme von Hanoi (rekursiv)
 
wie wäre es, wenn du die TStringList wieder frei gibst am ende?

alleinherrscher 15. Jun 2007 18:39

Re: Türme von Hanoi (rekursiv)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab das früher mal in der Schule mit Grafischer Ausgabe programmiert... fall es zum verständnis beiträgt hab ichs mal mit dran gehängt, ist ebenfalls die rekursive Variante. (vielleicht nicht soooo sauber programmiert) ;)

rawsoul 15. Jun 2007 18:48

Re: Türme von Hanoi (rekursiv)
 
Die Stringlist wird nun wieder freigegeben und beim erneuten Aufruf geleert...
Sehe leider keinen Anhang alleinherrscher, hast du dich vielleicht verklickt?

//Edit: Grad war er noch nicht da... Sorry <.<


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 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