📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit;
BitBtn1: TBitBtn;
ListBox1: TListBox;
BitBtn2: TBitBtn;
Edit2: TEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ComputeData(Sender: TObject );
procedure Hanoi(n : integer;X : string;Y :string ;Z : string);
end;
var
Form1: TForm1;
i,j,k : integer ;
implementation
{$R *.dfm}
Procedure TForm1.ComputeData(Sender: TObject );
var l : Integer ;
begin
for i:=0 to 33 do
begin
l := 50 - i;
for j:= 0 to l do
begin
k := 100-i-j;
if ( 3*i+2*j+k/2 ) = 100 then
break ;
end;
end;
end;
procedure TForm1.Hanoi(n : integer;X : string;Y : string;Z : string );
var str : String;
begin
if n=1 then ListBox1.AddItem('Move 1 From '+ X +' to '+Z,ListBox1)
else
begin
Hanoi(n-1,X,Z,Y);
str := 'Move '+inttostr(n)+ ' From '+X+' to '+Z ;
ListBox1.AddItem(str ,ListBox1) ;
Hanoi(n-1,Y,X,Z);
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form1.ComputeData(Sender );
Edit1.Text := inttostr(i)+' '+inttostr(j)+' '+inttostr(k) ;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var i : Integer ;
X,Y,Z :string ;
begin
ListBox1.Clear ;
i := strtoint(Edit2.Text );
X := ' A盘 ';
Y := ' B盘 ';
Z := ' C盘 ';
Form1.Hanoi(i,X,Y,Z);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -