Compte_supprime_69952 Posté(e) le 12 décembre 2005 Partager Posté(e) le 12 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 12 décembre 2005 Partager Posté(e) le 12 décembre 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
copper Posté(e) le 17 décembre 2005 Partager Posté(e) le 17 décembre 2005 Mouais mais + + 1 x 2 ne sera pas simplifié en + 3 x Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.