زمان کنونی: ۲۸ آذر ۱۴۰۳, ۰۹:۳۷ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

خروجی برنامه با استفاده از روش فراخوانی با نام

ارسال:
  

ldns0098 پرسیده:

خروجی برنامه با استفاده از روش فراخوانی با نام

برنامه زیر را در نظر بگیرید:
کد:
Var s: array[1..3] of char;
var i,j: integer;
    Procedure P(X: integer ; y: char);
    var j: integer
        begin
        j:=2;
        X= X+1;
        output(y);
        output(i);        
        end;
S[1]:='A';S[2]:='B';S[3]:='C';
i:=0; j:=1;
P(i,S[1+j]);
output(i);
خروجی برنامه با استفاده از روش فراخوانی با نام چیست؟
من تو تحلیل کد گیج شدم Huh

پ.ن: سوال ۱۲ - ص ۱۳۸-زبانهای برنامه سازی راهیان ارشد چاپ سوم
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

ldns0098 پاسخ داده:

Re: خروجی برنامه با استفاده از روش فراخوانی با نام

بچه ها کاش یه نگاه بهش بندازین. فک کنم کد پاسکاله.
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

amin1371 پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام


(۳۰ آذر ۱۳۹۳ ۰۲:۱۵ ب.ظ)Ametrine نوشته شده توسط:  سلام

خب وقتی که تابع فراخوانی شد: [tex]P(i,S[1 j])[/tex]
در تابع P،
[tex]S[1 j][/tex] جایگزین y میشه و i هم جایگزین X
[tex]S[1 j][/tex] چی میشه؟
۱+۱ = ۲ ، پس میشه [tex]S[2][/tex]
یعنی در اصل اول اندیس S حساب میشه بعد میریم توی تابع P

خب حالا تو تابع P یه j تعریف کرده و مقدار ۲ داده که اصلاً کاری بهش نداریم.
بعد X که الان i شده رو جمع کرده با ۱ ، که مقدارش میشه ۱ چون قبلاً صفر بوده.
[tex]output(y)[/tex] که میشه همون [tex]output(S[2])[/tex] که مقدارش B هست.
[tex]output(i)[/tex] هم میشه ۱
بعد برمیگردیم به برنامه اصلی اونجا هم دوباره i چاپ میشه که باز مقدار ۱ رو چاپ میکنه.

پس خروجی میشه: B 1 1

سعی کردم تا اونجا که میتونم واضح توضیح بدم.
اگه سوالی بود بپرسید.


سلام تا اونجایی ک من میدونم فکر کنم پاسخ سوال رو اشتباه دادن چون توی فراخوانی با ارجاع هست ک اول مقدار s حساب میشه بعد داخل تابع میشه
یعنی اینجا مقدار s(1+2)ra میده به خروجی
اگه درغیر اینصورت هست بگین منم متوجه بشم
نقل قول این ارسال در یک پاسخ

ارسال:
  

Ametrine پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۰۱:۲۵ ق.ظ)amin1371 نوشته شده توسط:  سلام تا اونجایی ک من میدونم فکر کنم پاسخ سوال رو اشتباه دادن چون توی فراخوانی با ارجاع هست ک اول مقدار s حساب میشه بعد داخل تابع میشه
یعنی اینجا مقدار s(1+2)ra میده به خروجی
اگه درغیر اینصورت هست بگین منم متوجه بشم
سلام

این سوال مربوط به کنکور ۷۳ هست.
این مطلب درباره محاسبه ی مقدار و بعد ارسال به تابع رو توی stackoverflow خوندم.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

amin1371 پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

