Téléchargé 4 fois
Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 14 novembre 2010
Langue : Français
Référencé dans
Navigation
Evaluer une expression algébrique contenue dans un string
Evaluer une expression algébrique contenue dans un string
Ce code est un analyseur/resolveur d'expressions algébriques,incorporé dans un composant OCX
Ce source est intéressant car il montre comment font les compilateurs pour évaluer des expressions algébriques
On fourni au composant une chaîne 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écurrence (Une fonction appelle un fonction qui elle même , a un moment ou un autre va appeler la première).
Ensuite cette chaîne 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 parenthèses quelconque
Ce source est intéressant car il montre comment font les compilateurs pour évaluer des expressions algébriques
On fourni au composant une chaîne 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écurrence (Une fonction appelle un fonction qui elle même , a un moment ou un autre va appeler la première).
Ensuite cette chaîne 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 parenthèses quelconque
- les quatre opérations de base , Puissance
- ABS(X) 'valeur absolue
- AR0(X) / RD0(X) 'arrondi à l'entier
- AR1(X) / RD1(X) 'arrondi à une décimale
- AR2(X) / RD2(X) 'arrondi à deux décimales
- AR3(X) / RD3(X) 'arrondi à trois décimales
- AR4(X) / RD4(X) 'arrondi à quatre décimales
- ATN(X) 'ArcTangente
- COS(X) 'Cosinus
- EXP(X) 'Exponentielle
- FIX(X) 'tronquage de la partie entière
- INT(X) 'Partie entière
- LOG(X) 'Logarithme
- SIN(X) 'sinus
- TAN(X) 'tangente
- NOT expression 'Négation
- OR / OU 'Or
- AND / ET 'And
- > 'Supérieur strictement
- >= / => 'Supérieur ou Egal
- = 'égal
- <= / =< 'Inferieur ou egal
- < 'inferieur strictement
Bon, j'ai l'impression que mon ocx genial n'est pas si genial que çà
Il n'a pas l'air d'interesser grand monde
Moi il me sert tout le temps. par exemple dans une application de facturation, je ne demande plus un simple nombre pour la quantié.
Si il s' agit de facturer 2 palettes de 45 colis , chaque colis contenant 16 items, l'operateur de saisie compose 2*45*16 directement dans la case quantité. moi ca me paraissait génial mais bof.
Il n'a pas l'air d'interesser grand monde
Moi il me sert tout le temps. par exemple dans une application de facturation, je ne demande plus un simple nombre pour la quantié.
Si il s' agit de facturer 2 palettes de 45 colis , chaque colis contenant 16 items, l'operateur de saisie compose 2*45*16 directement dans la case quantité. moi ca me paraissait génial mais bof.
Ce n'est pas parce que personne ne réagit que ce n'est pas intéressant.
Beaucoup de gens viennent ici sans jamais poster. On ne sait donc pas quel est le nombre de personnes qu'une contribution quelconque peut intéresser.
Beaucoup de gens viennent ici sans jamais poster. On ne sait donc pas quel est le nombre de personnes qu'une contribution quelconque peut intéresser.
Merci de me remonter le moral
il n'y aurait pas le logarithme néperien par hazard?
Non, car la resolution des fonctions est prise en charge par les fonctions de VB. Mais il reste toujurs la possibilité de calculer le logarithme néperien avec les fonctions de Vb, donc on pourait l'implementer tres facilement
apres une rapide recherche sur l'aide de vb
voici comment calculer le log népérien
voici comment calculer le log népérien
Code : | Sélectionner tout |
1 2 3 4 | Public Function Log10(X) Log10 = Log(X) / Log(10#) End Function |
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.