سی پلاس

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

folderتوابع
comments3 دیدگاه
اساطیر زبان

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

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

 


سی پلاس پلاس

توی این پک فوق العاده، سی پلاس پلاس رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با سی پلاس پلاس به عمق فهم برنامه نویسی شیرجه بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

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

void recurse()

{

… .. …

recurse();

… .. …

}

int main()

{

… .. …

recurse();

… .. …

}

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

C:\Users\Mr\Desktop\how-recursion-works-c++.jpg

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

برای جلوگیری از ایجاد بازگشت بی نهایت، ساختار 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

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

C:\Users\Mr\Desktop\working-recursion.jpg

فرض کنید کاربر عدد ۴ را وارد می کند، که به تابع ()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 ارسال می کند که بر روی صفحه نمایش داده می شود.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

3 دیدگاه. ارسال دیدگاه جدید

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست