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

API standards et tierces Java Discussion :

API Parseur mathématique


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut API Parseur mathématique
    J'aimerai pouvoir à partir d'une saisie utilisateur comme par exemple :

    ... générer un calcul java de manière dynamique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Math.log(5.0)*10-18
    Connaissez-vous le parseur JEP, l'avez-vous utilisé et testé, restitue-t-il les bons calculs ?

    Connaissez-vous d'autres outils ? Lesquels ?

    Des classes Sun existent-elles pour faire cela ?

    Merci pour vos réponses.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Mister Nono
    Connaissez-vous le parseur JEP, l'avez-vous utilisé et testé, restitue-t-il les bons calculs ?
    Je le connais de nom, mais je ne l'ai jamais testé... par contre je ne vois pas pourquoi il ne restituerait pas les bons calculs

    Citation Envoyé par Mister Nono
    Des classes Sun existent-elles pour faire cela ?
    Que veux-tu dire exactement par "des classes Sun" ???

    Sinon avec Java 6 tu peux utiliser Javascript et l'API standard pour faire tes calculs, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	ScriptEngineManager manager = new ScriptEngineManager();
    	ScriptEngine engine = manager.getEngineByExtension("js");
     
    	Number result = (Number) engine.eval("Math.log(5)*10-18");
     
    	System.out.println(result);
    a++

  3. #3
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Jep est un tres bon parser d'expression Mathematique.

    De plus, si tu es en Java 6, tu peux l'utiliser directement via la nouvelle API ScriptEngine en telechargeant le Jar chez http://scripting.dev.java.net
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par pseudocode
    Jep est un tres bon parser d'expression Mathematique.
    Pourquoi log(-3) donne pour résultat :

    (0.4771212547196623, 1.3643763538418412)

    au lieu de Indéfini ou NaN ?

    Quel est cette interprétation ?

    A+

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    http://www.singularsys.com/jep/doc/html/functions.html

    public double getValue()
    Evaluates and returns the value of the expression as a double number.

    Returns:
    The calculated value of the expression as a double number. If the type of the value does not implement the Number interface (e.g. Complex), NaN is returned. If an error occurs during evaluation, NaN is returned and hasError() will return true.
    public Complex getComplexValue()
    Evaluates and returns the value of the expression as a complex number.

    Returns:
    The calculated value of the expression as a complex number if no errors occur. Returns null otherwise.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par Mister Nono
    Pourquoi log(-3) donne pour résultat :

    (0.4771212547196623, 1.3643763538418412)

    au lieu de Indéfini ou NaN ?

    Quel est cette interprétation ?

    A+
    Ce résultat est donné par l'applet de démonstration.

    Maintenant, je viens de tester dans une application JAVA avec les commandes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    myParser.addVariable("x", -3);
     
    myParser.parseExpression("log(x)");
    Double result = myParser.getValue();
    Et j'obtiens NaN ce qui me semble plus normal : n'est-ce pas ?


    Merci pour la doc pseudocode.

    A+

  7. #7
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Jep est un tres bon parser d'expression Mathematique.

    De plus, si tu es en Java 6, tu peux l'utiliser directement via la nouvelle API ScriptEngine en telechargeant le Jar chez http://scripting.dev.java.net


    Merci pour ton conseil, mais as-tu un exemple d'implémentation pour utiliser JEP avec ScriptEngine ?

    A+

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Un exemple avec Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	// On crée le manager :
    	ScriptEngineManager manager = new ScriptEngineManager();
    	// On récupère un moteur via son nom :
    	ScriptEngine js = manager.getEngineByName("javascript");
    	// On execute une commande et on récupère le résultat :
    	Object result = js.eval("15+15");
    	// On affiche le résultat et son type :
    	System.out.println(result.getClass().getSimpleName() + " : " + result);
    Si tu as intégré les packages de JEP et de son script-engine dans le classpath il suffit de remplacer le "javascript" par "jep"


    Sinon pour connaitre tous les moteurs disponibles dans le classpath via leurs noms :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	for (ScriptEngineFactory factory : manager.getEngineFactories() ) {
    		System.out.println(factory.getNames());
    	}
    a++

  9. #9
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Merci beaucoup adiGuba.

    Ce n'est pas si compliqué que cela mais vraiment dommage que la documentation est rare à ce sujet.

    A+

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

Discussions similaires

  1. Meilleure API pour des fonctions mathématiques
    Par mat360 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 18/06/2007, 17h51
  2. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  3. Réponses: 3
    Dernier message: 04/09/2002, 09h42
  4. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44
  5. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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