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

سوال سال ۹۰

ارسال:
  

commasoud پرسیده:

سوال سال ۹۰

با سلام
سوال زیر رو هر چقدر فکر به نتیجه نرسیدم
دستور case به شرح زیر است ، اندازه جدول پرش در کد تولید شده ان کدام است؟
Case I of
۲ : St1;
۱۰: St2;
۵,۶:St3;
End case
نقل قول این ارسال در یک پاسخ

۵
ارسال:
  

mp1368 پاسخ داده:

RE: سوال سال ۹۰

سلام . کلا این بخش کامپایلر و طراحی پیاده سازی توی مانشت مظلوم واقع شدن و فک کنم مدیر هم ندارن Big Grin

متاسفانه کتاب پوران من چاپ جدید نیست که بینم استدلالش واسه حل تشریحی این سوال چی بوده ولی در هر صورت با توجه به کلید سوال که از سایت قدسی دیدم، دقیقا با جواب من یکی بود.

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

خب حالا اگر به اعداد شروط نگاه کنیم می بینیم اعداد در بازه ی [۲ -- ۱۰] هستند که اگر بخوایم جدول پرش رو با استفاده از این اعداد بسازیم بهینه نیست و اندازه اون ۱۱ میباشد که در گزینه ها نیست(باید از آدرس ۰ تا ۱۰ رو محاسبه کنیم) . ولی اگر یه کم بهینه سازی کنیم و اعداد [۲ -- ۱۰] رو به اعداد [۰ -- ۸] نگاشت کنیم (یعنی هر مرحله I رو منهای ۲ کنیم) . اون وقت جواب بهینه به دست میاد.

روال کار :
t رو با استفاده از شرط پرش و نکته ی بهینه سازی به دست میاریم ،مثلا برای زمانی که شرط ۲ است با کم کردن ۲ تا از اون به t=0 تبدیل میشود و در ادامه محاسبه آدرس

[tex]Jump $ L0 t[/tex]

حالا باید آدرس هایی رو که از این دستور به دست میاد رو Label گذاری کنیم :
ابتدا برای حالت I=2 که t=0 به دست میاد و به آدرس L1 پرش میکند که قمست Instruction1 رو پوشش میده

[tex]L0: Jump $ To $ L1[/tex]

برای حالت I=3 و I=4 که t=1 و t=2 به دست میاد (حالت های غیر مجاز که به آدرس بعد از Case پرش میکنیم L4)

[tex]Jump $ To $ L4[/tex]
[tex]Jump $ To $ L4[/tex]

برای حالت I=5 و I=6 که t=3 و t=4 به دست میاد و به آدرس L2 پرش میکند که قمست Instruction3 رو پوشش میده

[tex]Jump $ To $ L2[/tex]
[tex]Jump $ To $ L2[/tex]

برای حالت I=7 و I=8 و I=9 که t=5 و t=6 و t=7 به دست میاد (حالت های غیر مجاز که به آدرس بعد از Case پرش میکنیم L4)

[tex]Jump $ To $ L4[/tex]
[tex]Jump $ To $ L4[/tex]
[tex]Jump $ To $ L4[/tex]

برای حالت I=10 که t=8 به دست میاد و به آدرس L3 پرش میکند که قمست Instruction2 رو پوشش میده

[tex]Jump $ To $ L3[/tex]

خب حالا همه ی دستورات رو پشت سر هم مینویسیم

[tex]--Jump $ L0 t[/tex]

[tex]L0: Jump $ To $ L1[/tex]
[tex]--Jump $ To $ L4[/tex]
[tex]--Jump $ To $ L4[/tex]
[tex]--Jump $ To $ L2[/tex]
[tex]--Jump $ To $ L2[/tex]
[tex]--Jump $ To $ L4[/tex]
[tex]--Jump $ To $ L4[/tex]
[tex]--Jump $ To $ L4[/tex]
[tex]--Jump $ To $ L3[/tex]

[tex]L1: Instruction1[/tex]
[tex]-- Jump$ To $ L4[/tex]

[tex]L2: Instruction3[/tex]
[tex]-- Jump$ To $ L4[/tex]

[tex]L3: Instruction2[/tex]
[tex]-- Jump$ To $ L4[/tex]

[tex]L4:Other $ Code $ ...............[/tex]
[tex].[/tex]


در انتها باید دقت کنیم که منظور از اندازه جدول پرش همان قسمت L0 کد میباشد که برابر ۹ دستور است

پ.ن :سوال ۸۶ که گفتم شرط Case اعداد ۲۰۰و۳۰۰و۴۰۰ هستند که با تقسیم کردن اعداد بر ۱۰۰، t رو ۱،۲،۳ به دست آورده.
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  سوال ۸ دکتری علوم کامپیوتر سال ۹۴ ss311 ۲ ۳,۱۴۷ ۲۶ اردیبهشت ۱۳۹۹ ۱۲:۳۷ ب.ظ
آخرین ارسال: ss311
  سوال مهندسی نرم افزار سال ۸۶(مهندسی نیازمندی ها) tarane1992 ۴ ۴,۸۶۷ ۲۲ بهمن ۱۳۹۷ ۰۲:۳۷ ق.ظ
آخرین ارسال: Bon_Nemesis
  سوال ۸۱ پایگاه داده فناوری اطلاعات سال ۹۴ LEA3C ۴ ۴,۳۶۱ ۰۴ شهریور ۱۳۹۶ ۰۲:۴۶ ب.ظ
آخرین ارسال: great.ocean
  سوال اول گسسته ارشد آی تی سال ۹۵ Happiness.72 ۳ ۲,۵۸۷ ۲۸ تیر ۱۳۹۶ ۰۶:۳۲ ب.ظ
آخرین ارسال: Mehdi.Sarf
  سوال ۱۰۴ سال ۹۵ : are consistency kilookiloo ۰ ۱,۳۴۹ ۰۷ اردیبهشت ۱۳۹۶ ۱۱:۱۱ ق.ظ
آخرین ارسال: kilookiloo
  سوال ۷۰ کنکور It سال ۹۰ fulgent ۲ ۲,۴۳۸ ۲۴ فروردین ۱۳۹۶ ۱۱:۰۰ ب.ظ
آخرین ارسال: peace2013
  سوال ۴۶ گسسته کنکور ارشد مهندسی کامپیوتر سال ۹۵ mhasa ۱۳ ۸,۶۱۷ ۱۲ فروردین ۱۳۹۶ ۰۱:۵۴ ب.ظ
آخرین ارسال: ali.majed.ha
  سوال ۱۲ کنکور دکتری علوم کامپیوتر سال ۹۴ ss311 ۲ ۱,۶۱۵ ۱۵ اسفند ۱۳۹۵ ۰۳:۲۸ ب.ظ
آخرین ارسال: Jooybari
  سوال ۵ کنکور دکتری علوم کامپیوتر سال ۹۳ ss311 ۱ ۱,۳۷۰ ۰۴ اسفند ۱۳۹۵ ۱۰:۵۳ ق.ظ
آخرین ارسال: Jooybari
  سوال ۱ کنکور دکتری علوم کامپیوتر سال ۹۴ ss311 ۱ ۱,۲۲۸ ۰۴ اسفند ۱۳۹۵ ۱۰:۴۵ ق.ظ
آخرین ارسال: Jooybari

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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