public static RPN CreateRPN(string input) { RPN rpn = new RPN(); rpn.Expression = rpn.StandartToRPN(input); rpn.CreateAst(); return(rpn); }
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); } }
/// <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()); }
public static RPN GetRPN(string formula) { return(RPN.CreateRPN(formula)); }
public RPNFunction(string name, RPN function, int neededArgs) { this.Name = name; this.Function = function; this.NeededArgs = neededArgs; }