Jump to content

simplifier une expression arithmetique


Recommended Posts

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

Link to comment
Share on other 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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...