۰
subtitle
ارسال: #۱
  
تست سال ۸۶
خسته نباشید
لطف کنید و این سوال و کلا سوالهای این سبکی رو بفرمایید چطوری حل می شوند.
سپاس
لطف کنید و این سوال و کلا سوالهای این سبکی رو بفرمایید چطوری حل می شوند.
سپاس
۰
ارسال: #۲
  
RE: تست سال ۸۶
راه اصولیش اینه که اول کدهای سه آدرسه این دستورات رو بنویسید و بعد بااستفاده از اصول بهینه سازی تعداد متغیرهای موقت رو به حداقل برسونید.اما مشکل این روش اینه که خیلی وقت گیره.
راه ساده و کنکوریش اینه که اولویت عملگرها رو در نظر بگیرید و حداقل تعداد متغیرها رو حساب کنید.یه مثال ساده می زنم:
فرض کنید قصد داریم حداقل تعداد متغیرهای موقت در محاسبه عبارت [tex]a-b*(c d)[/tex]
رو حساب کنیم.اول باید حاصل عبارت داخل پرانتز رو به دست بیاریم و در متغیر فرضا t1 قرار بدیم. بعد حاصل ضرب b در حاصل پرانتز یا همون t1 رو به دست بیاریم و در t1 قرار می دیم و در نهایت t1 رو از a کم می کنیم و نتیجه رو در متغیر t1 قرار می دیم.کدش به صورت زیر هستش:
در ضمن جواب تست هم ۳ هست یعنی حداقل۳ تا متغیر کمکی نیاز داریم
راه ساده و کنکوریش اینه که اولویت عملگرها رو در نظر بگیرید و حداقل تعداد متغیرها رو حساب کنید.یه مثال ساده می زنم:
فرض کنید قصد داریم حداقل تعداد متغیرهای موقت در محاسبه عبارت [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: تست سال ۸۶
(۰۴ تیر ۱۳۹۰ ۱۲:۰۶ ق.ظ)mfXpert نوشته شده توسط: راه اصولیش اینه که اول کدهای سه آدرسه این دستورات رو بنویسید و بعد بااستفاده از اصول بهینه سازی تعداد متغیرهای موقت رو به حداقل برسونید.اما مشکل این روش اینه که خیلی وقت گیره.به نظرتون با دو تا متغیر کمکی نمیشه حلش کرد اگه نمیشه چرا سه تا می خواد؟
راه ساده و کنکوریش اینه که اولویت عملگرها رو در نظر بگیرید و حداقل تعداد متغیرها رو حساب کنید.یه مثال ساده می زنم:
فرض کنید قصد داریم حداقل تعداد متغیرهای موقت در محاسبه عبارت [tex]a-b*(c d)[/tex]
رو حساب کنیم.اول باید حاصل عبارت داخل پرانتز رو به دست بیاریم و در متغیر فرضا t1 قرار بدیم. بعد حاصل ضرب b در حاصل پرانتز یا همون t1 رو به دست بیاریم و در t1 قرار می دیم و در نهایت t1 رو از a کم می کنیم و نتیجه رو در متغیر t1 قرار می دیم.کدش به صورت زیر هستش:
t1=c+dt1=b*t1t1=a-t1پس برای محاسبه عبارت [tex]a-b*(c d)[/tex] به تنها یک متغیر کمکی احتیاج داریم
دیگه بهتر از این نمیتونم توضیح بدم
در ضمن جواب تست هم ۳ هست یعنی حداقل۳ تا متغیر کمکی نیاز داریم
۰
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close