Aller au contenu

simplifier une expression arithmetique


Messages recommandés

Posté(e)

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

Posté(e)

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.

Archivé

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

×
×
  • Créer...