예제 #1
0
        static void Main(string[] args)
        {
            var calc = new CalcString(new PolishNotationConvertor());

            calc.Operators.Add(new Operator('^', (a) => Math.Pow(a[0], a[1]), 2, Priority.Highest)); //Пример добавления нового оператора
            calc.Operators.Add(new Operator('%', (a) => a[0] % a[1], 2, Priority.Highest));
            calc.Operators.Add(new Operator('s', (a) => Math.Sqrt(a[0]), 1, Priority.Highest));      //Добавление унарного оператора

            Console.Write("Введите строку для расчета. Для выхода введите \"exit\".\n> ");
            string s = Console.ReadLine();

            while (s.ToLower() != "exit")
            {
                try
                {
                    Console.WriteLine("> " + calc.Calculate(s));
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Ошибка: " + ex.Message);
                }
                Console.Write("> ");
                s = Console.ReadLine();
            }
        }
예제 #2
0
 public void CalculateMethodBaseOperationTest()
 {
     Assert.AreEqual(5, calc.Calculate("3+2"));
     Assert.AreEqual(1, calc.Calculate("3-2"));
     Assert.AreEqual(6, calc.Calculate("3*2"));
     Assert.AreEqual(1.5, calc.Calculate("3/2"));
 }