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

صفحه‌ها: ۱ ۲
RE: خروجی برنامه با استفاده از روش فراخوانی با نام - afagh.msm - 30 دى ۱۳۹۳ ۰۱:۲۱ ب.ظ

(۳۰ دى ۱۳۹۳ ۰۱:۰۴ ب.ظ)amin1371 نوشته شده توسط:  
(30 دى ۱۳۹۳ ۱۲:۳۲ ب.ظ)Ametrine نوشته شده توسط:  
(30 دى ۱۳۹۳ ۱۲:۱۸ ب.ظ)amin1371 نوشته شده توسط:  خروجی c 1 1 هست منابع من کتابای پارسه هست ولی بیشتر از توی جواب تستا میشه روش حل کردن رو پیدا کرد یعنی حل تستای زیاد
خب من بجز این، تست دیگه ای ندیدم که اینجوری پارامتر ارسال کنه.
اگه شما دیدید بذارید اینجا لطفاً.

سال ۸۸ یه تست دیگه هست ک با سه روش فراخوانی با نام و ارجاع و مقدار و نتیجه جوابو خواسته یه نگاهی بهش بندازین خوبه

(۳۰ دى ۱۳۹۳ ۱۲:۵۴ ب.ظ)afagh.msm نوشته شده توسط:  سلام بچه ها
گزینه درست B 1 1
اصلا داخل گزینه ها c وجود نداره ولی من خودم هم فک میکنم باید c ب جای B قرار میگرفته چون ارجاع با نام ارگومان ها ارزیابی نشده ارسال میشن و موقع ارجاع به اونا در محیط ارجاعی که به عنوان پارامتر ارسال شدند ارزیابی میشه.

