03 تير 1390, 04:15 ب.ظ
04 تير 1390, 12:06 ق.ظ
راه اصولیش اینه که اول کدهای سه آدرسه این دستورات رو بنویسید و بعد بااستفاده از اصول بهینه سازی تعداد متغیرهای موقت رو به حداقل برسونید.اما مشکل این روش اینه که خیلی وقت گیره.
راه ساده و کنکوریش اینه که اولویت عملگرها رو در نظر بگیرید و حداقل تعداد متغیرها رو حساب کنید.یه مثال ساده می زنم:
فرض کنید قصد داریم حداقل تعداد متغیرهای موقت در محاسبه عبارت [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] به تنها یک متغیر کمکی احتیاج داریم.در ضمن جواب تست هم ۳ هست یعنی حداقل۳ تا متغیر کمکی نیاز داریم
13 بهمن 1392, 11:00 ب.ظ
(04 تير 1390 12:06 ق.ظ)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] به تنها یک متغیر کمکی احتیاج داریم
دیگه بهتر از این نمیتونم توضیح بدم
در ضمن جواب تست هم ۳ هست یعنی حداقل۳ تا متغیر کمکی نیاز داریم
15 آذر 1393, 10:06 ب.ظ
این سوالاو بوران زده با 3 تا اما مدرسان زده با 2 تا....