Recursion in C++
الكاتب: Mr.Aziz
تاريخ النشر: 2023-03-13 09:53:04
اهلآ وسهلآ.
في هذا الدرس سوف نتعلم عن Recursion Functions.
ماهو Recursion؟ هي بكل بساطة نوع من أسلوب في الدالة ليتم تسهيل العملية البرمجة من أكثر تعقيد الى أسهل تعقيد عن طريق أستخدام function call أكثر من مرره بالدوال المختلفة.
على سبيل المثال:
نفترض لديك ثلاث دوال و دالة أختيارات و دالة 1 و دالة 2
ألان المستخدم يختار رقم 1 ليتم عمل الدالة 1 ثم يريد العودة الى قائمة أختيارات كيف؟ يكون عن طريق Recursion يتم وضع function call تبع أختيارات ليتم لعودة اليها.
كيف يتم هذي طريقة؟ تعال نتعلم بالعملي.
دعنا نمشي خطوة خطوة مع بعض.
اولآ عملنا دالة بأسم أختيارات هو menu.
بداخل الدالة menu من السطر 11 الى 28 ليتم سؤال المستخدم هل تريد تعمل عملية موجب أو ناقص؟
مثل ماتلاحظ في السطر 8 يوجد function call ليتم استدعاء أختيارات فقط من أول تشغيل البرنامج.
الأن نعمل دالة يتم عمل عملية موجب و ايضآ الناقص.
الأن عملت دالة تجميع ليتم تجميع رقمين و عرض النتيجة.
دالة الثانية يتم طرح رقمين وعرض النتيجة
بعد كذا نريد نضع الدالة function call خاصة في sum و sub في case 1 و case 2
كالتالي.
ستلاحظ بالسطر 22 تم وضع دالة function call sum ولكن هذا لايعتبر Recursion
نفس الشئ مع السطر 25 تم وضع دالة sub ولكن لايعتبر Recursion لماذا؟
اذا المستخدم أختار رقم 1 ليتم عمل عملية موجب او زائد تمام. بعد كذا يتوقف البرنامج!
مثل هكذا
ستلاحظ بعد عرض النتيجة 2+3 هو 5
توقف برنامج تمامآ.
طيب مالحل المشكلة! أريد العودة الى القائمة كيف؟
هنا نستخدم شي أسمه Recursion
ليتم بهذي طريقة
ستلاحظ في السطر 42
تم كتابة أسم الدالة الأختيارات لماذا؟
بعد أنتهاء من عرض النتيجة البرنامج يعود الى القائمة وليسئل المستخدم مره أخرى.
أختر الرقم المراد. هنا يسمى Recursion لانه يتم تكرار او أسلوب التكرار بدون loops
هنا النتيجة
ستلاحظ الأن بعد عملية الزائد 2+3 والنتيجة 5
البرنامج عاد الى القائمة و لم يتوقف مثل مره السابقة لانه وضعنا أسم الدالة أختيارات ليصبح Recursion
هل ممكن نعمل نفس الطريقة مع sub؟
ستلاحظ الأن أستطيع أستخدام الطرح أو الموجب و العودة الى القائمة بدون أن نجعل البرنامج يقف أو يغلق.
لهذا تم تسمية Recursion ليتم عمل تكرار او العودة الى المكان أكثر من مره و شبيهة في loops ولكن هي ليس loops فعليآ.
وأنتهى الدرس