حالا توضیحی که پوران گفته برای این سوال اینه :
در ()P ابتدا j برابر ۲ می شود سپس دستور دوم این طور ارزیابی میشود:
i=i+1
چون ارگومان X به جای i سراسری نشسته است و مقدار i سراسری برابر ۱ می گردد.دستور چاپ y در ()p مقدار [ s [j+1 را چاپ می کند منتها j در محیط سراسری ارزیابی می شود نه درون ()p پس مقدارش ۱ است نه ۲ لذا مقدار [۲]s که 'B' چاپ می شود دستور چاپ i هم به i سراسری اشاره می کند که هم اکنون مقدارش ۱ است و پس از برگشت مقدار i دوباره چاپ می شود لذا خروجی
'B',1,1 است

نظرتون؟؟؟

اگه اینجوری باشه درسته
پس توی فراخوانی با نام از متغیرهای سراسری باید استفاده کنیم؟



توی فراخوانی با ارجاع چی؟

داخل ارجاع ادرسو میفرستیم و با ادرسا کار میکنیم داخل نام چون نام متغیر رفته اینجوری میشه Big GrinBig Grin

RE: خروجی برنامه با استفاده از روش فراخوانی با نام - bluebaran - 30 دى ۱۳۹۳ ۰۱:۴۷ ب.ظ

(۳۰ دى ۱۳۹۳ ۱۲:۵۴ ب.ظ)afagh.msm نوشته شده توسط:  سلام بچه ها
گزینه درست B 1 1
اصلا داخل گزینه ها c وجود نداره ولی من خودم هم فک میکنم باید c ب جای B قرار میگرفته چون ارجاع با نام ارگومان ها ارزیابی نشده ارسال میشن و موقع ارجاع به اونا در محیط ارجاعی که به عنوان پارامتر ارسال شدند ارزیابی میشه.

حالا توضیحی که پوران گفته برای این سوال اینه :
در ()P ابتدا j برابر ۲ می شود سپس دستور دوم این طور ارزیابی میشود:
i=i+1
چون ارگومان X به جای i سراسری نشسته است و مقدار i سراسری برابر ۱ می گردد.دستور چاپ y در ()p مقدار [ s [j+1 را چاپ می کند منتها j در محیط سراسری ارزیابی می شود نه درون ()p پس مقدارش ۱ است نه ۲ لذا مقدار [۲]s که 'B' چاپ می شود دستور چاپ i هم به i سراسری اشاره می کند که هم اکنون مقدارش ۱ است و پس از برگشت مقدار i دوباره چاپ می شود لذا خروجی
'B',1,1 است

نظرتون؟؟؟

من الان این مبحثو از پرات خوندم و چه سوال خوبی بچه ها مطرح کردن من خودم به این نکته توجه نکرده بودم
حالا پرات چی گفته: گفته که وقتی با نام فراخوانی میکنیم درسته که پارامتر ارزیابی نشده ارسال میشه ولی باید در نظر بگیریم که وابستگی پارامتر در بلوک فراخواننده هستش

RE: خروجی برنامه با استفاده از روش فراخوانی با نام - Ametrine - 30 دى ۱۳۹۳ ۰۱:۵۹ ب.ظ

(۳۰ دى ۱۳۹۳ ۰۱:۴۷ ب.ظ)bluebaran نوشته شده توسط:  من الان این مبحثو از پرات خوندم و چه سوال خوبی بچه ها مطرح کردن من خودم به این نکته توجه نکرده بودم
حالا پرات چی گفته: گفته که وقتی با نام فراخوانی میکنیم درسته که پارامتر ارزیابی نشده ارسال میشه ولی باید در نظر بگیریم که وابستگی پارامتر در بلوک فراخواننده هستش
درسته، الان دیدمش.
ممنون
پس من جوابم رو ویرایش میکنم

RE: خروجی برنامه با استفاده از روش فراخوانی با نام - MiladCr7 - 30 دى ۱۳۹۳ ۰۵:۵۰ ب.ظ

سلام.به نظر من منم B,1,1 درسته.اینم مهندسی ۸۸ که جوابش ۴ میشه.با استدلالی مشابه
[تصویر:  328303_mg1zae39906abw1cz2cz.jpg]

RE: خروجی برنامه با استفاده از روش فراخوانی با نام - gogooli - 30 دى ۱۳۹۳ ۰۶:۲۹ ب.ظ

B 1 1 درسته چون اون j متغیر محلی تابع ۲ شده ربطی به j ما نداره...
فقط در جامع دوم پارسه نمی دونم چرا اونجوری شد! اگه اینجوری استدلال کنیم استدلالمون در تاپیک بررسی آزمون پارسه اشتباهه؟!

RE: خروجی برنامه با استفاده از روش فراخوانی با نام - Ametrine - 30 دى ۱۳۹۳ ۰۸:۲۹ ب.ظ

کتاب پرات نوشته:

روش فراخوانی با نام با پارامترهای واقعی به صورت زیربرنامه های ساده ی بدون پارامتر رفتار میکند. هر زمانی که پارامتر رسمی با پارامتر واقعی با نام مطابقت می‎نماید و در زیربرنامه به آن رجوع میشود، زیربرنامه ای که برای آن پارامتر کامپایل شده است اجرا میگردد و باعث ارزشیابی پارامتر واقعی در محیط مناسب ارجاع میشود و نتیجه به عنوان مقدار زیربرنامه برگردانده میشود.

اینم از کتاب sebesta.

A pass-byname formal parameter is bound to an access method at the time of the subprogram call, but the actual binding to a value or an address is delayed until the formal parameter is assigned or referenced. Implementing a pass-by-name parameter requires a subprogram to be passed to the called subprogram to evaluate the address or value of the formal parameter. The referencing environment of the passed subprogram must also be passed.

RE: خروجی برنامه با استفاده از روش فراخوانی با نام - gogooli - 30 دى ۱۳۹۳ ۰۸:۴۷ ب.ظ

(۳۰ دى ۱۳۹۳ ۰۸:۲۹ ب.ظ)Ametrine نوشته شده توسط:  کتاب پرات نوشته:

روش فراخوانی با نام با پارامترهای واقعی به صورت زیربرنامه های ساده ی بدون پارامتر رفتار میکند. هر زمانی که پارامتر رسمی با پارامتر واقعی با نام مطابقت می‎نماید و در زیربرنامه به آن رجوع میشود، زیربرنامه ای که برای آن پارامتر کامپایل شده است اجرا میگردد و باعث ارزشیابی پارامتر واقعی در محیط مناسب ارجاع میشود و نتیجه به عنوان مقدار زیربرنامه برگردانده میشود.
یعنی در اون سوال پارسه جواب با نام گزینه ۴ نمی شه؟

RE: خروجی برنامه با استفاده از روش فراخوانی با نام - Ametrine - 02 بهمن ۱۳۹۳ ۱۰:۲۳ ق.ظ

(۳۰ دى ۱۳۹۳ ۰۸:۴۷ ب.ظ)gogooli نوشته شده توسط:  یعنی در اون سوال پارسه جواب با نام گزینه ۴ نمی شه؟
اصلاً گزینه صحیح نداره!
با این تعریف ها، خروجی با نام و با ارجاعش مثل هم میشه.
---------------------------------------------------------------
دوستان ببخشید من اشتباه استدلال کرده بودم.
ارسال های اشتباهم رو پاک کردم تا دوستان گمراه نشن.