コード例 #1
0
        static void MathPrefixExpressions()
        {
            clsPila miPila = new clsPila();
            int     n = 0, a = 0, b = 0, r = 0;

            Console.WriteLine("Ingrese la expresión en prefix");
            string exp      = Console.ReadLine();
            char   caracter = ' ';

            for (n = exp.Length - 1; n >= 0; n--)
            {
                caracter = exp[n];
                if (caracter >= '0' && caracter <= '9')
                {
                    miPila.Push(Convert.ToInt32(caracter.ToString()));
                }
                else
                {
                    a = miPila.Pop();
                    b = miPila.Pop();

                    if (caracter == '+')
                    {
                        r = a + b;
                        miPila.Push(r);
                    }
                    if (caracter == '-')
                    {
                        r = a - b;
                        miPila.Push(r);
                    }
                    if (caracter == '/')
                    {
                        r = a / b;
                        miPila.Push(r);
                    }
                    if (caracter == '*')
                    {
                        r = a * b;
                        miPila.Push(r);
                    }
                }
            }
            miPila.Transversa();
        }
コード例 #2
0
        //EXPRESIONES
        static void Expresiones_Matematicas()
        {
            clsPila miPila = new clsPila();
            int     n = 0, a = 0, b = 0, r = 0;

            Console.WriteLine("Ingrese la expresión con simbolo de operación inicial");//indicamos que operación realizaremos mediente el simbolo
            string exp      = Console.ReadLine();
            char   caracter = ' ';

            for (n = exp.Length - 1; n >= 0; n--)
            {
                caracter = exp[n];
                if (caracter >= '0' && caracter <= '9')
                {
                    miPila.Push(Convert.ToInt32(caracter.ToString()));
                }
                else
                {
                    a = miPila.Pop();
                    b = miPila.Pop();
                    //ménu de operaciones aritmeticas
                    if (caracter == '+')
                    {
                        r = a + b;
                        miPila.Push(r);
                    }
                    if (caracter == '-')
                    {
                        r = a - b;
                        miPila.Push(r);
                    }
                    if (caracter == '/')
                    {
                        r = a / b;
                        miPila.Push(r);
                    }
                    if (caracter == '*')
                    {
                        r = a * b;
                        miPila.Push(r);
                    }
                }
            }
            miPila.Transversa();
        }