Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Die Türme von Hanoï (https://www.delphipraxis.net/10250-die-tuerme-von-hano%EF.html)

ssach 14. Okt 2003 19:23


Die Türme von Hanoï
 
hy,

ich habe folgendes Problem :

ich muss eine Prozedur schreiben, der ich diese VAriablen als Eingbe gebe :

Delphi-Quellcode:
procedure Hanoi(N,G,H : integer, var LB : TListBox)
N ist die Anzahl der Ringe
G ist der Stock aufdem sich die Ringe am Anfang befinden
H ist der Stock wo die Ringe sich am Ende befinden sollen
LB ist eine Listbox wo nach jedem schieben von einem Ring die Stöcke dringeschrieben werden (bsp: 1-2 : ein ring wird von stock 1 zu stock 3 befördert

Die prozedur muss sich nach jedem verschieben eines ringes also selbst aufrufen! (Rekursive prozedur)


also denke ich mao dass die Endkondition N=0 sein müsste?!

hoffe koennt mir helfen

danke

cu

Matze 14. Okt 2003 19:33

Re: Die Türme von Hanoï
 
Delphi-Quellcode:
procedure TForm1.BewegeTurm(n: integer; s,z,h: integer);
//n: Scheibenanzahl; s: Startstapel-Nr.; z: Zielstapel-Nr.; h: Hilfsstapel-Nr.
begin
  if n>0 then
  begin
    BewegeTurm(n-1,s,h,z);
    ListBox1.Items.Add(IntToStr(s)+' ==> '+IntToStr(z));
    inc(Schritte);
    BewegeTurm(n-1,h,z,s);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Schritte:=0;
  ListBox1.Clear;
  BewegeTurm(StrToInt(Edit1.Text),1,3,2);
end;

c4t 25. Apr 2004 23:27

Re: Die Türme von Hanoï
 
geil.

Danke dir Matze. Genau das ist gerade meine Info-Hausaufgabe. Hast mir sehr gut geholfen.

Ich frage mich nur, wie man von selbst auf solch ein Algorithmus kommen kann. Ich hab selbst mich einwenig rumgequählt, jedoch ist bei mir nichts rausgekommen.

naja, auf jeden Fall danke dir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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 by Thomas Breitkreuz