★ APPLICATIONS ★ DIVERS ★ EVALUADOR DE EXPRESIONES ★ |
Evaluador De Expresiones : Usando La Notacion Polaca Inversa (Amstrad Semanal) | Applications Divers |
Todo el mundo está acostumbrado a utilizar una notación determinada, que llamamos algebráica y en la cual el operador está situado entre los operandos. Pero existen otros tipos de notación, como la polaca inversa o postfija. En este artículo vamos a intentar exponer cómo funciona esta forma de operar, sin intentar averiguar si es mejor o peor que otras notaciones. La notación polaca inversa Esta notación es llamada polaca en honor al polaco Lukasievisz, que fue el inventor de este tipo de notación. Veamos unos ejemplos utilizando ambas notaciones:
Parece un poco complicado, pero con un poco de práctica nos resultará lo más natural del mundo. A primera vista se puede ver que esta notación «pasa de los paréntesis, no le hacen ninguna falta, ya que la RPN (Reverse Polish Notation, utilizamos las siglas inglesas, yo que las españolas no son utilizadas normalmente) emplea un método de evaluación que los hace innecesarios. Para esto utiliza un método algo peculiar, vea-moslo en forma de algoritmo: — Seguir la expresión de izquierda a derecha. El único número que tendremos en la pila al finalizar las operaciones será el resultado. Veamos ahora el programa en forma de algoritmo, como ya es habitual en esta serie. Introduccir número En esta opción se comprobará que el carácter tecleado sea un número, la letra E o un punto, introduciéndolo el número tecleado en la pila. — Mientras que no exista condición de salida. Se genera un error de código 151 si se llena la pila. — Mientras no haya condición de salida. Extraer operador
— Ir a la subrutina. Coger operadores Esta subrutina comprueba que haya los operadores necesarios para efectuar el cálculo, si no los hay genera el error número 50. — Coger los dos operadores superiores de la pila. Conclusiones Hay bastantes más subrutinas de las explicadas pero éstas son para el manejo interno del programa. Esta notación es utilizada por lenguajes de todos conocidos como Logo, recordad las instrucciones aritméticas de este lenguaje, en las que primero se introduce la operación a realizar. Esta notación es una variante de la RPN llamada notación prefija. Otro lenguaje que se sirve de la RPN es el Forth, lenguaje rápido donde los haya. El programa se hizo con las operaciones básicas, no habiendo ningún tipo de dificultad en añadir otras operaciones, la única limitación es que se deben referenciar con una sola letra, esta letra se añadirá a la variable BUSCA$, creándose la subrutina para el tratamiento de esta nueva operación.
|