الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[مخالف]سؤال - تتبع كود

مغلق
بدأه Mr.Raed في 22 أبريل 2012 · 3 رد · 693 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سؤالي هو اريد تتبع هذا الكود كيف يعمل لان على اساسه ساعمل حل للعبة هانوي بواسطة الداتا ستركت

#include <iostream>
using namespace std;

void hanoi (int nDisks, int pegA, int pegB, int pegC)
{
int n = nDisks ;
if (n>0)


	{

	cout << "...............................\n " ;
hanoi (nDisks - 1, pegA, pegC, pegB);


cout << "Move disk from peg " << pegA << " to peg " << pegC << endl;

hanoi( nDisks-1, pegB, pegA, pegC);
}
}

int main ()
{
int n;
cout << "Input number of disks: ";
cin >> n;

hanoi (n, 1, 2, 3);

return 0;
}

الناتج لتشغيل البرنامج اذا وضعنا n = 2

.............................
.............................
mov disk from paga 1 to peg 2
mov disk from paga 1 to peg 3
.............................
mov disk from paga 2 to peg 3

كيف طبع الناتج كذا لان تتبعت الكود بنفسي ولم استطع اصل للنتيجة التي وصل اليها الكومبايلر اتمنى من اهل الخبرة مساعدتي

1f557e95a4.jpg
#2

أى الكريم:

لغز حل فهم هذا الكود وبالاخص الدالة hanoi هى فهم موضوع الاستدعاء الذاتى للدوال (تكرار الظهور)Recursive فى سي++

واليك روابط شروحات بالمنتدى:

/index.php?showtopic=185705

/index.php?showtopic=252928

/index.php?showtopic=24350

ولا تنس ان تكتب فى مربع بحث جوجل بأسفل الصفحة بالكلمات : تكرار الظهور أو Recursive الاستدعاء الذاتى

فهرس الدروووس وفهرس دروس القسم

تقبل مرورى والله ولى التوفيق

تم تعديل هذه المشاركة بواسطة AudaNix في 22 أبريل 2012 في 19:56

1

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#3

لغز برج هانوي كان أول مثال درسناة في تراكيب البيانا (داتا ستركشر) ،، ، فكرته تقوم بشكل بسيط على التالي ::: لدينا دائما مصدر وجهة ووسيط نريد أن ننقل كل الاحجار من المصدر للوجهة بحيث تكون مرتبة من الاكبر للاصغر كلما صعدنا للاعلى ،،، في كل مرة نريد ان ننقل حجرا من مصدر إلى وجه يجب ان ننقل كل الاحجار اعلى منه إلى الوسيط حتى تتسع المساحة ونستطيع نقل الاحجر الاكبر ثم الاصغر منه وهكذا حتى نصل إلى اصغر حجرة .... عدد الحركات الاقل ، يحسب بالقاعدة ::: 2^ن-1 ،، حيث ن عدد الأحجار فمثلا لو كان لدينا ثلاثة احجار فالعدد الاقل من الحركات لاتمام العملية برمتها هو سبع حركات...

#4

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات .

قواعد طرح المشاركات

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

{username}

مدونتي: C++ Tips and Tricks

هذا الموضوع مغلق.

مواضيع مشابهة