PDA

View Full Version : سوال: مشکل در ساخت ماشین حساب مهندسی



daniyaltjm
یک شنبه 27 تیر 1395, 08:23 صبح
سلام دوستان من یه ماشین حساب در سی شارپ درست کردم ولی درست کار نمیکنه من می خوام جملات ریاضی مثل 2+5*8/6+3 رو بدون استفاده از درخت، لیست پیوندی و اینا و فقط با یک ارایه از نوع رشته انجام بدم آیا امکانش هست؟ مثلا یه ارایه از نوع رشته بسازم با تعداد 10000 خانه و هم اعداد و هم عملگرها رو داخلش بریزم وبعد با یک حلقه و دستورات شرطی بر اساس اولویت تقدم عملگرها دو تا دوتا عملیات مثلا ضرب ، منها و ... رو انجام بدم به این صورت که حلقه شروع به پیماش کنه و اول هرجا * یا / یا ) رو دید بیاد خانه قبل از مثلا * رو ضرب کنه در خانه بعد از * و بریزه توی یک متغیر از نوع دسیمال و برای بقیه عملگرا هم به همین صورت ... ایا امکان پذیره از لحاظ تئوری؟ اگه اره پس کمک کنید یه شبه کد بنویسد حتما ممنون.

mr_ayma
یک شنبه 27 تیر 1395, 08:39 صبح
سلام ، به نظرم راههای اسونتری وجود داره . مثلا قدیما تو Vb6 برای همچین کارایی math parser داشتیم؛ فکر می کنم تو سی شارپ هم هست . ایجوری بود که یه عبارت ریاضی رو به صورت رشته می نوشتی و به کمک اون قابلیت ، حاصل عبارت رو می دیدی

http://www.mathparsers.com/math-parser-for-csharp-dotnet

daniyaltjm
یک شنبه 27 تیر 1395, 17:17 عصر
با استفاده از
Microsoft Script Control 1.0 تونستم انجام بدم به این صورت:

روی نام پروژه راست کلیک کرده، روی add a reference راست کلیک کنید . از کادر باز شده به تب COM بروید ، Microsoft Script Control 1.0" را یافته و پروزه خود اضافه کنید


MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
sc.Language = "VBScript";
string expression = "1 + 2 * 7";
object result = sc.Eval(expression);
MessageBox.Show(result.ToString());



من می خوام با استفاده از آرایه خودم این کارو انجام بدم حداقل برای + - * / میشه؟ چطور؟