۰
subtitle
ارسال: #۱
  
سوال قابل تامل در باره اثرات
با سلام:
لطفا با ذکر دلیل بفر مایید کدام گزینه درست است:
قطعه برنامه زیر نشان دهنده وجود کدامیک از عوامل زیر می باشد
۱-وجود اثرات جانبی
۲-وجود ارگومان های منی
۳-وجود سر ریز
۴-وجود خود اصلاحی
لطفا با ذکر دلیل بفر مایید کدام گزینه درست است:
قطعه برنامه زیر نشان دهنده وجود کدامیک از عوامل زیر می باشد
کد:
int func(){
static int i=0;
i++;
return i;
}
int main()
{
for(int i=0;i<=10;i++)
cout<<func();
return 0;}
۲-وجود ارگومان های منی
۳-وجود سر ریز
۴-وجود خود اصلاحی
۰
ارسال: #۲
  
RE: سوال قابل تامل در باره اثرات
خود اصلاحی که نیست چون توی خود اصلاحی کد خودش رو تغییر میده که این جا همچین چیزی نیست و در ضمن زبان های دستوری مثل ++C اصلاً خود اصلاحی ندارند
سرریز هم نداره چون یه for ده تایی هست که هیچ جوری امکان سرریزی توش وجود نداره
به نظرم اثر جانبی هم نداره
فکر میکنم جواب گزینهی ۲ باشه، یعنی آرگومان ضمنی، اونم به خاطر این که توی تابع func متغیر i فقط یک بار declare میشه و مقدار صفر میگیره، اما دفعات بعدی که فراخوانی بشه مقدار قبلی خودش رو حفظ میکنه
(اما کلاً توی جوابی که دادم مطمئن نیستم)
پس نوشت: پس از بحثی که با خانم/آقای sepid داشتیم به این نتیجه رسیدیم که جواب گزینهی ۴ هست.
سرریز هم نداره چون یه for ده تایی هست که هیچ جوری امکان سرریزی توش وجود نداره
به نظرم اثر جانبی هم نداره
فکر میکنم جواب گزینهی ۲ باشه، یعنی آرگومان ضمنی، اونم به خاطر این که توی تابع func متغیر i فقط یک بار declare میشه و مقدار صفر میگیره، اما دفعات بعدی که فراخوانی بشه مقدار قبلی خودش رو حفظ میکنه
(اما کلاً توی جوابی که دادم مطمئن نیستم)
پس نوشت: پس از بحثی که با خانم/آقای sepid داشتیم به این نتیجه رسیدیم که جواب گزینهی ۴ هست.
۰
ارسال: #۳
  
سوال قابل تامل در باره اثرات
به نظر من جواب خود اصلاحی هست.
یکی از راههای خود اصلاحی تغییر در کد هست.
راه دیگش داده های محلی هست که در اجراهای مختلف نگه داری میشن که متغیر static اینجوریه.
یکی از راههای خود اصلاحی تغییر در کد هست.
راه دیگش داده های محلی هست که در اجراهای مختلف نگه داری میشن که متغیر static اینجوریه.
ارسال: #۴
  
RE: سوال قابل تامل در باره اثرات
(۲۲ دى ۱۳۸۹ ۰۷:۲۵ ب.ظ)sepid نوشته شده توسط: یکی از راههای خود اصلاحی تغییر در کد هست.
راه دیگش داده های محلی هست که در اجراهای مختلف نگه داری میشن که متغیر static اینجوریه.
جداً؟! من تا حالا این موضوع رو ندیده بودم! ممکنه آدرس جایی که این موضوع رو نوشته بگید منم برم بخونم؟ من قبلاً فکر میکردم فقط همون اولیه!
۰
ارسال: #۵
  
RE: سوال قابل تامل در باره اثرات
احتمالاً به این خاطر که متغیرهای استاتیک هم مثل کد توی حافظهی ایستا هستند این موضوع گفته شده؟
اما تو کتاب pratt برای زبان هایی که خوداصلاحی ندارند این رو نوشته:
از طرفی یه جای دیگه گفته که C و پاسکال خوداصلاحی ندارند، در حالی که میدونم C متغیرهای استاتیک رو پشتیبانی میکنه!
و برای خوداصلاحی گفته:
اما تو کتاب pratt برای زبان هایی که خوداصلاحی ندارند این رو نوشته:
نقل قول: During execution the static part of the subprogram definition is both inaccessible andنگفته کل حافظهی ایستا، فقط گفته تعریف زیربرنامه غیرقابل دسترس هست!
invisible
از طرفی یه جای دیگه گفته که C و پاسکال خوداصلاحی ندارند، در حالی که میدونم C متغیرهای استاتیک رو پشتیبانی میکنه!
و برای خوداصلاحی گفته:
نقل قول: Facilities allow subprogram definitions to be treated as run-time data objects in themselves
۰
ارسال: #۶
  
سوال قابل تامل در باره اثرات
غیر قابل دسترس بودن ربطش به خوداصلاحی چیه؟
من از روی جزوه قبایی اینو خوندم.
نمی دونم اون منبعش چه کتابیه .
آرگومان ضمنی نمیتونه جواب باشه چون آرگومان ضمنی وقتی مطرح میشه که ما دقیقا نتونیم ورودیهای تابع رو مشخص کنیم و یک عنصر به صورت ضمنی به عنوان ورودی باشه، ولی اینجا ما میدونیم i جزو ورودیهاست.
من از روی جزوه قبایی اینو خوندم.
نمی دونم اون منبعش چه کتابیه .
آرگومان ضمنی نمیتونه جواب باشه چون آرگومان ضمنی وقتی مطرح میشه که ما دقیقا نتونیم ورودیهای تابع رو مشخص کنیم و یک عنصر به صورت ضمنی به عنوان ورودی باشه، ولی اینجا ما میدونیم i جزو ورودیهاست.
ارسال: #۷
  
RE: سوال قابل تامل در باره اثرات
(۲۳ دى ۱۳۸۹ ۰۸:۴۸ ق.ظ)sepid نوشته شده توسط: غیر قابل دسترس بودن ربطش به خوداصلاحی چیه؟زبان هایی که در زمان اجرا به تعریف زیربرنامه دسترسی ندارند، خوداصلاحی ندارند.
توی کتاب پرت فقط همین یه مورد رو دیدم که برای خوداصلاحی گفته!
جزوهی قبایی رو دیدم، قانع شدم که کاربرد خاصی از متغیرهای استاتیک میتونه خوداصلاحی تلقی بشه.
حق با شماست، گزینهی ۴ درسته
۰
ارسال: #۸
  
سوال قابل تامل در باره اثرات
غیر قابل دسترس بودن به خود اصلاحی ربط داره
چون اگه کدی قابل دسترسی نباشه نمی تونیم توش تغییر بدیم
چون اگه کدی قابل دسترسی نباشه نمی تونیم توش تغییر بدیم
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close