PDA

View Full Version : اولویت عملگر ها



abn.najaf
سه شنبه 17 تیر 1393, 00:19 صبح
سلام دوستان
دوستان اولویت عملگر ها تا جایی که من میدونم
1- پرانتز
2- ^
3- * / %
4- +-

عبارات مثل sin , cos , tan ,فاکتوریل و جذر اینا اولویتشون چجوری هستش

erfan_urchin
سه شنبه 17 تیر 1393, 01:27 صبح
اینا اولویت ندارن و اولویتشون با همون پرانتز معلوم میشه مثلا کد زیر
s * (Math.Sqrt(a))
اول میاد جذر a رو میگیره و بعد میاد در s ضرب میکنه
ولی مثلا کد زیر
Math.Sqrt(s * a)
اول میاد s رو در a ضرب میکنه بعد جذر میگیره

sadegh.javan
سه شنبه 17 تیر 1393, 02:19 صبح
اینا اولویت ندارن و اولویتشون با همون پرانتز معلوم میشه
اینا اولویت ندارن ولی اولویتشون با پرانتز مشخص نمیشه .
در واقع اولویت برای عملگرها صدق میکنه نه برای چیز دیگه ای .توابع عملگر نیستن .
پس اولویت ندارن .

abn.najaf
سه شنبه 17 تیر 1393, 10:30 صبح
اینا اولویت ندارن ولی اولویتشون با پرانتز مشخص نمیشه .
در واقع اولویت برای عملگرها صدق میکنه نه برای چیز دیگه ای .توابع عملگر نیستن .
پس اولویت ندارن .






خب داداش من رشته مقابل رو می خوام به postfix تبدیل کنم چجوری این کار رو انجام بدم
3+6*sin(25)^2+6

elec60
سه شنبه 17 تیر 1393, 11:02 صبح
خب داداش من رشته مقابل رو می خوام به postfix تبدیل کنم چجوری این کار رو انجام بدم
3+6*sin(25)^2+6

+ 6 + * 3 6 ^ 2 25 sin

abn.najaf
سه شنبه 17 تیر 1393, 11:28 صبح
+ 6 + * 3 6 ^ 2 25 sin
یعنی داداش sin25 یک عملوند به حساب میاد!؟؟؟؟

rahnema1
سه شنبه 17 تیر 1393, 11:42 صبح
علاوه بر تقدم، شرکت پذیری عملگرها هم اهمیت داره. مثلا شرکت پذیری علامت + از سمت چپ هست یعنی اگه پرانتز بذارید عبارتها از چپ گروه بندی میشن. برای این کار ابتدا عبارت ها را داخل پرانتز بذارید بعد به صورت postfix تبدیل کنید

sin(25)^2+6*6+3
(sin(25)^2+6*6)+3
25 sin 2 ^ 6 6 * + 3 +
]

sadegh.javan
سه شنبه 17 تیر 1393, 14:55 عصر
بله عملوند نه عملگر .
میتونی مثلا سینوس رو x در نظر بگیری و جمله پسوندی رو بسازی بعد سینوس رو محاسبه کنی و به جای x نتیجه رو بذاری .
چند تا کد هست که شاید کمکت کنه :
http://www.codeproject.com/Articles/274093/Math-Parser-NET
http://www.codeproject.com/Tips/381509/Math-Parser-NET-Csharp
کامنت ها رو هم ببین حتما ، مخصوصا اولی که یک باگ داشته !
برای دیدن همه کامنت ها باید عضوش باشی