مشاهده نسخه کامل
: چند سوال در مورد توابع بازگشتي؟
دوستان يه چند سوالي در مورد توابع بازگشتي برام پيش اومده لطفا كامل و ساده به سوالاتم جواب بديد:11:
1)توابع بازگشتي چه جوري كار مي كنند؟
2)معمولا در چه جاهايي بايد از اين توابع استفاده كرد؟
3)كار اين توابع چه موقع متوقف ميشه؟
rahananews
27-10-2008, 23:12
دوستان يه چند سوالي در مورد توابع بازگشتي برام پيش اومده لطفا كامل و ساده به سوالاتم جواب بديد:11:
1)توابع بازگشتي چه جوري كار مي كنند؟
2)معمولا در چه جاهايي بايد از اين توابع استفاده كرد؟
3)كار اين توابع چه موقع متوقف ميشه؟
توابع بازگشتی بیشتر برای کارای تکراری استفاده میشه که نیاز به محاسبات تکراری داره .
موقع تعریف تابع بازگشتی یعنی قبل از اینکه تابع دوباره فراخونی بشه یه شرط خاتمه میذاریم که تابع بازگشتی اونقد میچرخه و محاسبه میکنه تا به اون شرط برسه وقتی رسید هم که دیگه کار تمومه.
کارکردنشون هم شبیه پشته است یعنی بعد از رسیدن به شرط خاتمه مقدار مورد نیاز به تابع یکی مونده به آخر پاس داده میشه و اون به قبلی و..... تا به اولی برسیم .
سلام
توضیحات کاربر rahananews خوب بود.
من فقط به عنوان نمونه دو مثال ساده میزنم...
مثال ساده اول را که احتمالاً شنیده اید، تابع تابلو فاکتوریل است!
برای محاسبه !n در داخل تابع مربوطه می آییم و نمونه ای از خود تابع را با مقدار n-1 اجرا میکنیم، یعنی n!=(n-1)!*n
توضیح بیشتری نمیدهم چون فکر کنم زیاد تکراری و قدیمی است!
ولی این نمونه بدون بازگشت و با یک حلقه for هم قابل انجام است.
ولی برخی کارهای بدون بازگشتی غیر ممکن هستند.
مثلاً جستجوی فایلی خاص در هارد، که خیلی مرسوم و پرکاربرد هم است.
شما تابعی برای این کار مینویسید که در یک حلقه for تمام محتویات root پوشه را با فایل مورد درخواست چک میکنید و بعد به ازای هر زیر پوشه مجدداً خود تابع را با مسیر جدید زیر پوشه اجرا میکنید.
بدین ترتیب از محل مورد جستجو تمام شاخه های و زیر پوشه های تودرتو را (که تعداد و سطح تودرتویی را هم نمیدانیم) به راحتی جستجو میکنیم!
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.