Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2294 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  evaluer une fonction mathematique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

evaluer une fonction mathematique

n°304891
swich
snps
Posté le 09-02-2003 à 16:34:57  profilanswer
 

'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
 
 
 
 

mood
Publicité
Posté le 09-02-2003 à 16:34:57  profilanswer
 

n°304906
verdoux
And I'm still waiting
Posté le 09-02-2003 à 17:17:19  profilanswer
 

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.

n°304911
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-02-2003 à 17:30:29  profilanswer
 

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)
n°305032
kfman
Credo quia absurdum
Posté le 09-02-2003 à 20:19:37  profilanswer
 

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


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
n°306058
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-02-2003 à 08:52:04  profilanswer
 

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)
n°306156
BifaceMcLe​OD
The HighGlandeur
Posté le 11-02-2003 à 10:43:36  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  evaluer une fonction mathematique

 

Sujets relatifs
valeur de fonction de retourGriser un/des champs en fonction d'une liste de choix.
fonction mail() et FAIpointeur fonction membre
[MYSQL] La fonction UNION[c] g un doute sur la fonction pow... (resolu)
[C] fonction quicksort[Access] bizarrerie sur fonction Format
[VBS] cherche aide sur une fonctionfonction mail en php sur multimania
Plus de sujets relatifs à : evaluer une fonction mathematique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR