ورود

نسخه کامل مشاهده نسخه کامل : برج هانوی باتابع بازگشتی



راتمینار1
13-10-2009, 19:21
سلام
کسی هست که برنامه ی برج هانوی با تابع بازگشتی به پاسکال رو داشته باشه؟
استادم میگفت که فقط 3-4 خطه ولی هرچی گشتم پیدا نکردم.
اگه توضیح هم بدید ممنون میشم:20:

sin2x=2sinxcosx
16-10-2009, 18:57
نمي دونم نحوه نوشتن تابع بازگشتي تو پاسکال چجوريه . ولي من فرض مي کنم که با ++C فرقي نداره و مثل اون توضيح مي دم .
تابع بازگشتي ما داراي 4 پارامتر هست که پارامتر اول تعداد ديسکهاي موجود در اول کار هست ، پارامتر دوم ميله اول ، پارمتر سوم ميله دوم و پارامتر چهارم ميله سوم .
حالت پايه رو وقتي در نظر مي گيريم که يک ديسک در ميله اولمون باشه . اون موقع ميگيم ديسکي که تو ميله اول هست بندازه تو ميله دوم و کار تموم بشه . (يعني براي کاربر چاپ کنه )
حالا اگه يه ديسک موجود نباشه يعني هنوز به حالت پايه نرسيده باشيم ، تابع بازگشتيمون رو با پارامترهاي به ترتيب تعداد ديسکها منهاي 1 ، ميله اول ، ميله سوم و ميله دوم فراخواني مي کنيم و بعد ميگيم ديسک رو از ميله اول به دوم بنداز . (يعني همون چاپ)
بعد از اون هم دوباره تابع رو با مقادير به ترتيب تعداد ديسکها منهاي 1 ، ميله سوم ، ميله دوم و ميله اول فراخواني مي کنيم .

معروفه که ميگن با انجام اين کار دنيا هم به پايان مي رسه . (درحالتي که 64 ديسک داشته باشيم .) واقعا هم اين حرف صحت داره . الان من اين برنامه رو با 64 ديسک اجرا کردم باور کنين الان درست 10 دقيقه است که کار برنامه تموم نشده و هي داره حرکت ها رو چاپ مي کنه . يه CPU دو هسته اي که نتونه به اين راحتي اين کارو انجام بده به دست انسان واقعا چندين هزار سال طول مي کشه .

roya_borhany
19-10-2009, 18:35
سلام
کسی هست که برنامه ی برج هانوی با تابع بازگشتی به پاسکال رو داشته باشه؟
استادم میگفت که فقط 3-4 خطه ولی هرچی گشتم پیدا نکردم.
اگه توضیح هم بدید ممنون میشم:20:
این برنامه در پاسکال با پردازه بازگشتی نوشته میشه که همون 3 یا 4 خطه. این کدش:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توجه داشته باشید که در این محیط نیز برنامه تابع قوانین پشته عمل میکند