PDA

View Full Version : فرمول نويسي و اجرايي آن



mehdi_522
دوشنبه 16 آذر 1388, 10:22 صبح
با سلام به دوستان من دارم يك برنامه محاسبه مينويسم بعد ميخواهم كه كاربر فرمول هاي خودش بنويسه اما از اين روش استفاده كردم اما نمي دانم چطور بايد اين فرمول را اجرا كنم چون فرمول بصورت رشته اي مي باشه



int A = 10;
int B = 10;
string formula = @"A*10+B";
formula = formula.Replace("A", A.ToString());
formula = formula.Replace("B", B.ToString

ايا كسي از دوستان هسته بگه چطور ميشه يك برنامه فرمول نويسي ايجاد البته اين متغيرها در ديتا بيس ذخيره شده است

ASKaffash
دوشنبه 16 آذر 1388, 10:29 صبح
سلام
با فرمول بعدا میخواهید چکار کنید ؟ اگر مثلا یک DLL است که با تعدادی کلاس و متد و ... میخواهد انتگرال عددی یک تابع (F(x را حساب کند میتوان از Delegate استفاده کرد در غیر اینصورت متناسب با مسئله باید راه حل انتخاب کرد

mehdi_522
دوشنبه 16 آذر 1388, 11:25 صبح
با سلام به دوستان من دارم يك برنامه محاسبه مينويسم بعد ميخواهم كه كاربر فرمول هاي خودش بنويسه اما از اين روش استفاده كردم اما نمي دانم چطور بايد اين فرمول را اجرا كنم چون فرمول بصورت رشته اي مي باشه



int A = 10;
int B = 10;
string formula = @"A*10+B";
formula = formula.Replace("A", A.ToString());
formula = formula.Replace("B", B.ToString

ايا كسي از دوستان هسته بگه چطور ميشه يك برنامه فرمول نويسي ايجاد البته اين متغيرها در ديتا بيس ذخيره شده است




بيشتر ميخوهم براي برنامه حقوق و ىستمؤى فرمول نويسي كنم

ASKaffash
دوشنبه 16 آذر 1388, 11:48 صبح
سلام
اگر اینطور باشد به نظرم به شدت کند میشود (من مشابه اینکار را دیده ام اصلا جالب نیست)

hamedsabzian
دوشنبه 16 آذر 1388, 16:44 عصر
سلام
یه راه اینه که یه برنامه ساده با c یا هر زبونی که کامپایلرشو داری بنویسی بعد مثلا یه جا رو توی سورسش برای تعریف متغیر ها و یه جارم واسه نوشتن فرمول مشخص کنی. حالا بعد از گرفتن فرمول از کاربر اون رو توی فایل برنامه replace کنی و برنامه رم اجرا کنی. البته بدیهی که باید مقدار متغیر ها رو از یه طریقی بدی. مثلا یه فایل. و باید بگی که مقدار بدست اوده واسه فرمول رو تو یه فایل دیگه یا مثلا یه port بنویسه تا توی برنامه ی اولت بتونی از اون استفاده کنی.
کلک رشتی بدی نیست. ولی مشکل سرعت داره. با این حال می ارزه که درگیر نوشتن مفسر برای فرمول نشی.
خودم این کار رو با C تو محیط لینوکس واسه رسم نمودار انجام دادم. سرعتش بد نبود!

fjm11100
چهارشنبه 18 آذر 1388, 08:59 صبح
تا جایی که من میدونم در دات نت میشه در زمان اجرا کد C# یا VB.net را run کرد. یعنی شما میتونی فرمت فرمولت را به فرمت زبان دربیاری و اجراش کنی.
اما راه بهتر و تمیزتر اینه که بتونی مثل یک parser عمل کنی.

khmahdi
چهارشنبه 18 آذر 1388, 20:38 عصر
این dll بعد از dll ماکروسافت بهترین dll ایه که تو زمینه ی pars دیدم
احتمال زیاد بدرتون می خوره

Sorenaa_s
پنج شنبه 19 آذر 1388, 00:58 صبح
اگر فرمولی که دارید به همین سادگیه و دوست ندارید درگیر Pars کردن رشته هم بشید، و ضمنا تو برنامتون به Database هم متصل هستید، می تونید از SQL Statement استفاده کنید:


SELECT 1 + 100 / 2 AS Field1

اینجوری Parser پایگاه داده خودش زحمت Pars کردن رو میکشه!