Requerimientos Funcionales:
El programa leerá las expresiones algebraicas desde un archivo de texto llamado
entrada.txt. Cada expresión estará en una línea separada.
El programa construirá un árbol de expresiones con la expresión a derivar. Se derivará cada expresión algebraica y escribirá el resultado en un archivo de texto llamado
salida.dat. Cada derivada estará en una línea separada y mantendrá el mismo orden que las expresiones originales.
El programa debe ser capaz de derivar expresiones algebraicas simples que contengan operadores básicos (+, -, *, /,^) y funciones matemáticas simples (sin, cos, tan).
Las expresiones algebraicas pueden contener variables representadas por letras del alfabeto (por ejemplo, x, y, z).
El programa debe manejar correctamente los paréntesis y seguir las reglas de la derivación para obtener el resultado correcto.
El programa debe ser capaz de manejar errores de sintaxis en las expresiones de entrada y proporcionar mensajes claros al usuario en caso de encontrar uno. Si se detecta un error de sintaxis en una línea, se aborta mostrando en el archivo
salida.dat la información correspondiente al error (línea y posición) y se continua procesando a siguiente línea.
El programa debe ser modular y estar correctamente comentado para facilitar la comprensión y el mantenimiento del código.
Debe existir un archivo llamado
arboles.dat donde se deben dibujar los arboles de todas las expresiones a derivar.
Los árboles de expresiones debem construirse con el método de gramáticas visto en clase.
Requerimientos No Funcionales:
El programa debe estar escrito en lenguaje C y seguir las mejores prácticas de programación.
El código debe ser eficiente en cuanto a uso de recursos y manejo de memoria.
El programa debe ser fácil de ejecutar y debe proporcionar instrucciones claras sobre cómo compilar y ejecutar el código.
Ejemplo de Entrada (
entrada.txt):
3*x^2 + 2*x + sin(x)
2*y^3 - 5*y^2 + 3*y
Ejemplo de Salida (
salida.dat):
6*x + 2 + cos(x)
6*y^2 - 10*y + 3
Entregables
Se debe subir un link a un directorio compartido, al cual debe tener acceso el catedrático con la siguiente información:
Directorio con el código fuente del programa
Tres directorios conteniendo cada uno una corrida de prueba, so su respectivo archivo de entrada y salida.
Contexto Geral do Projeto
Si es posible entregar el proyecto con un video explicándome como se realiza el funcionamiento, asimismo la fecha de entrega seria para el 14 de abril
Prazo de Entrega: 14 de Abril de 2025