פורסם 2013 בפברואר 912 שנים שלום,מצאתי ברשת את הקוד הבא שמאפשר לי לחשב ביטויים מתמטיים פשוטים:static double Evaluate(string expression) {var loDataTable = new DataTable();var loDataColumn = new DataColumn("Eval", typeof (double), expression); loDataTable.Columns.Add(loDataColumn); loDataTable.Rows.Add(0);return (double) (loDataTable.Rows[0]["Eval"]);}איך ניתן להרחיב את הקוד כך שאני אוכל להשתמש גם במשתנים בביטוי, כלומר במקום "2+3" לשלוח לפונקציה "X +3" כש-X מוגדר לפני כן בתור 2.
פורסם 2013 בפברואר 912 שנים נשמע לי כמו דרך די עקומה לעשות משהו...אם כבר משתמשים ב-DataTable אז אפשר להשתמש בפונקציה Compute.לא עדיף להשתמש בחבילה ייעודית שיודעת לחשב ביטויים מתמטיים?
פורסם 2013 בפברואר 912 שנים מחבר האפליקציה הנ"ל היא לצורכי עבודה ואסור לי להעזר בתוכנות צד שלישי כגון NCALC.איך הפונקציה Compute נותנת פיתרון למחרוזת כגון "2*3+1"?האם אתה יכול להוסיף קוד דוגמא?
פורסם 2013 בפברואר 912 שנים http://abbyjeet.blogspot.co.il/2011/01/using-datatables-compute-method-to.html
פורסם 2013 בפברואר 912 שנים מחבר תודה על הפתרון.מה בנוגע לשאלה המקורית,האם ניתן לשלב משתנה במחרוזת למשל "2+x" כך שאוכל לקבל ערכים מהמשתמש תוך כדי ריצה?
פורסם 2013 בפברואר 912 שנים אתה יכול לעשות את זה עם החלפה פשוטה (פשוט תחליף את "x" במחרוזת בערך שאתה רוצה להשתמש בו), ואני מניח שגם אתה יכול לשים את המשתנה הזה כמידע בתוך ה-DataTable (כלומר תיצור לו DataColumn עם הגדרת המשתנה ו-DataRow עם התוכן של המשתנה) ואז אתה יכול להשתמש במידע הזה בביטוי.השאלה היא מה המטרה שלך, כי בטוח יש דרכים יותר טובות לעשות את זה.
פורסם 2013 בפברואר 912 שנים מחבר אני יוצר אפליקציה לעבודה במטרה לייעל תהליך מסויים.במסגרת הפרויקט אני יוצר מאגר מידע המבוסס על קבצי XML ובתוכו מחרוזות שהתקבלו מהמשתמש.מחרוזת דוגמא יכולה להיות "2+X/3" כש-X הוא משתנה המתקבל בזמן ריצה מהמשתמש.את המחרוזת הנ"ל אני שולח לפונקציה שאמורה להחזיר לי את התוצאה.האם ניתן?
פורסם 2013 בפברואר 912 שנים איך x מתקבל מהמשתמש? מה רע בהחלפה פשוטה של "x" במה שהמשתמש הזין (באמצעות string.replace)?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.