سلام اخه اصلا تفاوت فراخوانی با نام و ارجاع تو همین موضوع هست وگرنه فرقی ندارن تو متغرهای ساده یا مغیرهای مشخص مثل b(5 تنها تفاوتشون تو متغرهای نامعین هست و اینکه توی ارجاع مقدار رو حساب میکنه و میفرسته ولی توی نام تو خود تابع مقدار ارابه مشخص میشه
بعدشم stackoverflow یه انجمنه ک هرکسی براساس اطلاعات خودش صحبت میکنه منبع رسمی نیست منبع رسمی ما کتاب هاست
بااین حال اگه بازم مطمین هستید مارو هم در جریان بذارید
(۳۰ دى ۱۳۹۳ ۱۱:۲۲ ق.ظ)Ametrine نوشته شده توسط:  
(30 دى ۱۳۹۳ ۰۱:۲۵ ق.ظ)amin1371 نوشته شده توسط:  سلام تا اونجایی ک من میدونم فکر کنم پاسخ سوال رو اشتباه دادن چون توی فراخوانی با ارجاع هست ک اول مقدار s حساب میشه بعد داخل تابع میشه
یعنی اینجا مقدار s(1+2)ra میده به خروجی
اگه درغیر اینصورت هست بگین منم متوجه بشم
سلام

این سوال مربوط به کنکور ۷۳ هست.
این مطلب درباره محاسبه ی مقدار و بعد ارسال به تابع رو توی stackoverflow خوندم.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

bluebaran پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۱:۳۳ ق.ظ)amin1371 نوشته شده توسط:  سلام اخه اصلا تفاوت فراخوانی با نام و ارجاع تو همین موضوع هست وگرنه فرقی ندارن تو متغرهای ساده یا مغیرهای مشخص مثل b(5 تنها تفاوتشون تو متغرهای نامعین هست و اینکه توی ارجاع مقدار رو حساب میکنه و میفرسته ولی توی نام تو خود تابع مقدار ارابه مشخص میشه
بعدشم stackoverflow یه انجمنه ک هرکسی براساس اطلاعات خودش صحبت میکنه منبع رسمی نیست منبع رسمی ما کتاب هاست
بااین حال اگه بازم مطمین هستید مارو هم در جریان بذارید
(۳۰ دى ۱۳۹۳ ۱۱:۲۲ ق.ظ)Ametrine نوشته شده توسط:  
(30 دى ۱۳۹۳ ۰۱:۲۵ ق.ظ)amin1371 نوشته شده توسط:  سلام تا اونجایی ک من میدونم فکر کنم پاسخ سوال رو اشتباه دادن چون توی فراخوانی با ارجاع هست ک اول مقدار s حساب میشه بعد داخل تابع میشه
یعنی اینجا مقدار s(1+2)ra میده به خروجی
اگه درغیر اینصورت هست بگین منم متوجه بشم
سلام

این سوال مربوط به کنکور ۷۳ هست.
این مطلب درباره محاسبه ی مقدار و بعد ارسال به تابع رو توی stackoverflow خوندم.

بله مقدار (۱+۲)s میره به خروجی یعنی c
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

amin1371 پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

ممنون از اینکه من رو هم مطمین کردید
شما درمورد static scoping و daynamic scoping هم اطلاعاتی دارین؟
اگه بتونین توضیحی بدین ممنون میشم
(۳۰ دى ۱۳۹۳ ۱۱:۵۱ ق.ظ)bluebaran نوشته شده توسط:  
(30 دى ۱۳۹۳ ۱۱:۳۳ ق.ظ)amin1371 نوشته شده توسط:  سلام اخه اصلا تفاوت فراخوانی با نام و ارجاع تو همین موضوع هست وگرنه فرقی ندارن تو متغرهای ساده یا مغیرهای مشخص مثل b(5 تنها تفاوتشون تو متغرهای نامعین هست و اینکه توی ارجاع مقدار رو حساب میکنه و میفرسته ولی توی نام تو خود تابع مقدار ارابه مشخص میشه
بعدشم stackoverflow یه انجمنه ک هرکسی براساس اطلاعات خودش صحبت میکنه منبع رسمی نیست منبع رسمی ما کتاب هاست
بااین حال اگه بازم مطمین هستید مارو هم در جریان بذارید
(۳۰ دى ۱۳۹۳ ۱۱:۲۲ ق.ظ)Ametrine نوشته شده توسط:  
(30 دى ۱۳۹۳ ۰۱:۲۵ ق.ظ)amin1371 نوشته شده توسط:  سلام تا اونجایی ک من میدونم فکر کنم پاسخ سوال رو اشتباه دادن چون توی فراخوانی با ارجاع هست ک اول مقدار s حساب میشه بعد داخل تابع میشه
یعنی اینجا مقدار s(1+2)ra میده به خروجی
اگه درغیر اینصورت هست بگین منم متوجه بشم
سلام

این سوال مربوط به کنکور ۷۳ هست.
این مطلب درباره محاسبه ی مقدار و بعد ارسال به تابع رو توی stackoverflow خوندم.

بله مقدار (۱+۲)s میره به خروجی یعنی c
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

Ametrine پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۱:۵۱ ق.ظ)bluebaran نوشته شده توسط:  بله مقدار (۱+۲)s میره به خروجی یعنی c
یعنی الان خروجی این کد چی میشه از نظر شما؟

این جوابی که من بدست اوردم مطابق با کتاب هست.

شما مطابق با چه کتابی حل کردید.
اصلاً این مطلبی که میگید تو کدوم کتاب نوشته؟

(۳۰ دى ۱۳۹۳ ۱۱:۵۴ ق.ظ)amin1371 نوشته شده توسط:  ممنون از اینکه من رو هم مطمین کردید
شما درمورد static scoping و daynamic scoping هم اطلاعاتی دارین؟
برای سوال جدید باید تاپیک جدید ایجاد کنید.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

bluebaran پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۲:۰۵ ب.ظ)Ametrine نوشته شده توسط:  
(30 دى ۱۳۹۳ ۱۱:۵۱ ق.ظ)bluebaran نوشته شده توسط:  بله مقدار (۱+۲)s میره به خروجی یعنی c
یعنی الان خروجی این کد چی میشه از نظر شما؟

