# Math parser

Math parser es un evaluador para expresiones físicas y matemáticas utilizado en Visual Basic. El alcance del programa debe cubrir tanto las variables físicas, funciones complejas así como los operadores de tal manera que puedan ser reutilizadas.
Math parser acepta como entrada cualquier carácter que represente una expresión numérica o algebraica junto con una lista de valores de variables y regresa un valor numérico de doble precisión. Puede ser utilizado para calcular fórmulas (expresiones) dadas durante el tiempo de ejecución, por ejemplo, para trazar y tabular funciones, crear computaciones numéricas y más.
En términos generales Math parser es un evaluador numérico optimizado para evaluaciones cíclicas en el que la escritura de expresiones físicas, caracteres, constantes y unidades internacionales de medición es muy variada.

## Características

* Los nombres de las variables deben empezar con una letra pero pueden ser cualquier carácter alfanumérico.
* También se acepta el uso del símbolo “_” para escribir el nombre de las variables en un estilo de programación.
* La multiplicación implícita no es aceptada debido a su ambigüedad. Así que la expresión “xy” se refiere a una expresión llamada “xy” y no a "x*y". El símbolo de multiplicación “*” puede ser omitido sólo en el uso de coeficientes de las variables matemáticas x,y,z. Esto significa que la expresión “2x” y “2*x” son equivalentes.
* Los números constantes pueden ser enteros, decimales o exponenciales.
* En el caso de los números decimales, es posible utilizar tanto el símbolo “,” como “.”
* Se le denomina números físicos a aquellos que están acompañados de una unidad de medida. Para una mejor lectura, pueden tener espacios en blanco entre ellos o incluir factores de multiplicación como Tera, Giga, Mega, etc.
* Las funciones son llamadas por su nombre seguido de paréntesis. Sus argumentos pueden ser números, variables, expresiones, o incluso otras funciones.
* Para funciones que tienen más de un argumento, éstos deben de ser separados por comas o puntos.
* También se acepta el uso de expresiones lógicas, éstas siempre regresan un valor 1 (Verdadero) o 0 (falso). Expresiones compactas tales como “0<x<1” pueden ser soportadas. Es posible introducir “0<x<1” o (0<x)*(x<1).
* El rango numérico puede ser declarado usando símbolos lógicos o alguna función booleana.
* El porcentaje simplemente regresa el argumento dividido entre cien.
* Las constantes matemáticas tales como Pi, deben tener por sufijo el símbolo “#”.
* Los ángulos pueden ser expresados tanto en radianes como en grados sexagesimales o centesimales, o bien en el formato ddmmss.
* Las funciones multivariables son reconocidas, siempre que los argumentos sean separados por comas.
* Las funciones de tiempo indican la fecha y hora. No tienen argumento alguno y son reconocidas como constantes.

## Aplicaciones

* Evaluación de funciones
El usuario introduce una expresión matemática con variables como "x", "y" y "z" asignando diferentes valores en Visual Basic utilizando el lenguaje de programación propio. Esta expresión se crea durante el tiempo de ejecución y es interpretada por el Math parser.
* Aproximación de series
El programa debe realizar varios cálculos de la misma expresión para varios valores, es decir, realizar una evaluación cíclica. La respuesta final puede ser un resultado numérico o bien, un mensaje de error.