Hola CompSystems,
no me ha quedado clara la idea... La idea es que el usuario ingrese mediante el teclado una función (f(x)) y el programa luego la usa internamente para procesar datos?
Si la respuesta es afirmativa, entonces Darkman_A está en lo correcto y estás equivocado en la forma en que funcionan las cosas.Tal vez si estuvieses en un lenguaje scripting, lo que buscas hacer se podría resolver inmediatamente, pero deberías detenerte a pensar en que:
Qué es lo que el usuario ingresa?
Asumiendo que es la ecuación, el programa aún así lo único que entenderá es que es un String. Los humanos podemos resolverla porque tenemos los conocimientos adquiridos para entender que aún siendo texto, se trata de una ecuación y podemos interpretar las partes, orden de las operaciones, etc hasta llegar a los resultados posibles. No pasa lo mísmo en el algortimo.
No confundamos un ingreso de ecuación desde el código fuente con uno por consola durante la ejecución del programa! El primero sucede en tiempo de compilación, y el segundo durante tiempo de ejecución. Esto significa que si ponemos una ecuación en el código, como los ejemplos que has puesto:
fx = (x-3.0*x*x);
quien se encarga de desglosar e interpretar dicha ecuación es el COMPILADOR, quien convierte ese texto (string) en operaciones que el procesador pueda entender y finalmente obtiene el resultado. Pero cuando le pides al usuario que las ingrese por teclado en tiempo de ejecución, el COMPILADOR no existe, no ocurre un compilado del texto ingresado por el usuario. Lo único que existe y ve el programa es un string ingresado por el usuario. No tiene la menor idea de lo que es, más que un mero string.
En el proyecto que hice:
Calculadora científica y graficadora 2D/3D con PIC tuve que implementar todo el código para un PARSEADOR, que es lo que vas a necesitar para poder convertir la ecuación ingresada (notación infija) a otro formato llamado notación posfija, que resulta mucho más sencilla de procesar para un computador, mediante lo que se llama luego EVALUADOR, que es quien ejecuta las operaciones matemáticas y reemplaza incógnitas, constantes, etc, para ir obteniendo el/los resultados de la ecuación.
Acá tenés un link que use yo en su momento para entender cómo lograrlo:
http://www.tec-digital.itcr.ac.cr/revistamatematica/ContribucionesV7_n2_2006/Parseador/node2.htmlObviamente, la ventaja de programar para PC es que los recursos son mucho más abundantes, tanto en hardware como en software, y ya existen librerías que se encargan de lograrlo.
Puedes googlear por "Equation Parser" si deseas investigar más sobre el asunto. Aquí hay una lib:
http://muparser.beltoforion.de/Como verás, ingresar una ecuaciónn por teclado/texto y hacer que el programa la resuelva, no es para nada similar a hacerlo dentro del código fuente.
Saludos.