این جوابی که من بدست اوردم مطابق با کتاب هست.

شما مطابق با چه کتابی حل کردید.
اصلاً این مطلبی که میگید تو کدوم کتاب نوشته؟
کتاب من پوران هست
و کلا فراخوانی با نام یعنی ما پارامتر واقعی رو ارسال میکنیم به زیربرنامه و هر جا که استفاده شده و در اون لحظه محاسبه رو انجام میدیم نه قبل از ارسال واسه همینه که میگیم با ارجاع یکیه در صورتی که متغیر ما معمولی باشه و اگه مثل اینجا آرایه با اندیس متغیر باشه و اندیس داخل زیربرنامه تغییر کنه دیگه یکی نیست
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال: #۱۰
  

amin1371 پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۲:۰۵ ب.ظ)Ametrine نوشته شده توسط:  [quote='bluebaran' pid='328220' dateline='1421738474']
بله مقدار (۱+۲)s میره به خروجی یعنی c
یعنی الان خروجی این کد چی میشه از نظر شما؟

این جوابی که من بدست اوردم مطابق با کتاب هست.

شما مطابق با چه کتابی حل کردید.
اصلاً این مطلبی که میگید تو کدوم کتاب نوشته؟

خروجی c 1 1 هست منابع من کتابای پارسه هست ولی بیشتر از توی جواب تستا میشه روش حل کردن رو پیدا کرد یعنی حل تستای زیاد
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال: #۱۱
  

Ametrine پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۲:۱۳ ب.ظ)bluebaran نوشته شده توسط:  کتاب من پوران هست
و کلا فراخوانی با نام یعنی ما پارامتر واقعی رو ارسال میکنیم به زیربرنامه و هر جا که استفاده شده و در اون لحظه محاسبه رو انجام میدیم نه قبل از ارسال واسه همینه که میگیم با ارجاع یکیه در صورتی که متغیر ما معمولی باشه و اگه مثل اینجا آرایه با اندیس متغیر باشه و اندیس داخل زیربرنامه تغییر کنه دیگه یکی نیست
اینجوری خروجی C 1 1 میشه که.
خب آخه تو گزینه ها اصلا C نداره!
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال: #۱۲
  

bluebaran پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۲:۱۹ ب.ظ)Ametrine نوشته شده توسط:  
(30 دى ۱۳۹۳ ۱۲:۱۳ ب.ظ)bluebaran نوشته شده توسط:  کتاب من پوران هست
و کلا فراخوانی با نام یعنی ما پارامتر واقعی رو ارسال میکنیم به زیربرنامه و هر جا که استفاده شده و در اون لحظه محاسبه رو انجام میدیم نه قبل از ارسال واسه همینه که میگیم با ارجاع یکیه در صورتی که متغیر ما معمولی باشه و اگه مثل اینجا آرایه با اندیس متغیر باشه و اندیس داخل زیربرنامه تغییر کنه دیگه یکی نیست
اینجوری خروجی C 1 1 میشه که.
خب آخه تو گزینه ها اصلا C نداره!

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

ارسال: #۱۳
  

