Posté(e) le 12 décembre 200519 a 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 Modifié le 18 décembre 200519 a par Morpheus75
Posté(e) le 12 décembre 200519 a 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.