تالار گفتمان مانشت
سوال از ارسال آرگومان با مقدار نتیجه و آدرس- مهندسی کامپیوتر ۸۷ - نسخه‌ی قابل چاپ

سوال از ارسال آرگومان با مقدار نتیجه و آدرس- مهندسی کامپیوتر ۸۷ - nazanin2020 - 04 دى ۱۳۹۳ ۱۲:۵۴ ق.ظ

جواب گزینه یک هست
کسی میتونه اون قسمتی ک زیرش خط کشیدمو توضیح بده ؟ با بقیه قسمتاش مشکلی ندارم بنظرم اونی ک زیرش خط کشیدم اشتباهه و باید ۱۰ بشه
با تشکر

[تصویر:  323317_j5vqx2yp0fnw8ckh5u7w.jpg]

RE: سوال از ارسال آرگومان با مقدار نتیجه و آدرس- مهندسی کامپیوتر ۸۷ - moodix - 04 دى ۱۳۹۳ ۰۳:۱۵ ق.ظ

(۰۴ دى ۱۳۹۳ ۱۲:۵۴ ق.ظ)nazanin2020 نوشته شده توسط:  جواب گزینه یک هست
کسی میتونه اون قسمتی ک زیرش خط کشیدمو توضیح بده ؟ با بقیه قسمتاش مشکلی ندارم بنظرم اونی ک زیرش خط کشیدم اشتباهه و باید ۱۰ بشه
با تشکر

سلام
جواب درسته.
value-result معمولا با نام copy-restore شناخته میشه.
call by value-result با call by value فرق داره.

value-result نوع خاصی از call by reference است با این تفاوت که: تا زمانی که تابع تموم نشه ، مقدار در آدرس مورد نظر نوشته نمیشه. مثال برای حالت value-result :

;int a=2

}(func(int x
;x=6
چاپ۲ (نه ۶!!)//;(print(a
;a=3
چاپ۳//;(print(a
{

}()main
وقتی تابع به پایان برسه اونوقت مقدار مورد نظر در a کپی میشه//;(func(a
چاپ ۶ (نه ۳ !!)//;(print(a
{


RE: سوال از ارسال آرگومان با مقدار نتیجه و آدرس- مهندسی کامپیوتر ۸۷ - nazanin2020 - 04 دى ۱۳۹۳ ۰۳:۴۷ ق.ظ

خیلی ممنون. مرسی Shy
راستش ب این موضوع دقت کردم ک نباید مقدار در آدرس نوشته بشه و فقط مقدارش در آرگومان رسمی در آخر کار کپی میشه
با توجه ب همین موضوع اینو حل کردم
اگ دقت کرده باشید مقدار y بخاطر زیربرنامه q تبدیل به چهار شده اولین دستور از زیربرنامه پی [a[4 رو برابر ۱۵ میکنه ولی خب بعدش بخاطر i دوباره مقدار [a[4 عوض میشه و تبدیل ب ۱۰ میشه. نمیدونم کجا رو دارم اشتباه میکنم

RE: سوال از ارسال آرگومان با مقدار نتیجه و آدرس- مهندسی کامپیوتر ۸۷ - moodix - 04 دى ۱۳۹۳ ۰۴:۴۵ ق.ظ

(۰۴ دى ۱۳۹۳ ۰۳:۴۷ ق.ظ)nazanin2020 نوشته شده توسط:  خیلی ممنون. مرسی Shy
راستش ب این موضوع دقت کردم ک نباید مقدار در آدرس نوشته بشه و فقط مقدارش در آرگومان رسمی در آخر کار کپی میشه
با توجه ب همین موضوع اینو حل کردم
اگ دقت کرده باشید مقدار y بخاطر زیربرنامه q تبدیل به چهار شده اولین دستور از زیربرنامه پی [a[4 رو برابر ۱۵ میکنه ولی خب بعدش بخاطر i دوباره مقدار [a[4 عوض میشه و تبدیل ب ۱۰ میشه. نمیدونم کجا رو دارم اشتباه میکنم

اشتباه نکنید، مقدار I در اون نقطه ۱ هستش چون هنوز تابع Q تمام نشده ( تابع Q تابع P رو صدا زده، پس تا P تموم نشه ، Q تموم نمیشه)
پس تا اینجا ۱۰=[۱]A . پس از اتمام تابع P، تابع Q به پایان میرسه اما قبلش ۳۰=[۱]A میکنه پس در انتها ۳۰=[۱]A و ۱۵=[۴]A

RE: سوال از ارسال آرگومان با مقدار نتیجه و آدرس- مهندسی کامپیوتر ۸۷ - nazanin2020 - 04 دى ۱۳۹۳ ۰۱:۰۳ ب.ظ

ممنون بخاطر وقتی ک گذاشتین. کامل متوجه شدم