23 آذر 1392, 05:11 ب.ظ
سلام
مثال زیر از کتاب پورانه. جوابش رو نمی فهمم. ممنون میشم کمکم کنید.
چرا در فراخوانی با ارجاع برای محاسبه x ، همون x قبلی رو در نظر گرفتیم ؟ مگه y و x نباید یکی باشند ؟
مثال زیر از کتاب پورانه. جوابش رو نمی فهمم. ممنون میشم کمکم کنید.
program Sample
var x,y,j:integer
procedure test(y,z:integer)
begin
z:=z-6
Y:=y+6
x=x-y
end;
begin
x:=4
y:=5
test(x,y)
write(x,y)
end;
var x,y,j:integer
procedure test(y,z:integer)
begin
z:=z-6
Y:=y+6
x=x-y
end;
begin
x:=4
y:=5
test(x,y)
write(x,y)
end;
برای فراخوانی با مقدار گفته میشه x=4 و y=5 . چون فراخوانی با مقداره تاثیری در نتیجه نداره.
سوال من اینه ، الان مگه x سراسری محسوب نمیشه؟ پس چرا تغییراتش تاثیر گذار نیست؟
و کلا در همه ی انواع فراخوانی ها ، تغییر متغییر سراسری حکمش چیه؟
برای فراخوانی با ارجاع هم گفته میشه :
[tex]z=5-6=-1[/tex]
[tex]y=4 6=10[/tex]
[tex]x=4-10=-6[/tex]
سوال من اینه ، الان مگه x سراسری محسوب نمیشه؟ پس چرا تغییراتش تاثیر گذار نیست؟
و کلا در همه ی انواع فراخوانی ها ، تغییر متغییر سراسری حکمش چیه؟
برای فراخوانی با ارجاع هم گفته میشه :
[tex]z=5-6=-1[/tex]
[tex]y=4 6=10[/tex]
[tex]x=4-10=-6[/tex]
چرا در فراخوانی با ارجاع برای محاسبه x ، همون x قبلی رو در نظر گرفتیم ؟ مگه y و x نباید یکی باشند ؟