Esempio n. 1
0
        /**
         * \brief Функция обработки тестовых примеров.
         *
         * \param [in] example - пример в строковом виде.
         * \param [in] exampleNum - порядковый номер примера.
         */
        private void getExample(string example, int exampleNum)
        {
            Console.Write("Example " + exampleNum + ": ");
            List <string> pf = ts.getTokenSeq(example);

            pf = postfixNot.getPostfixNotation(pf);

            Console.Write(example + "\n Postfix: ");
            foreach (string el in pf)
            {
                Console.Write(el);
            }
            Console.WriteLine();

            Stack <double> res = calc.getResult(pf);

            Console.Write("Result: ");
            foreach (float f in res)
            {
                Console.Write(f);
            }
            Console.WriteLine("\n");
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            //Tests t = new Tests();
            //t.testExamples();

            TokenSequence   ts   = new TokenSequence();
            PostfixNotation pn   = new PostfixNotation();
            Calculation     calc = new Calculation();

            bool exitFlag = false;

            while (!exitFlag)
            {
                Console.WriteLine("Введите выражение для вычисления:");
                string expression = Console.ReadLine();

                List <string> tokenSeqList = ts.getTokenSeq(expression);

                tokenSeqList = pn.getPostfixNotation(tokenSeqList);

                Stack <double> result = calc.getResult(tokenSeqList);

                Console.Write("Результат: ");
                foreach (float f in result)
                {
                    Console.Write(f);
                }
                Console.WriteLine("\n");

                if (Console.ReadKey().Key == ConsoleKey.Escape)
                {
                    exitFlag = true;
                }
            }

            return;
        }