J'ai écrit un analyseur/resolveur d'expressions algébriques et l'ai incorporé dans un composant OCX

Ce source est intéresant car il montre comment font les compilateurs pour évaluer des expressions algebriques
On fourni au composant une chaine de caractères, celui-ci l'analyse en vue de la transformer en notation polonaise inversée dans fonction PostFixIt.
Cette partie fait appel massivement à la récurence (Une fonction appelle un fonction qui elle même , a un momment ou un autre va appeller la première).
Ensuite cette chaine est exécutée à l'aide d'une pile LIFO (Last In/First Out) dans la fonction DoCalcule


Le programme est capable d'analyser

un niveau de paranthèses quelquonque


OCX DiEval6.zip


les quatres opérations de base , Puissance

les fonctions
ABS(X) 'valeur absolue
AR0(X) / RD0(X) 'arrondi à l'entier
AR1(X) / RD1(X) 'arrondi à une decimale
AR2(X) / RD2(X) 'arrondi à deux decimales
AR3(X) / RD3(X) 'arrondi à trois decimales
AR4(X) / RD4(X) 'arrondi à quatre decimales
ATN(X) 'ArcTangente
COS(X) 'Cosinus
EXP(X) 'Exponentielle
FIX(X) 'tronquage de la partie entiere
INT(X) 'Partie Intiere
LOG(X) 'Logarithme
SIN(X) 'sinus
TAN(X) 'tangente


l'evalutation entre deux expressions , au quel cas le resultat sera un vrai/faux

NOT expression 'Negation
OR / OU 'Or
AND / ET 'And
> 'Superieur strictement
>= / => 'Superieur ou Egal
= 'egal
<= / =< 'Inferieur ou egal
< 'inferieur strictement

J'espere que ce sera utile à quelqu'un