نیاز به کمک برای یک سوال ساختمان داده

جهت طرح ابهامات و مشکلات درسی خود به این بخش مراجعه نمایید

مدیر انجمن: rosa_127

قفل شده
konkoorkk
کاربر متوسط
کاربر متوسط
پست: 315
تاریخ عضویت: شنبه 2 بهمن 1389, 5:19 pm

نیاز به کمک برای یک سوال ساختمان داده

پست توسط konkoorkk » جمعه 29 مهر 1390, 10:03 am

سلام دوستان
این درس ساختمان داده تقریبا تنها درس مهم من هست که مونده و من هم نمیدونم چرا یاد نمیگیرم! حالا یه سوال هست این شکلی

سوال : مقدار (20,28)M را برای تابع بازگشتی زیر محاسبه کنید.

تصویر

واقعا ممنون میشم اگر راهنماییم کنید.
با تشکر

PrinceOfPersia
كاربر عالي
كاربر عالي
پست: 905
تاریخ عضویت: دوشنبه 16 فروردین 1389, 11:53 am
محل اقامت: On the Earth ...

Re: نیاز به کمک برای یک سوال ساختمان داده

پست توسط PrinceOfPersia » جمعه 29 مهر 1390, 12:07 pm

درود دوست من،
ببین تابع‌های بازگشتی چیز خاصی نیستند، تنها باید بتونی راحت روی کاغذ به ترتیب اجراش کنید، بهترین راه هم کشیدن درخت هست.

اینجا اسم تابع M هست، الان به درخت زیر دقت کن :
// تابع با مقدار ورودی 20 و 28 اجرا میشه ...
تصویر

مرحله 1 : فراخوانی تابع A:20 ، B:28
مرحله دوم : آیا A از B کوچکتر است!؟ بله ، پس تابع را با مقدارهای Bو A فراخوانی کن( m( b,a
مرحله سوم : آیا A از B کوچکتر است!؟ خیر ، آیا B برابر با صفر است!؟ خیر ، پس تابع را با مقدارهای زیر فراخوانی کن :

کد: انتخاب همه

m(b , a mod b ) // b : 20 , a mod b = 28 % 20 = 8
در مرحله‌های بعدی هم به همین شکل ...
تا زمانی که B به عدد 0 برسه ، اینجا خروجی نهایی شد 4

الان من تابع بالا رو با زبان ++C نوشتم و اجرا کردم :
(ذخیره و اجرا شده در سایت CodePad )
http://codepad.org/jqgZq3ho

خروجی شد 4 !

حالا به نحوه اجرا دقت کن :

کد: انتخاب همه

m(20,28)
m(28,20)
m(20,8)
m(8,4)
m(4,0)
4
اینم کدش :
http://codepad.org/I2qkYLOD

امیدوارم خوب گفته باشم.

konkoorkk
کاربر متوسط
کاربر متوسط
پست: 315
تاریخ عضویت: شنبه 2 بهمن 1389, 5:19 pm

Re: نیاز به کمک برای یک سوال ساختمان داده

پست توسط konkoorkk » جمعه 29 مهر 1390, 5:03 pm

واقعا از لطفت ممنونم. کاملا متوجه شدم. خیلی لطف کردی.

PrinceOfPersia
كاربر عالي
كاربر عالي
پست: 905
تاریخ عضویت: دوشنبه 16 فروردین 1389, 11:53 am
محل اقامت: On the Earth ...

Re: نیاز به کمک برای یک سوال ساختمان داده

پست توسط PrinceOfPersia » جمعه 29 مهر 1390, 6:16 pm

konkoorkk نوشته شده:واقعا از لطفت ممنونم. کاملا متوجه شدم. خیلی لطف کردی.
خواهش می‌کنم ...

موفق باشید.

قفل شده