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

Collection et Stream Java Discussion :

conception calculatrice hashMap


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut conception calculatrice hashMap
    Bonjour

    je débute en java et je développe une calculatrice

    alors je mets mes opérations dans un stringBuffer

    genre(45*34+87)

    et je veux envoyer ce StringBuffer dans un arbre implémentant l'ordre de priorité des opérations

    alors j'ai vu le hashMap

    est ce que mon idée est bonne ?

    est ce que c bon de choisir le hashMap ??

    Calculatrice

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 151
    Par défaut
    Citation Envoyé par LeXo
    Bonjour

    je débute en java et je développe une calculatrice

    alors je mets mes opérations dans un stringBuffer

    genre(45*34+87)

    et je veux envoyer ce StringBuffer dans un arbre implémentant l'ordre de priorité des opérations

    alors j'ai vu le hashMap

    est ce que mon idée est bonne ?

    est ce que c bon de choisir le hashMap ??

    Calculatrice
    Bonjour,
    Dans la mesure ou HashMap est un système <cle,valeur> il me parait bien adapté pour ce que tu veux faire.

  3. #3
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    euuu Reuuu
    j'ai regardé comment marchait les oprérations dans un arbre binaire

    mais je vois pas comment marche avec un hashMap

    dites moi si je me trompes

    une valeur prend sucessivement un nombre puis un opérateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    put(clé,23)
    put(clé,+)
    put(clé,45)
    put(clé,*)
    put(clé,8)
    mais je ne vois pas a quoi peut correspondre la clé

    d'avance merci pour vos réponse

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 151
    Par défaut
    Citation Envoyé par LeXo
    euuu Reuuu
    j'ai regardé comment marchait les oprérations dans un arbre binaire

    mais je vois pas comment marche avec un hashMap

    dites moi si je me trompes

    une valeur prend sucessivement un nombre puis un opérateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    put(clé,23)
    put(clé,+)
    put(clé,45)
    put(clé,*)
    put(clé,8)
    mais je ne vois pas a quoi peut correspondre la clé

    d'avance merci pour vos réponse
    J'ai un instant pensé que tu allais juste prendre les operateurs comme clés et les classés par priorité croissante.
    Il y a plusieurs façon de proceder:

    Une façon de faire est de déterminer l'algorithme de parcours à utiliser pour faire les opérations.Il y' a par exemple l'expression polonnaise (prefixé)ou polonnaise inversé( postixé) .
    Alors Il te suffit alors d'utilser une pile (classe Stack)pour empiler et dépiler les opérandes.

    Sinon il y a aussi la classe TreeMap qui implemente les arbres binaires.

    Une façon élégante est d'utilisé un le design pattern composite.

    Je ne sais pas si une de mes propositis te conviennent.

  5. #5
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Par défaut
    La notation polonaise préfixée est plus facile à parser, on n'a pas à se préoccuper de la priorité des opérateurs, ni à gérer les parenthèses.
    Néanmoins le parsing classique est plus intéressant, et met en oeuvre les analyses Lexicales et Grammaticales. (LALR(n) ou LL(n) )

    Le résultat de ce parsing est ce qu'on veut, mais généralement un arbre dans cet exercice:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    2*3+3*2
    donne
        Racine
         /    
        + 
      /    \
     *      *
    / \    / \
    2  3  3   2
     
    2*(3+3)*2
    donne
        Racine
         /    
        * 
      /    \
     *      2
    / \      
    2  +
       / \
      3   3
    puis pour calculer: à chaque noeud, si c'est une feuille, on a la valeur, sinon c'est un opérateur, on prend récursivement le résultat du sous-arbre.
    * est prioritaire et donc se retrouve le plus bas de l'arbre.

    Il faut donc une structure d'arbre binaire: Soit des tableaux Object[2], soit une classe à 2 attributs, soit un TreeNode (même s'il est dans Swing et qu'il n'a pas été intégré à util)

  6. #6
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    j'ai fais une tite pause pour apporter des améliorations a mon site.

    je vais choisir la solution de l'analyse lexical et grammatical. cette solution a l'air intéressante en terme de développement.

    j'ai regardé si il existait quelques tutos mais si vous connaissiez un support de cours au cas ou !!

    d'avance merci

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

Discussions similaires

  1. Conception d'une calculatrice
    Par AntoniRaffa dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 12/06/2014, 17h00
  2. [Conception][performance] mysql table de 10000 enregistrements / hashmap
    Par debdev dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/07/2005, 11h29
  3. [Concept] Métadatas ?
    Par melinda dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 10/11/2004, 11h56
  4. [Concept] Réplication
    Par melinda dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 31/03/2003, 17h29
  5. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16

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