Compte_supprime_69952 Posted December 12, 2005 Share Posted December 12, 2005 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 More sharing options...
Baldurien Posted December 12, 2005 Share Posted December 12, 2005 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 More sharing options...
copper Posted December 17, 2005 Share Posted December 17, 2005 Mouais mais + + 1 x 2 ne sera pas simplifié en + 3 x Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.