IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Vos contributions VB6 Discussion :

[Source] Evaluer une expression algébrique


Sujet :

Vos contributions VB6

  1. #1
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut [Source] Evaluer une expression algébrique
    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
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    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.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    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.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Merci de me remonter le moral
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  5. #5
    Membre régulier Avatar de Yanos
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 160
    Points : 121
    Points
    121
    Par défaut
    il n'y aurait pas le logarithme néperien par hazard?

  6. #6
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    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
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  7. #7
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    apres une rapide recherche sur l'aide de vb
    voici comment calculer le log népérien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function Log10(X)
       Log10 = Log(X) / Log(10#)
    End Function
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

Discussions similaires

  1. [WD15] Evaluer une expression
    Par dakota77 dans le forum WinDev
    Réponses: 2
    Dernier message: 20/09/2010, 21h10
  2. Evaluer une expression à l'execution
    Par 5:35pm dans le forum C#
    Réponses: 1
    Dernier message: 26/05/2008, 21h55
  3. Evaluer une expression
    Par pc75 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/03/2008, 10h22
  4. Evaluer une expression mathématique
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/07/2007, 18h28
  5. [XPATH] Evaluer une expression xpath dans un xml
    Par antigone dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 29/01/2007, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo