Close
تبلیغات در بلاگ اسکای
شنبه 18 اسفند ماه سال 1386 ساعت 1:01 PM

این کد برنامه کامل "برج هانوی" می باشد. همانطور که می دانید این بازی به طوری است که سه میله و تعدادی دیسک داریم. دیسک ها به ترتیب شماره گذاری شده از پائین به بالا (و از بزرگ به کوچک) در میله اول چینده شده اند. ما باید برنامه ای بنویسیم که این دیسک ها از میله یک به میله سوم منتقل شوند (و به همین ترتیب چیده شوند) این بازی یک قانون دارد که هیچگاه یک دیسک بزرگتر نمی تواند روی یک دیسک کوچکتر قرار گیرد. این برنامه به وسیله توابع بازگشتی نوشته شده است. البته این تنها راه نوشتن این بازی نیست!

 

 

 

program hanoi;

var     n,i:integer;

procedure transfer(n,m1,m3,m2:integer);

          procedure diskmove(m1,m3:integer);

          begin

               writeln(i,') Move ',m1,' To ',m3); i:=i+1

          end;

begin

     if n>0 then

     begin

          transfer(n-1,m1,m2,m3);

          diskmove(m1,m3);

          transfer(n-1,m2,m3,m1);

     end

end;

 

begin   {main begin}

     i:=1;

     write('Enter the number of disks: ');

     readln(n);

     writeln;

     transfer(n,1,3,2);

     readln

end.

del.icio.us digg newsvine furl Y! smarking segnalo