evaluer une fonction mathematique

evaluer une fonction mathematique - C++ - Programmation

Marsh Posté le 09-02-2003 à 16:34:57    

'lut tout le monde,
je debute en C  
 
j'aimerais faire un prog qui me permet de rentrer une fonction genre (2*x^3-5x²+4 par exemple)
et ensuite en demandant  une borne inf et sup le prog evalue tt les valeurs (de 1 en 1) de cette fonction..
 
 
donc tout d'abord je me demande comment on peut passer une fonction au programme (un scanf surement) et ensuite evaluer cete fonction pour une valeur donnée.
 
si qq'un pouvait m'eclairer la dessus ca serait sympas
merci bien
 
 
 
 

Reply

Marsh Posté le 09-02-2003 à 16:34:57   

Reply

Marsh Posté le 09-02-2003 à 17:17:19    

En C c'est un peu dur pour un débutant.
Il faut analyser la chaîne entrée, construire un arbre d'évaluation puis l'évaluer.

Reply

Marsh Posté le 09-02-2003 à 17:30:29    

verdoux > pour une expression numérique, je pense que l'arbre est superflu. une simple pile suffit (enfin c'est mon avis hein)
 
swich > voici un algo grossier :
 
- tu créé une structure : un membre pour le type de token (opérateur ou opérande) et un autre membre pour la valeur de l'opérande
- tu obtiens une entrée sur stdin que tu stockes dans une chaine
- tu scannes cette chaine caractère par caractère
- en fonction du caractère, tu remplis la structure
- tu empiles la structure
 
ça c'est la phase de parsing. vient ensuite l'évaluation de cette formule :
 
- tu dépiles un élément
- tu récupères sa valeur que tu stockes dans une variable
- tu dépiles l'élément suivant
- si c'est un opérateur, alors tu dépiles l'élément suivant et tu renvoies le résultat en fonction de l'opérateur.
- jusqu'a ce que la pile soit vide
 
c'est grossier, mais c'est le principe. les arbres sont plus efficaces, mais bcp plus complexes aussi. une pile est toute simple à mettre en oeuvre


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-02-2003 à 20:19:37    

La pile à l'air simple à mettre en oeuvre.
Qu'apporte l'abre ? Merci.


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
Reply

Marsh Posté le 11-02-2003 à 08:52:04    

kfman a écrit :

La pile à l'air simple à mettre en oeuvre.
Qu'apporte l'abre ? Merci.


Il autorise des expressions plus complexes, notamment avec parenthèses, même si c'est également possible de gérer ce cas avec une pile, c'est néanmoins bcp plus sport !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 11-02-2003 à 10:43:36    

En utilisant des piles, il en faut 2 : une pile pour les opérandes et une pile pour les opérateurs. Et ça se fait sans trop de souci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed