Cómo evaluar expresiones matemáticas ... |
||||
|
Inicio 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Se tomará como segundo ejemplo una expresión con más elementos, por ejemplo:
1+3*tan(2*(1+)-1)
En este caso se toma el 1, el + y el 3
Sigue la multiplicación, pero esta sólo saca la potencia y las de su mismo nivel por lo que no saca la suma, simplemente se agrega a los operadores
Sigue la función tangente que se maneja dentro de los operadores como un paréntesis que abre (en la pila le quitamos el paréntesis que en postfijo no se necesita)
Ahora se deben incluir el 2 y el *. A la hora de incluir *, tangente no funciona como un operador sino como el inicio de otra expresión por lo que * no lo puede sacar; aquí no hay problema con la función prioridad porque a tan le asignaría un -1 que no lo saca nadie. También se agrega el paréntesis de apertura
Ahora incluimos el 1, el + y la
Viene el cierre de paréntesis, este sacaría todos los elementos hasta que haya una apertura (un paréntesis o una función). En este caso solo debe sacar el + y se quita el paréntesis de la pila.
Sigue un - que tiene menor prioridad que el *, por lo que tenemos que sacar la multiplicación antes de meter el menos.
Sigue un uno y luego un cierre de paréntesis que sacaría hasta tangente. En este caso, se debe sacar el menos que queda; la tangente, contrario al paréntesis de apertura, se debe agregar al final del texto para que se evalúe en la expresión.
Aquí se acaba la expresión por lo que se debe sacar todo lo que queda, obteniendo como resultado "1 3 2 1 + * 1 - tan * +''
Se tomará como segundo ejemplo una expresión con más elementos, por ejemplo:
1+3*tan(2*(1+)-1)
En este caso se toma el 1, el + y el 3
Sigue la multiplicación, pero esta sólo saca la potencia y las de su mismo nivel por lo que no saca la suma, simplemente se agrega a los operadores
Sigue la función tangente que se maneja dentro de los operadores como un paréntesis que abre (en la pila le quitamos el paréntesis que en postfijo no se necesita)
Ahora se deben incluir el 2 y el *. A la hora de incluir *, tangente no funciona como un operador sino como el inicio de otra expresión por lo que * no lo puede sacar; aquí no hay problema con la función prioridad porque a tan le asignaría un -1 que no lo saca nadie. También se agrega el paréntesis de apertura
Ahora incluimos el 1, el + y la
Viene el cierre de paréntesis, este sacaría todos los elementos hasta que haya una apertura (un paréntesis o una función). En este caso solo debe sacar el + y se quita el paréntesis de la pila.
Sigue un - que tiene menor prioridad que el *, por lo que tenemos que sacar la multiplicación antes de meter el menos.
Sigue un uno y luego un cierre de paréntesis que sacaría hasta tangente. En este caso, se debe sacar el menos que queda; la tangente, contrario al paréntesis de apertura, se debe agregar al final del texto para que se evalúe en la expresión.
Aquí se acaba la expresión por lo que se debe sacar todo lo que queda, obteniendo como resultado "1 3 2 1 + * 1 - tan * +''
Cidse - Revista virtual Matemática, Educación e Internet - ITCR
|