تالار گفتمان مانشت
تست سال ۸۶ - نسخه‌ی قابل چاپ

تست سال ۸۶ - - rasool - - 03 تیر ۱۳۹۰ ۰۴:۱۵ ب.ظ

خسته نباشید

لطف کنید و این سوال و کلا سوالهای این سبکی رو بفرمایید چطوری حل می شوند.

سپاس

RE: تست سال ۸۶ - mfXpert - 04 تیر ۱۳۹۰ ۱۲:۰۶ ق.ظ

راه اصولیش اینه که اول کدهای سه آدرسه این دستورات رو بنویسید و بعد بااستفاده از اصول بهینه سازی تعداد متغیرهای موقت رو به حداقل برسونید.اما مشکل این روش اینه که خیلی وقت گیره.
راه ساده و کنکوریش اینه که اولویت عملگرها رو در نظر بگیرید و حداقل تعداد متغیرها رو حساب کنید.یه مثال ساده می زنم:
فرض کنید قصد داریم حداقل تعداد متغیرهای موقت در محاسبه عبارت [tex]a-b*(c d)[/tex]
رو حساب کنیم.اول باید حاصل عبارت داخل پرانتز رو به دست بیاریم و در متغیر فرضا t1 قرار بدیم. بعد حاصل ضرب b در حاصل پرانتز یا همون t1 رو به دست بیاریم و در t1 قرار می دیم و در نهایت t1 رو از a کم می کنیم و نتیجه رو در متغیر t1 قرار می دیم.کدش به صورت زیر هستش:
t1=c+d
t1=b*t1
t1=a-t1
پس برای محاسبه عبارت [tex]a-b*(c d)[/tex] به تنها یک متغیر کمکی احتیاج داریم.

در ضمن جواب تست هم ۳ هست یعنی حداقل۳ تا متغیر کمکی نیاز داریم

RE: تست سال ۸۶ - zahra2012 - 13 بهمن ۱۳۹۲ ۱۱:۰۰ ب.ظ

(۰۴ تیر ۱۳۹۰ ۱۲:۰۶ ق.ظ)mfXpert نوشته شده توسط:  راه اصولیش اینه که اول کدهای سه آدرسه این دستورات رو بنویسید و بعد بااستفاده از اصول بهینه سازی تعداد متغیرهای موقت رو به حداقل برسونید.اما مشکل این روش اینه که خیلی وقت گیره.
راه ساده و کنکوریش اینه که اولویت عملگرها رو در نظر بگیرید و حداقل تعداد متغیرها رو حساب کنید.یه مثال ساده می زنم:
فرض کنید قصد داریم حداقل تعداد متغیرهای موقت در محاسبه عبارت [tex]a-b*(c d)[/tex]
رو حساب کنیم.اول باید حاصل عبارت داخل پرانتز رو به دست بیاریم و در متغیر فرضا t1 قرار بدیم. بعد حاصل ضرب b در حاصل پرانتز یا همون t1 رو به دست بیاریم و در t1 قرار می دیم و در نهایت t1 رو از a کم می کنیم و نتیجه رو در متغیر t1 قرار می دیم.کدش به صورت زیر هستش:
t1=c+d
t1=b*t1
t1=a-t1
پس برای محاسبه عبارت [tex]a-b*(c d)[/tex] به تنها یک متغیر کمکی احتیاج داریم
دیگه بهتر از این نمیتونم توضیح بدم

در ضمن جواب تست هم ۳ هست یعنی حداقل۳ تا متغیر کمکی نیاز داریم
به نظرتون با دو تا متغیر کمکی نمیشه حلش کرد اگه نمیشه چرا سه تا می خواد؟

RE: تست سال ۸۶ - ریحان - ۱۵ آذر ۱۳۹۳ ۱۰:۰۶ ب.ظ

این سوالاو بوران زده با ۳ تا اما مدرسان زده با ۲ تا....