示例#1
0
        public static RPN CreateRPN(string input)
        {
            RPN rpn = new RPN();

            rpn.Expression = rpn.StandartToRPN(input);
            rpn.CreateAst();
            return(rpn);
        }
示例#2
0
 public double this[params Tuple <string, double>[] args]
 {
     get
     {
         RPN r = this.MemberwiseClone() as RPN;
         foreach (var arg in args)
         {
             r.SetVariable(arg.Item1, arg.Item2);
         }
         r.Execute();
         return(r.Result);
     }
 }
示例#3
0
        /// <summary>
        /// Функция возвращает результат вычисления формулы по известным значениям параметров
        /// </summary>
        /// <param name="formula">Строковое представление формулы</param>
        /// <param name="values">Набор значений параметров (значения тригонометрических функций в радианах)</param>
        /// <returns></returns>
        public static string Analysator(string formula, string[] values)
        {
            string Result = string.Empty;

            RPN rpn = RPN.CreateRPN(formula);

            if (!rpn.SetVariables(values))
            {
                return(rpn.Errors);
            }

            rpn.Execute();
            return(Result = rpn.Result.ToString());
        }
示例#4
0
 public static RPN GetRPN(string formula)
 {
     return(RPN.CreateRPN(formula));
 }
示例#5
0
 public RPNFunction(string name, RPN function, int neededArgs)
 {
     this.Name       = name;
     this.Function   = function;
     this.NeededArgs = neededArgs;
 }