Aller au contenu

simplifier une expression arithmetique


Messages recommandés

Bonjour,

j'ai crée une fonction Eval qui évalue,une expression (arbre) lorsque toutes les feuilles de l'arbre sont des réels (de type double).

J'aimerais avoir une aide concernant la simplification de l'expression lorsque l'évaluation totale n'est pas possible.

Je m'explique:

si l'arbre est compose de + * 1 2 3 la fonction renvoie 5

mais si c'est + * 1 2 x la fonction renvoye 2+x

Lien vers le commentaire
Partager sur d’autres sites

Typiquement?

Tes types => BinOp (left, right), Constant (double), Variable (?)

La fonction simplifiant :

simplify(Expression e) : Expression

Si arite(e) == 2 // opérateur binaire (left, right)

Et operator(e) // e est un opérateur

Alors

Si e->left, e->right sont constants

Alors

f = Constant(eval(e)); // crée une constant en évaluant e

Libere(e); // libère la mémoire, en C pas de GC! :)

return f;

FinSi;

FinSi;

return e;

Paf paf donc.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...