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
Partager