comme le dit le titre, ça évalue une expression mathématique en basculant l'expression parenthésée en une pile en notation polonaise. Ou plutôt polonaise inverse il me semble.
Je suis parti de la source de Oniria :
http://www.delphifr.com/codes/CALCULATRICE-CHAINES-MATHEMATIQUES_45537.aspx
J'ai tout refait en utilisant cette fois ci un algorithme tiré du site Wikipédia :
http://fr.wikipedia.org/wiki/Notation_polonaise_inverse
Ainsi, c'est le même algo qui inverse les opérateurs dans une expression simple et qui traite les parenthèses et les fonctions, les constantes...
Il y a pas mal de commentaire dans le code.
Il est facile de rajouter des fonctions :
1 - en complétant les deux constantes tableaux "OpInfos" et "OpCodes" dans l'unité "UOperateur.pas"
2 - en ajoutant le calcul à faire dans "Eval_exp" de l'unité "UExpressions.pas"
Pour le reste, le programme d'exemple traite :
- une série de calcul avec une éventuelle affectation à des variables sur la gauche de la fiche
- une série de fonction dépendant de X à droite de la fiche et trace leurs courbes en point par point.