amin1371 پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۲:۱۹ ب.ظ)Ametrine نوشته شده توسط:  
(30 دى ۱۳۹۳ ۱۲:۱۳ ب.ظ)bluebaran نوشته شده توسط:  کتاب من پوران هست
و کلا فراخوانی با نام یعنی ما پارامتر واقعی رو ارسال میکنیم به زیربرنامه و هر جا که استفاده شده و در اون لحظه محاسبه رو انجام میدیم نه قبل از ارسال واسه همینه که میگیم با ارجاع یکیه در صورتی که متغیر ما معمولی باشه و اگه مثل اینجا آرایه با اندیس متغیر باشه و اندیس داخل زیربرنامه تغییر کنه دیگه یکی نیست
اینجوری خروجی C 1 1 میشه که.
خب آخه تو گزینه ها اصلا C نداره!

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

ارسال: #۱۴
  

amin1371 پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۲:۳۲ ب.ظ)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 است

نظرتون؟؟؟

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

ارسال: #۱۵
  

afagh.msm پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۰۱:۰۴ ب.ظ)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
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۶
  

afagh.msm پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

سلام بچه ها
گزینه درست B 1 1
اصلا داخل گزینه ها c وجود نداره چون ارجاع با نام ارگومان ها ارزیابی نشده ارسال میشن و موقع ارجاع به اونا در محیط ارجاعی که به عنوان پارامتر ارسال شدند ارزیابی میشه.

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

نظرتون؟؟؟
نقل قول این ارسال در یک پاسخ

ارسال: #۱۷
  

bluebaran پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

(۳۰ دى ۱۳۹۳ ۱۲:۵۴ ب.ظ)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 است

نظرتون؟؟؟

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

ارسال: #۱۸
  

Ametrine پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

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

۰
ارسال: #۱۹
  

MiladCr7 پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

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

۰
ارسال: #۲۰
  

gogooli پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

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

۰
ارسال: #۲۱
  

Ametrine پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

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

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

اینم از کتاب 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.
نقل قول این ارسال در یک پاسخ

ارسال: #۲۲
  

gogooli پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

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

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

ارسال: #۲۳
  

Ametrine پاسخ داده:

RE: خروجی برنامه با استفاده از روش فراخوانی با نام

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



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  کمک برای شروع برنامه نویسی seyed ehsn ۲۱ ۱۶,۲۱۴ ۲۴ بهمن ۱۴۰۲ ۰۵:۱۰ ب.ظ
آخرین ارسال: maryamjafari63
  استفاده از پشته armiii ۰ ۱,۱۲۳ ۰۳ دى ۱۴۰۰ ۱۲:۴۳ ق.ظ
آخرین ارسال: armiii
  رودمپی برای برنامه نویسی Doctorwho ۱ ۲,۱۴۸ ۲۵ آذر ۱۴۰۰ ۰۳:۰۲ ق.ظ
آخرین ارسال: one hacker alone
  استخدام برنامه نویس یا کارآموز برنامه نویسی سی شارپ Hesitant_Girl ۰ ۱,۸۱۱ ۲۰ شهریور ۱۴۰۰ ۱۲:۰۲ ب.ظ
آخرین ارسال: Hesitant_Girl
  رودمپی برای یادگیری برنامه نویسی Doctorwho ۰ ۱,۸۴۱ ۲۳ اردیبهشت ۱۴۰۰ ۱۱:۲۲ ق.ظ
آخرین ارسال: Doctorwho
  درخواست برنامه برای اردینو در iot seokheiry ۱ ۳,۴۲۰ ۱۳ بهمن ۱۳۹۹ ۱۲:۵۵ ب.ظ
آخرین ارسال: iot-programer
  کدام زبان برنامه‌نویسی بهترین انتخاب است؟ elecomco ۲ ۳,۱۷۷ ۱۰ شهریور ۱۳۹۹ ۰۵:۱۶ ب.ظ
آخرین ارسال: kilookiloo
Sad مشکل در برنامه نویسی شیء گرا Xialu ۰ ۲,۳۱۵ ۰۵ شهریور ۱۳۹۹ ۱۲:۰۰ ب.ظ
آخرین ارسال: Xialu
  برای آموزش مبانی برنامه نویسی چکار کنیم؟ elecomco ۰ ۲,۵۵۹ ۱۹ تیر ۱۳۹۹ ۱۲:۰۵ ق.ظ
آخرین ارسال: elecomco
  همکار در حوزه speech recognition و برنامه نویسی اندروید pasargad7788 ۰ ۲,۲۳۴ ۳۱ خرداد ۱۳۹۹ ۰۹:۰۶ ب.ظ
آخرین ارسال: pasargad7788

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close