Ciao a tutti ragazzi.

Ci sarebbe qualcuno che mi illustrerebbe come realizzare una funzione C che, presi in input una stringa rappresentante una funzione matematica ed un valore numerico, restituisca il valore della funzione matematica per quel valore numerico?

Per farmi capire...

Se la funzione avrà forma:

codice:
double Calcola(char *stringa, double x)
{
   .......
   .......
}
allora la chiamata:
codice:
Calcola("3*x + x^2", 2);
dovrà restituire il valore 14.


L'esempio che ho fatto è semplice, ma il valutatore di espressioni che mi occorre dovrebbe funzionare con le 4 operazioni di base (+, -, *, /) e almeno le seguenti altre: sin, cos, log, sqrt, e ^. Ho però il vantaggio che so a priori che sarà chiamato sempre su funzioni con una singola incognita di nome x.

Qualcosa ho trovato in rete ma non riesco ad adattare niente di quello che ho trovato alle mie esigenze, ovvero realizzare la singola funzione con i due parametri char * e double.

Help me, please!