Cómo evaluar expresiones matemáticas ...

 

MSc. Alexander Borbón Alpízar.

   
Inicio  1  2  3  4  5  6  7  8  9  10  11  12 13 14

 

Una expresión simple

Como primer ejemplo se va a traducir una expresión simple como 3*x+4, la prioridad indica que primero se tiene que hacer la multiplicación y luego la suma; para esto, recuerde que la función le asigna prioridad 0 a la suma y 1 a la multiplicación y se dará la regla que una prioridad inferior saca de la pila cualquier operación con prioridad igual o superior a ella.

Dado esto, se pueden notar que:

  1. Los operadores "+'' y "-'' son los que tienen menor prioridad (0), por lo que siempre sacarán todos los operadores precedentes.

  2. Los operadores "*'', "/'' y "%'' sacan a la potencia "^'' y a ellos mismos.

  3. El operador "^'' es el que tiene mayor prioridad, no saca a nadie, ni siquiera a sí mismo ya que la prioridad para realizar las potencias es de derecha a izquierda (contrario a todas las demás operaciones matemáticas), es decir: $2^{3^4}=2^{\left( 3^4 \right)}$ o de manera escrita 2^3^4=2^(3^4)

Por lo tanto, se van a sacar los elementos de la expresión 3*x+4; primero se toma el 3 y se introduce en la pila de números, luego se toma el * y se mete en la pila de operadores, se obtiene

  Números  
3

   Operadores   
*

Luego se saca la $x$, ésta se debe manejar como un número pues cuando se evalúe así será, esta se mete en la pila de números

  Números  
$x$
3

 Operadores  
*

Ahora se debe sacar un + que se tendría que introducir en la pila de operadores, pero tiene prioridad cero que es menor que la prioridad de la multiplicación (que es 1), por lo que la multiplicación se debe hacer antes que la suma (la multiplicación tienen prioridad sobre la suma). Para este caso se sacan dos números de la pila y los "multiplicamos'' obteniendo "3 $x$ *'' (recuerde que en realidad manejamos texto, cuando se dice que lo multiplicamos se quiere decir que se escribe la multiplicación en notación postfija). El resultado se introduce en la pila como un número (ahora se maneja como si toda esta expresión fuera un número porque es como si ya se hubiera evaluado) y la suma se mete en la pila de operadores, se obtienen las pilas

Números
3 $x$ *

Operadores
+

Ahora se saca el número 4 y se mete en la pila de números

Números
4
3 $x$ *

Operadores
+

Aquí ya se acaba la expresión por lo que se saca todo lo que queda en la pila. Para cada operador se deben tomar los valores necesarios de la pila de números; en este caso sólo hay una suma y dos números, al realizar la operación se sacan los dos números y se escribe en postfijo "3 $x$ * 4 +'' pues se colocan los dos números primero y luego la operación.


Inicio 1  2  3  4  5  6  7  8  9  10  11  12 13 14


Cidse - Revista virtual Matemática, Educación e Internet - ITCR
Derechos Reservados