Ejemplo n.º 1
0
        // создание из правильно введённой формулы вида x+y/5 
        // нужного списка
        // возможные ограничения - кол-во элементов в нижнем уровне (8*f, но не 1*1*1)
        // TODO: сделать нормальный нижний уровень
        public Expression(String inputString)        
        {
            String[] varsAndConsts = this.TokenizeString(inputString);

            for (int i = 0; i < inputString.Length; i++)
            {
                if (inputString[i].Equals('+') || inputString[i].Equals('-'))
                {
                    value = varsAndConsts[0];
                    int tmp; // сюда записывается результат из int.TryParse
                    code = int.TryParse(varsAndConsts[0], out tmp) ? 
                        Code.CONSTANT : Code.VARIABLE;
                    this_level = new Expression(Code.OPERATOR, 
                        inputString[i].Equals('+') ? "+" : "-");
                    this_level.this_level = new Expression(inputString.Substring(i + 1));
                    i = inputString.Length;
                }

                else if (inputString[i].Equals('*') || inputString[i].Equals('/'))
                {
                    code = Code.LOW_LEVEL;
                    int tmp; // сюда записывается результат из int.TryParse
                    low_level = new Expression(int.TryParse(varsAndConsts[0], out tmp) ?
                        Code.CONSTANT : Code.VARIABLE, varsAndConsts[0]);
                    low_level.this_level = new Expression(Code.OPERATOR,
                        inputString[i].Equals('*') ? "*" : "/");
                    low_level.this_level.this_level = new Expression(inputString.Substring(i + 1));
                    i = inputString.Length;
                }

                if (varsAndConsts.Length == 1)
                {
                    value = varsAndConsts[0];
                    int tmp; // сюда записывается результат из int.TryParse
                    code = int.TryParse(varsAndConsts[0], out tmp) ?
                        Code.CONSTANT : Code.VARIABLE;
                }
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            Expression aa = new Expression(Console.ReadLine());
            Console.WriteLine(aa.ExpressionToBracketView());

            Console.ReadKey();
        }