تالار گفتمان مانشت
تابع بازگشتی - نسخه‌ی قابل چاپ

تابع بازگشتی - alice - 03 شهریور ۱۳۹۲ ۰۶:۲۸ ب.ظ

سلااااااااام به همگی
ازکجا بفهمم Int test (--x, --y) معادل با Int test (--x, --y)
این یه نمونه کد برای این سواله

Int test (int x , int y)
{
If ( x == 0 )
Return y;
Else
Return Int test (--x, --y)
}

RE: تابع بازگشتی - SnowBlind - 03 شهریور ۱۳۹۲ ۰۶:۴۶ ب.ظ

سلام، لفطا توی تگ "کد" کد ها رو بگذارید

RE: تابع بازگشتی - alice - 03 شهریور ۱۳۹۲ ۰۶:۵۷ ب.ظ

کد:
Int test (int x , int y)
{
   If ( x == 0 )
          Return  y;
Else
         Return  Int test (--x, --y)
}
[/php]

از کجا بفهمم
کد:
Return  Int test (--x, --y)
معادل با
کد:
Return  Int test (--x,y)


RE: تابع بازگشتی - vojoudi - 03 شهریور ۱۳۹۲ ۰۹:۱۶ ب.ظ

سلام
معادل نیستن.

RE: تابع بازگشتی - alice - 03 شهریور ۱۳۹۲ ۰۹:۵۱ ب.ظ

پس چرا تو کتاب تست ساختمان داده مقسمی گفته معادلن؟
یه جای دیگه هم مشابه اینو دیدم Huh

RE: تابع بازگشتی - vojoudi - 03 شهریور ۱۳۹۲ ۰۹:۵۳ ب.ظ

تنها داریم :
کد:
return n++
معادل با
کد:
return n


RE: تابع بازگشتی - alice - 03 شهریور ۱۳۹۲ ۱۰:۰۶ ب.ظ

پس خروجی تابع بازگشتی بالا به ازای مقادیر مثبت x,y چی میشه؟

RE: تابع بازگشتی - mfXpert - 03 شهریور ۱۳۹۲ ۱۰:۲۲ ب.ظ

(۰۳ شهریور ۱۳۹۲ ۱۰:۰۶ ب.ظ)alice نوشته شده توسط:  پس خروجی تابع بازگشتی بالا به ازای مقادیر مثبت x,y چی میشه؟
این تابع به صورت بازگشتی حاصل عبارت y-x رو به دست می‌یاره

RE: تابع بازگشتی - alice - 03 شهریور ۱۳۹۲ ۱۰:۲۶ ب.ظ

ببین نکته ای که بهش اشاره کردی در مورد سوال زیر صدق میکنه

[img]
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
[/img]


پس میخوای بگی اشتباه حل کرده؟Exclamation
ببین میشه برام توضیح بدی چجوری حلش کردی؟Big Grin

RE: تابع بازگشتی - Morris - 04 شهریور ۱۳۹۲ ۰۱:۲۶ ب.ظ

(۰۳ شهریور ۱۳۹۲ ۱۰:۲۶ ب.ظ)alice نوشته شده توسط:  ببین نکته ای که بهش اشاره کردی در مورد سوال زیر صدق میکنه

[img]
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.
[/img]


پس میخوای بگی اشتباه حل کرده؟Exclamation
ببین میشه برام توضیح بدی چجوری حلش کردی؟Big Grin



سلام دوست عزیز !
در این مثال از کتاب آقای مقسمی که آپلود کرده اید، می توانید ++return n را با return n معادل بگیرید :
زیرا دستور ++return n به این معنی است که مقدار n ، از تابع بازگردانده شود و سپس مقدار n، یکی زیاد شود که زیاد شدن آن تاثیری در برنامه ندارد زیرا قبل از افزایش n، دستور return اجرا شده است و n بازگردانده شده است. بنابراین می توانید به جای آن بنویسید return n .

اما اگر به صورت return ++n بود، آنگاه نمی توان گفت که با return n برابر است زیرا در اینجا، ابتدا n، یک واحد زیاد می شود و پس از آن بازگردانده می شود.

RE: تابع بازگشتی - alice - 04 شهریور ۱۳۹۲ ۰۴:۰۹ ب.ظ

از کمکتون ممنونم
مشکلم حل شد
مرسی Smile