permita ingresar un cálculo genérico por medio de un string. El mismo permite el ingreso de múltiples términos, la utilización de paréntesis y todas las funciones admitidas . Por ejemplo, se le podrá ingresar la siguiente operación:
12.3*e^(0.5*3)*sin(12*3+0.3)
Como guía tenga en cuenta que:
Será conveniente trabajar con strings hasta obtener el resultado final. En la resolución primero deberá identificar el primer paréntesis a resolver (de no haber ningún paréntesis se debe resolver siguiéndose las reglas de prioridad de operaciones del álgebra); a continuación resolver las funciones fundamentales (potencias y trigonométricas); luego, separar en términos para resolver cada uno de ellos; y finalmente, realizar la suma de términos.
En cada uno de los pasos el contenido resuelto se devolverá en un string que servirá para reemplazar la operación evaluada dentro de la fórmula original.
Para procesar los paréntesis, desarrolle una función que responda al siguiente prototipo:
Void ObtenerInteriorParentesis(char* strFormula, char* strIntPar);
donde strFormula es el puntero a char que referencia al string leído desde teclado con la fórmula completa, y strIntPar es el puntero a char que referencia al string que encierra la fórmula parcial entre paréntesis.
Tenga en cuenta que el primero a resolver será cuando encuentre una apertura de paréntesis y luego un cierre.
Desarrolle una función que reemplace una sección de un string (una operación) por otra (su resultado), permitiendo que su tamaño sea diferente:
void ReemplazaSubString(char* strOriginal, char* strReemplazado, char* strReemplazo)
donde strOriginal es el puntero a char que referencia al string completo, strReemplazado es el puntero a char que referencia a la cadena de caracteres a ser reemplazada y strReemplazo es el puntero a char que referencia al string de reemplazo.
Otras funciones de utilidad podrían:
Verificar que la cantidad de paréntesis de apertura y cierre sean iguales.
Buscar un caracter particular dentro de un string. De esta forma podrá identificar los operadores y funciones admitidas.
Resolver los paréntesis de forma recursiva hasta eliminarlos en su totalidad.
12.3*e^(0.5*3)*sin(12*3+0.3)
Como guía tenga en cuenta que:
Será conveniente trabajar con strings hasta obtener el resultado final. En la resolución primero deberá identificar el primer paréntesis a resolver (de no haber ningún paréntesis se debe resolver siguiéndose las reglas de prioridad de operaciones del álgebra); a continuación resolver las funciones fundamentales (potencias y trigonométricas); luego, separar en términos para resolver cada uno de ellos; y finalmente, realizar la suma de términos.
En cada uno de los pasos el contenido resuelto se devolverá en un string que servirá para reemplazar la operación evaluada dentro de la fórmula original.
Para procesar los paréntesis, desarrolle una función que responda al siguiente prototipo:
Void ObtenerInteriorParentesis(char* strFormula, char* strIntPar);
donde strFormula es el puntero a char que referencia al string leído desde teclado con la fórmula completa, y strIntPar es el puntero a char que referencia al string que encierra la fórmula parcial entre paréntesis.
Tenga en cuenta que el primero a resolver será cuando encuentre una apertura de paréntesis y luego un cierre.
Desarrolle una función que reemplace una sección de un string (una operación) por otra (su resultado), permitiendo que su tamaño sea diferente:
void ReemplazaSubString(char* strOriginal, char* strReemplazado, char* strReemplazo)
donde strOriginal es el puntero a char que referencia al string completo, strReemplazado es el puntero a char que referencia a la cadena de caracteres a ser reemplazada y strReemplazo es el puntero a char que referencia al string de reemplazo.
Otras funciones de utilidad podrían:
Verificar que la cantidad de paréntesis de apertura y cierre sean iguales.
Buscar un caracter particular dentro de un string. De esta forma podrá identificar los operadores y funciones admitidas.
Resolver los paréntesis de forma recursiva hasta eliminarlos en su totalidad.