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

Windows Forms Discussion :

Résolveur d'expression algébriques


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Résolveur d'expression algébriques
    Bonjour à toutes et à tous,

    Je suis sur la réalisation d'un grapheur de fonctions cartésiennes. Comme tout grapheur qui se respecte il faudrait que l'utilisateur ai la possibilité de taper lui même sa fonction dans une seule textbox (pas de modèle prédéfini de fonction comme par exemple un champ pour le coefficient directeur et un pour l'ordonnée à l'origine d'une fonction affine). Voilà un peu comme je veux ma zone de saisie mais en VB.NET http://www.univ-lemans.fr/enseigneme.../grapheur.html
    Notons que la zone de saisie n'acceptant pas l'écriture conventionnelle des mathématiques (écriture fractionnaire, radicaux...) le lecteur utiliserai l'écriture informatique des math (10 puissance 2 : 10^2).

    J'ai essayé de me lancer sur la réalisation de ce genre de résolveur d'expression algébrique et c'est beaucoup trop difficile pour moi. J'ai cherché des sources et n'ai pas trouvé, c'est pourquoi, après avoir parcouru votre très utile FAQ je me suis tourné vers le forum.

    Voilà... Je suis bien embêté, quelqu'un saurait-il comment utiliser le lecteur d'expression algébriques de VB.NET (celui qui lit dans le code puisqu'il est déjà programmé il est peut-être utilisable), ou alors auriez-vous les sources d'un tel appareil en VB.NET ? Dans le cas échéant je vous serez très reconnaissant de m'aider à sa réalisation.

    Merci beaucoup de votre attention et bonne journée ! Léo.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    tu peux peut-être utiliser la fonction Eval de JScript, comme indiqué ici :
    http://www.developpez.net/forums/d69...ilation-volee/

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Merci Tomlev pour cette piste,

    Je suis débutant dans .NET et je me demandais comment utiliser du JavaScript dans une application fenêtre windows, l'exemple que tu m'as donné m'intrigue parce que je n'ai jamais fait. Comment en VB.NET utiliser une fonction qui provient de JScript ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Public Function EvalMath(ByVal MathExpression As String) As Double
            Return Eval(MathExpression)
        End Function
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            MsgBox(EvalMath("(2 + 3) * 8"))
        End Sub
    L'IDE ne reconnaît pas la fonction Eval(), logique elle n'existe pas en VB.NET, alors je suppose qu'il faut importer quelque chose qui fasse le lien avec JScript... Merci de m'éclairer encore un peu.

    Merci bien ! Léo.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par LéoNicoletti Voir le message
    Comment en VB.NET utiliser une fonction qui provient de JScript ?
    En faisant comme dans le lien que je t'ai indiqué...
    • copie-colle le code indiqué dans un fichier Math.js
    • ouvre "l'invite de commande visual studio" à partir du menu démarrer, et va dans le répertoire où est le fichier Math.js
    • compile le fichier Math.js en une DLL avec la commande suivante :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      jsc /target:library Math.js
      ça génère un fichier Math.dll
    • Dans ton projet VB.NET, ajouter une référence à cette DLL
    • Tu peux maintenant utiliser dans ton code la classe JsMath définie en javascript :
      Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
      Dim d As Double = JsMath.Eval("2+2")

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Bonjour Tomlev,

    Je te remercie de ta réponse qui va m'aider à comprendre les références. Mais je n'ai jamais fait cela et je n'arrive malheureusement pas à trouver l'invite de commande de Visual Studio (Visual Studio 2008). J'espère que celui ci est livré avec la version Express que j'ai.

    J'ai longuement cherché, et je suis désolé de te redéranger pour ça mais je ne trouve vraiment pas l'invite de commande Visual Studio. Dans le menu "démarrer" et "tout les programmes" je n'ai que "Microsoft Visual Studio 2008" sans sous-arborescence.

    Merci encore pour cette aide ! Léo.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Points : 192
    Points
    192
    Par défaut
    dans ton répertoire visual studio (dans "demarrer-->tous les programmes"...)
    as tu un répertoire "Visual studio tool" si c'est le cas, il est dedans " Invite de commande..."
    Sinon il devrait etre : "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
    "La Bretagne, ça vous gagne !!!"

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Bonjour Dudule,

    Je n'ai pas ce répertoire dans mon arborescence du menu "démarrer" et je n'ai pas non plus ce répertoire dans mes dossiers. Dans le dossier VC, j'ai un dossier nommé "vcpackages" et quelques DLL c'est tout.

    De plus, mon dossier s'appelle "Microsoft Visual Studio 9.0", je possède Visual Studio 2008 Express. Quelqu'un aurait-il une archive de cet invité de commande ? J'ai essaué avec l'outil d'installation de "compléter" mon installation mais il ne me propose que la MSDN, le moteur Silverlight ainsi que SQL Server compact et pas de VS Tools.

    Merci beaucoup et désolé du dérangement !
    Félicitations à ce forum, l'aide y est rapide et efficace, je le conseilelrai à mon entourage ! Léo.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    En fait "l'invite de commande Visual Studio" est juste un raccourci vers la console qui au passage exécute un script pour définir quelques variables d'environnement. Donc tu dois pouvoir le faire manuellement

    Cherche dans les fichiers de Visual un script nommé vcvarsall.bat (ou peut-être sdkvars.bat), ouvre une console, et exécute ce script. Ensuite, reprend mon explication pour compiler le fichier Math.js, ça devrait passer...

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Bonjour Tomlev,

    Merci pour ta réponse. J'ai longuement cherché, j'ai passé en revue toute l'arborescence du dossier de "Program Files" "Microsoft Visual Studio 9.0" manuellement je n'ai rien trouvé. J'ai également fait appel à la recherche de l'explorateur de windows qui m'a indiqué qu'il n'existait aucun fichier .bat dans ce répertoire... Il semblerait que je n'ai pas cette console.

    Je vous remercie à tous les deux pour vos aides efficaces. Comme je n'ai pas la console, je ne peux pas compiler cette DLL, je suis donc dans l'obligation d'oublier cette idée d'évaluateur d'expressions algébriques... J'essayerai peut-être d'en programmer un quand mes connaissances me le permettront.

    Merci et bonne journée !

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    En fait, je réalise que de toutes façons, avec une version express tu n'as peut-être même pas le compilateur JScript...

    Je t'envoie la DLL compilée en pièce jointe, tu peux l'utiliser directement
    Fichiers attachés Fichiers attachés

  11. #11
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup Tomlev pour cette DLL, elle marche à merveille. Merci également pour toute cette aide qui m'a permis de persévérer et d'arriver à utiliser la fonction JScript.

    Pour tout ceux que cela intéresse.
    Cette fonction est utilisable pour toutes les expressions algébriques sans variables, sans constantes, sans ordres de priorités (parenthèses et crochets) ni écriture fractionnaire. Par contre les opération élémentaire sont parfaitement exécutables (addition, soustraction, multiplication et division).
    Voici le code fonctionnel pour l'utilisation de la DLL Math.dll fournie par Tomlev.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Imports JsMath
    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim d As Double = Eval(TextBox1.Text)
            MsgBox(d)
        End Sub
    End Class
    Notez que deux références ont été crées : une pour la DLL ainsi qu'une pour le composant .NET "Microsoft.JScript" qui est indispensable à la liaison avec le langage JScript.

    Merci beaucoup et bonne journée ! Léo.

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    N'oublie pas de marquer le sujet comme (bouton en bas de la page)

  13. #13
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Voilà qui est fait. J'ai d'ailleurs retiré la balise [Résolu] que j'avais ajouté en début de titre du sujet. Je ne connaissais l'existence de ce bouton qui est bien plus pratique que l'habituel tag de titre... Félicitations d'ailleurs Tomlev pour votre blog qui est une mine d'or d'informations !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. optimisation logique et expression algébrique
    Par startout dans le forum Optimisations
    Réponses: 0
    Dernier message: 21/04/2011, 18h10
  2. Générateur d'expression algébrique
    Par byakuichi dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 11/01/2011, 09h25
  3. Expressions algébriques avec un arbre.
    Par elishac dans le forum Caml
    Réponses: 16
    Dernier message: 31/10/2007, 23h09
  4. [Source] Evaluer une expression algébrique
    Par Delbeke dans le forum Vos contributions VB6
    Réponses: 6
    Dernier message: 22/08/2006, 11h52
  5. [Algèbre relationnelle]Expression algébrique
    Par yoshï dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 07/04/2006, 15h10

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