2 سال پیش / خواندن دقیقه

تابع بازگشتی در برنامه نویسی C | اموزش سی با مثال

 تابع بازگشتی در برنامه نویسی C | اموزش سی با مثال

در این آموزش شیوه نوشتن توابع بازگشتی در برنامه نویسی C را به کمک مثال یاد خواهید گرفت.

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

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

void recurse()

{

… .. …

recurse(); // فراخوانی تابع داخل خود تابع

… .. …

}

int main()

{

… .. …

recurse();

… .. …

}

 تابع بازگشتی در برنامه نویسی C | اموزش سی با مثال بازگشت زمانی متوقف می شود که یک شرط (ها) برقرار شودف به این شرط، شرط توقف می گویند.

 

برای جلوگیری از بازگشت نامحدود در بیشتر مواقع از دستور if…else استفاده می شود. این دستور جایی نوشته می شود که یک مسیر فراخوانی بازگشتی است و دیگری نه.

مثال: مجموع اعداد طبیعی با استفاده از تابع بازگشتی

#include <stdio.h>
int sum(int n);
int main() {
int number, result;
printf(“Enter a positive integer: “);
scanf(“%d”, &number);
result = sum(number);
printf(“sum = %d”, result);
return 0;
}
int sum(int n) {
if (n != 0)
// خود را فراخوانی می کند sum() تابع
return n + sum(n-1);
else
return n;
}

خروجی

Enter a positive integer:3

sum = 6

ابتدا تابع ()sum درون تابع ()main با ارسال آرگومانnumber  فراخوانی می شود.

فرض کنید کاربر عدد ۳ را وارد می کند و این مقدار در اولین فراخوانی در پارامتر n تابع ()sum قرار می گیرد. با فراخوانی بعدی تابع درون خود تابع، n-1 یعنی عدد ۲ به تابع ()sum ارسال می شود. این روند ادامه می یابد تا n برابر با ۰ شود.

وقتی n برابر با ۰ شد، شرط if برقرار نیست و قسمت else اجرا می شود. در نهایت مجموع اعداد صحیح به تابع ()main برگردانده می شود.

 تابع بازگشتی در برنامه نویسی C | اموزش سی با مثال مزایا و معایب بازگشت

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

همانطور که گفته شد بازگشت یک مفهوم مهم است و اغلب در ساختار داده ها و الگوریتم ها استفاده می شود. به عنوان مثال معمولاً از بازگشت در مسائلی مانند پیمایش درخت ها استفاده می شود.

شاید از نوشته‌های زیر خوشتان بیاید
نظر خود را درباره این پست بنویسید ...

منوی سریع