English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات C++ الأساسية

تحكم في العملية C++

الوظائف في C++

arrays وstrings C++

مبادئ C++

كلاسات وobjects C++

المراجع في C++

الوراثة في C++

تعليمات STL في C++

دليل مرجعي C++

الوظائف المتكررة في C++

في هذا المقال، ستتعلم إنشاء وظيفة تكرارية تدعو نفسها. وظيفة تدعو نفسها.

تدعو نفسهاوظيفةوالمعروف بوظيفة التكرار. ويعرف هذا التقنية بالتكرار.

كيف يعمل التكرار في C++؟

void recurse()
{
    ... .. ...
    recurse();
    ... .. ...
}
int main()
{
    ... .. ...
    recurse();
    ... .. ...
}

الشكل التالي يوضح طريقة التحويل التكراري.

يستمر التكرار حتى يتم استيفاء بعض الشروط.

لمنع التكرار اللامتناهي، يمكن استخدام one branch للتحويل التكراري بينما لا يتم التحويل التكراري في branch الآخرif ... else statement(أو طريقة مشابهة).

مثال 1: استخدام التوليد التكراري لتحليل عدد

// ناتج التوليد = 1*2*3*...*n
#include <iostream>
using namespace std;
int factorial(int);
int main() 
{
    int n;
    cout << "أدخل عددًا للبحث عن التوليد: ";
    cin >> n;
    cout << "عدد " << n << " هو ناتج التوليد = " << factorial(n);
    return 0;
}
int factorial(int n) 
{
    if (n > 1) 
    {
        return n*factorial(n-1);
    }
    else 
    {
        return 1;
    }
}

نتيجة الإخراج

أدخل عددًا للبحث عن التوليد: 4
عدد 4 هو ناتج التوليد = 24

شرح الاستخدام: كيف يعمل هذا المثال؟

افترض أن المستخدم أدخل 4 وأنه تم إرسالها إلى وظيفة factorial() هذه.

  1. في الوظيفة factorial() الأولى، يتم اختبارif statementيتم تنفيذ تعبير return num*factorial(num-1); داخل if statement إذا كان صحيحًا، ويتم استدعاء الوظيفة factorial() الثانية، ويتم إرسال المعامل num-1 كـ3.

  2. في الوظيفة factorial() الثانية، يتم اختبار التعبير داخل if statement إذا كان صحيحًا. يتم تنفيذ تعبير return num*factorial(num-1);، ويتم استدعاء الوظيفة factorial() الثالثة، وتم إرسال المعامل num-1 كـ2.

  3. في الوظيفة factorial() الثالثة، يتم اختبار التعبير داخل if statement إذا كان صحيحًا. يتم تنفيذ تعبير return num*factorial(num-1);، ويتم استدعاء الوظيفة factorial() الرابعة، وتم إرسال المعامل num-1 كـ1.

  4. في وظيفة factorial() الرابعة، يتم اختبار تعبير if statement inside false، يتم تنفيذ تعليمات return 1;، وتتم العودة بـ 1 إلى وظيفة factorial() الثالثة.

  5. ستعيد وظيفة factorial() الثالثة القيمة 2 إلى وظيفة factorial() الثانية.

  6. ستعيد وظيفة factorial() الثانية القيمة 6 إلى وظيفة factorial() الأولى.

  7. في النهاية، سيعود القيمة 24 إلى وظيفة main()، والتي سيتم عرضها على الشاشة.