آموزش توابع بازگشتی در C++ (به زبان کاملا ساده)

رتبه: 5 ار 3 رای SSSSS
آموزش توابع بازگشتی در C++
نویسنده: میلاد حیدری زمان مطالعه 1 دقیقه
Banner Image

در این آموزش یاد خواهید گرفت که یک تابع بازگشتی ایجاد کنید. تابعی که خودش را فرا می خواند.

یک تابع که خود را فراخوانی می کند به نام تابع بازگشتی شناخته می شود. و این تکنیک به عنوان بازگشت شناخته می شود.

توابع بازگشتی در C++ چگونه کار می کنند؟

void recurse()

{

… .. …

recurse();

… .. …

}

int main()

{

… .. …

recurse();

… .. …

}

شکل زیر نشان می دهد که تابع چگونه با فراخوانی خود بارها و بارها کار می کند.

فراخوانی تابع

فراخوانی تا زمانی که بعضی شرایط برقرار باشند، ادامه می یابد.

برای جلوگیری از ایجاد بازگشت بی نهایت، ساختار if .. else (یا رویکرد مشابه) استفاده می شود که در آن یک شاخه فراخوانی بازگشتی را انجام می دهد و دیگری این کار را نمی کند.

مثال ۱ : محاسبه ی فاکتوریل عدد با تابع بازگشتی

  1. // Factorial of n = 1*2*3*…*n
  2. #include <iostream>
  3. using namespace std;
  4. int factorial(int);
  5. int main()
  6. {
  7. int n;
  8. cout<<“Enter a number to find factorial: “;
  9. cin >> n;
  10. cout << “Factorial of ” << n <<” = ” << factorial(n);
  11. return 0;
  12. }
  13. int factorial(int n)
  14. {
  15. if (n > 1)
  16. {
  17. return n*factorial(n-1);
  18. }
  19. else
  20. {
  21. return 1;
  22. }
  23. }

خروجی

Enter a number to find factorial: 4

Factorial of 4 = 24

توضیح: مثال بالا چگونه کار می کند؟

محاسبه ی فاکتوریل عدد

فرض کنید کاربر عدد ۴ را وارد می کند، که به تابع ()factororial فرستاده شده است.

۱- در اولین فراخوانی تابع ()factorial شرط if درست است. بعد

factorial(num-1) return num*

اجرا می شود که تابع factorial را برای دومین بار صدا می زند. آرگومان ارسالی به آن ۳ (num-1) است.

۲- در دومین فراخوانی تابع ()factorial، شرطif درست است. بعد

factorial(num-1) return num*

اجرا می شود که تابع factorial را برای سومین بار صدا می زند. آرگومان ارسالی به آن ۲ (num-1) است.

۳- در سومین فراخوانی تابع ()factorial، شرط if درست است. بعد

factorial(num-1) return num*

اجرا می شود که تابع factorial را برای چهارمین بار صدا می زند. آرگومان ارسالی به آن ۱ (num-1) است.

۴- در چهارمین فراخوانی تابع ()factorial، شرط if نادرست است. بعد return 1 اجرا می شود که ۱ را به سومین تابع ()factorial ارسال می کند.

۵- سومین تابع factorial()  ۲ را به دومین تابع ()factorial ارسال می کند.

۶- دومین تابع factorial()  ۶ را به اولین تابع ()factorial ارسال می کند.

۷- در نهایت، اولین تابع factorial()  ۲۴ را به ()main ارسال می کند که بر روی صفحه نمایش داده می شود.

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

دیدگاهتان را بنویسید

1 2 3 4 5

3 نظر درباره «آموزش توابع بازگشتی در C++ (به زبان کاملا ساده)»

  • Nadia
    Nadia آیا این دیدگاه مفید بود ؟

    مطالب بسیار مفید بود.
    باتشکر از شما

    پاسخ
  • اقبالی
    اقبالی آیا این دیدگاه مفید بود ؟

    ممنون؛ مفید بود

    پاسخ
  • anika
    anika آیا این دیدگاه مفید بود ؟

    ممنون بسیار مفید بود برام

    پاسخ
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید