رفتن به مطلب
محفل من
Mostafa

آموزش تابع بازگشتی در C++

پست های پیشنهاد شده

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

کدی به زبان C++ با استفاده از تابع بازگشتی بنویسید که حاصل ضرب دو عدد را با استفاده از حاصل جمع آنها بدست آورد .

برای حل این مثال لازم است بدانید که :

مخفی

    برای مشاهده مطلب باید در سایت ثبت نام کنید و سپس وارد شوید.

در فراخوانی سوم از تابع بازگشتی بالا، شرط درست است پس مقدار ۴ به فراخوانی دوم بر میگردد و باز با مقدار ۴ فراخوانی دوم جمع شده و عدد حاصل که ۸ است به فراخوانی اول بر میگردد و باز با ۴ جمع شده و در نهایت مقدار ۱۲ که جواب ماست چاپ می شود. حتما توجه کنید که از فراخوانی سوم به بعد شرط if نقض شده و فراخوانی تابع بازگشتی متوقف می شود .

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

الف) غیر از اینکه تابع بازگشتی را در تابع main فراخوانی می کنیم باید در درون تعریف خود تابع بازگشتی هم آنرا فراخوانی کنیم.

ب) قبل از فراخوانی تابع بازگشتی خود در تعریف تابع، باید شرطی را برقرار سازیم که پس از طی روال مشخصی فراخوانی به پایان برسد .

پ) در فراخوانی تابع بازگشتی در خود تابع، یکی از پارامترها باید تغییر نماید حال زیاد شود یا کم یا … و این بسته به نیاز تابع خواهد بود .

ج) هر تابعی را نمی توان بصورت بازگشتی نوشت مگر اینکه رابطه منطقی و ریاضی در این مورد برای آن پیدا کنیم .

ه) یک تابع بازگشتی باید دارای نوع برگشتی باشد وحداقل یک پارامتر ورودی داشته باشد .

مثال سری فیبوناچی را با هم به وسیله توابع بازگشتی در C++ بررسی می کنیم :

می دانیم که برای پیدا کردن فاکتوریل یک عدد باید خود عدد را در عدد قبلی ضرب کرده و حاصل آنرا هم به همین ترتیب در عدد قبلی ضرب و به همین ترتیب ادامه دهیم تا به ۱ برسیم. لذا وقتی ضرب اعداد در هم ادامه پیدا می کند که به عد ۱ برسیم و این شرط ما خواهد بود وهمینطور می دانیم که فاکتوریل ۱ برابر با ۱ است .

برنامه سری فیبوناچی با توابع بازگشتی :

مخفی

    برای مشاهده مطلب باید در سایت ثبت نام کنید و سپس وارد شوید.


    خروجی :
 

مخفی

    برای مشاهده مطلب باید در سایت ثبت نام کنید و سپس وارد شوید.

خدمت عزیزان باید عرض کنم که در کد بالا نوعی را به نام long می بینیم که شامل اعداد صحیح بزرگتر از int می باشد . دلیل استفاده از این نوع این است که int شامل اعداد بین ۳۲۷۶۷ و -۳۲۷۶۷ است و چون جواب ما از این محدوده بیشتر است باید از long استفاده کنیم .

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری
    • 2 Posts
    • 12 Views
    • 1 Posts
    • 34 Views
    • 1 Posts
    • 40 Views
    • 1 Posts
    • 133 Views
    • 1 Posts
    • 115 Views
    • 1 Posts
    • 141 Views
    • 1 Posts
    • 138 Views

  • سفارش پروژه برنامه نویسی

×
×
  • اضافه کردن...