PDA

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



ASKaffash
دوشنبه 18 خرداد 1388, 09:13 صبح
سلام
مدتی است که در چند تالار مشاهده میکنم که دوستان در نرم افزارهای متفاوت از جمله یک سیستم حقوق و ... قصد محاسبه یک عبارت محاسباتی (فرمول) را دارند بنابراین راه حل ذیل را که حدود 5 سال قبل ایجاد کرده ام را به دوستان آموزش میدهم :
شایان ذکر است این مثال به زبان #C و بانک SQLServer است ولی برای هر زبان و هر بانک
اطلاعاتی مثل اکسس و اراکل و ... نیز قابل استفاده است (با کمی تغییرات)
در این روش شما از طریق زبان برنامه نویسی کلیه متغیرها را ترجمه کرده و یک رشته ساده مثل:
1.234*2.33+2767-88
میسازید حال رشته را به بانک اطلاعاتی ارسال تا محاسبه و نتیجه را باز گرداند
به همین سادگی :
مثال ذیل را ملاحظه کنید :


float X = 1.23f, Y = 1.345f;
String Formula = @"3*X*Y+Sin(X/Y)+1.7*Power(X,2)-Y";
Formula = Formula.Replace("X", X.ToString());
Formula = Formula.Replace("Y", Y.ToString());
SqlConnection C = new SqlConnection("Data Source=.;Initial Catalog=master;Integrated Security=True");
C.Open();
this.Text = new SqlCommand("Select " + Formula, C).ExecuteScalar().ToString();
C.Close();

حال شما این کد را دستکاری کنید و حالتهای پیشرفته تری ایجاد کنید .

In_Chan_Nafar
دوشنبه 18 خرداد 1388, 11:34 صبح
شما مي توانيد از VB Script به صورت Runtime استفاده كنيد و يا از كدهاي C# و يا VB.net به صورت Runtime استفاده كنيد

ASKaffash
دوشنبه 18 خرداد 1388, 12:12 عصر
سلام
ولی فرض براین است که End User فقط میتواند یک فرمول تعریف کند(مثل یک حسابدار در سیستم حقوق و دستمزد)

iroonidotnet
دوشنبه 18 خرداد 1388, 19:25 عصر
In_Chand_Nafar لطفا در باره روشتون بیشتر توضیح بدین . ممنون

dehghanimeh
دوشنبه 18 خرداد 1388, 20:18 عصر
دوست عزیز سلام
من با دیدن تاپیک شما خیلی خوشحال شدم
چون توی تاپیک زیر درمورد فرمول نویسی در برنامه به جایی نرسیدم
ممنمون میشم اگر توضیح بیشر در مورد کارتون یا پاسخی به سوال من بدید
با تشکر
http://barnamenevis.org/forum/showthread.php?t=162309

adinochestva
دوشنبه 18 خرداد 1388, 20:33 عصر
روش جالبی بود ولی استفاده از Acid math parser هم بدک نیست : http://blueanalysis.com/acidlibrary.php
یا http://www.unisoftplus.com/uspexpress/
یا http://www.codeproject.com/KB/cs/MathParser.aspx

dehghanimeh
دوشنبه 18 خرداد 1388, 20:35 عصر
منظور دوستمون از VB Script به صورت Runtime چیه
میشه یک مثال ساده بیان کنید