ورود

نسخه کامل مشاهده نسخه کامل : خواهشا يه نگاه هم اينجا بنداز !!!!!



aaaammmm87
13-05-2009, 11:48
:10::11::40::31:
سلام
اين چند تا سوال مربوط ميشه به درس ساختمان داده .

(4,7)
FUNCTION MULTIPLY(A,B:INTEGER):INTEGER;
BEGIN
IF B=1 MULTIPLY:=A
ELSE MULTIPLY=A*MULTIPLY(A,B-1);
END
----------------------------------------------------------------------------------------------------
2-
(3,6)
FUNCTION F(M,N:INTEGER):INTEGER;
BEGIN
IF (M=1) OR (N=0) OR (M=N) THEN
F:=1
ELSE F:=(M-1,N)+F(M-1,N-1)
--------------------------------------------------------------------------------
3-
FUNCTION REC(N:INTEGER):INTEGER
BEGIN
IF N>1 THEN REC:=REC(N-2)+REC(N-1)
ELSE
REC:=N;
END
----------------
FUNCTION F(N:INTEGER ;X:REAL):REAL;
BEGIN
IF X<=1 THEN
F:=X
ELSE F:=X*F(N-1,X)
END
---------------------------------------------------------------------------------
خوب حالا واسه حل كردن اينا بايد از چه روشي استفاده كنم ؟ بهتره كه پشته بكشم و حلشون كنم يا اينكه از گراف استفاده كنم ؟مشكل اصليم اينايي كه رنگي كردم اينا چطوري بايد محاسبه بشن ؟
مثلا توي مثال 1 اينجوري ميشه ؟
4+(4,B-1) ?
اونوقت چه ارتباطي بين B-1 و 4 هستش؟

mahdi7610
13-05-2009, 23:09
سلام دلبندم

من اولی را برات توضیح میدم بقیه را هم خودت باید زحمت بکشی و حل کنی :)

اول از همه باید اینا بدونی ( یک فرمول در نظر بگیر )


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا باید ما بر اساس این فرمول تابع را تا جایی حل کنیم که B = 1 بشه . در این صورت می تونیم نتیچه بگیریم که Multiply := A هستش .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بنابراین نتیجه میگیریم که جواب این تابع 4 هستش .

موفق باشی :)

Amin Phoenix
18-05-2009, 16:22
اینا الگوریتم های بازگشتی اند نه نیاز به پشته مه به گراف داری فقط کافیه محاسبات رو انجام بدی و دوباره زیر برنامه رو با اون مقدار فراخوانی کنی تا به جواب نهایی برسی