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

 

Comentarios finales

Para finalizar, se comentará un poco las ideas para verificar si una expresión que digitó el usuario está bien escrita, lo cual no verificamos en el artículo pero sí está en el programa final. Para esto, lo que se hizo fue declarar una variable global anterior que se encarga de guardar un número dependiendo si lo último que tradujo en una expresión fue un número, un operador, etc. de la siguiente manera:

Valor Última subexpresión traducida Significa
0 nada nada
1 Número, pi, $e$, $x$ Números
2 +, -, *, /, ^, % Operadores
3 (, sen(, cos(, etc. Paréntesis de apertura
4 ) Paréntesis de cierre

De esta forma se deben cumplir las siguientes reglas:

  • Si no se había traducido nada (anterior=0) entonces se puede admitir cualquier cosa menos (+ * / ^ %).

  • Si lo anterior fue un número puede seguir cualquier cosa.

  • Si lo anterior fue un operador puede seguir cualquier cosa menos otro operador (con excepción de -).

  • Si lo anterior fue un paréntesis de apertura puede seguir cualquier cosa menos (+ * / ^ %)

  • Si lo anterior fue un cierre de paréntesis debe seguir un operador, un número (en cuyo caso hay una multiplicación oculta), un paréntesis de apertura (también hay una multiplicación oculta) u otro paréntesis de cierre, estas multiplicaciones ocultas deben ser agregadas antes de poner el número o el paréntesis.

  • Para un menos unario se debe agregar un -1 en la pila de números y un  "por'' en la de operadores (sacando los correspondientes operadores con mayor prioridad); el menos unario se da si no había nada anterior al menos o si era otro operador o un paréntesis de apertura.

El código completo con su correspondiente archivo, el archivo de prueba y la página HTML se encuentran al final de este artículo junto con el código similar en un módulo de Visual Basic que puede ser usado en cualquier programa de este lenguaje.

Otro programa recomendado que es similar al que se desarrolló en el artículo y que puede ser estudiado, bajado con su código completo y utilizado en otros programas libremente es: JEP[5]

 


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