Расчет формулы по значениям ячеек - C#
Формулировка задачи:
Программа такая:
Вводим 9 ячеек под названием A0, A1, A2, ..A8; (забиваем их числами).
Далее вводим целевую ячейку под названием A9, в ней должна храниться формула с использованием предыдущих ячеек (не обязательно всех).
Например:
A0 = 1 A1 = 5 A2 = 8 A3 = 0 A4 = 6 A5 = 10 A6 = 7 A7 = 12 A8 = 11
A9 = (A2 + A6)/A1
Результат число:
3.
Решение задачи: «Расчет формулы по значениям ячеек»
textual
Листинг программы
double A0 = 1, A1 = 5, A2 = 8, A3 = 0, A4 = 6, A5 = 10, A6 = 7, A7 = 12, A8 = 11;
string formula = "(A2 + A6)/A1";
LambdaExpression lambda = System.Linq.Dynamic.DynamicExpression.ParseLambda(
new ParameterExpression[] {
ParameterExpression.Variable(typeof(double), "A0"),
ParameterExpression.Variable(typeof(double), "A1"),
ParameterExpression.Variable(typeof(double), "A2"),
ParameterExpression.Variable(typeof(double), "A3"),
ParameterExpression.Variable(typeof(double), "A4"),
ParameterExpression.Variable(typeof(double), "A5"),
ParameterExpression.Variable(typeof(double), "A6"),
ParameterExpression.Variable(typeof(double), "A7"),
ParameterExpression.Variable(typeof(double), "A8"),
},
typeof(double),
formula
);
double A9 = (double)lambda.Compile().DynamicInvoke(A0,A1,A2,A3,A4,A5,A6,A7,A8);