Entonces, ¿quieres hacer operaciones aritméticas simples binarias usando números (números enteros?)
La notación que utilizamos (reglas PEMDAS / BODMAS) se conoce como notación infija.
- Antes de pasar al lado de las operaciones, debe tener especial cuidado con su dominio. ¿Desea poder usar enteros (en cuyo caso necesitará manejar el operador unario menos).
- Debe preocuparse por las limitaciones internas de las representaciones numéricas de su lenguaje de programación.
- Debe especificar cómo manejaría el desbordamiento, la división de subflujo por cero y otras excepciones.
- Antes de llegar al núcleo del algoritmo, un enfoque es analizar toda su entrada y usar una representación interna: un árbol binario es la estructura de datos más utilizada para este tipo de problema.
- Sin embargo, antes de poder analizar, debe convertir la cadena de entrada en tokens: números (¿está manejando números negativos, qué pasa con los decimales?) Y símbolos de entrada.
- Debe manejar los errores en la fase de análisis léxico (tokenizer) y la fase de análisis.
- ¡El núcleo del algoritmo ahora es relativamente fácil! Debe usar el mecanismo correcto para recorrer el árbol y calcular sus resultados intermedios, seguir acumulándolos, y escribir la respuesta cuando haya recorrido todo el árbol.
- Una alternativa al uso de un árbol binario y una fase de análisis distinta frente a la fase de cálculo, es usar una pila (esencialmente harás un infijo para prefijar la transformación de los tipos sobre la marcha) y usar operaciones push y pop en las coyunturas apropiadas.
He dado un resumen general del análisis requerido para resolver el problema. Dejando la solución real como ejercicio para el lector. Si el tiempo lo permite, podría poner una implementación en un lenguaje de nivel superior como prototipo.
- ¿Cómo difiere una identidad de una ecuación? Proporcione algunos ejemplos.
- ¿Qué pasa si una ecuación cuadrática tiene un número imaginario?
- ¿Es posible resolver [matemáticas] \ log_3 (x) +3 \ log_2 (7 (x + 3)) = 3 [/ matemáticas] analíticamente?
- ¿Cuáles son las soluciones para la ecuación [matemáticas] x ^ 4-8x ^ 2-6x + 9 = 0 [/ matemáticas]?
- ¿Por qué se pueden resolver algunos sistemas físicos con ecuaciones lineales?