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

Langage Java Discussion :

[Aide sur logique][Débutant] algèbre de Boole en java.


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut [Aide sur logique][Débutant] algèbre de Boole en java.
    Bonjour,
    mon soucis est plus orientée vers la logique de ce que je doit réalisé que sur le code en lui même.
    Je doit réaliser une applet, qui à partir d'une équation (String), vas généré une table de vérité de l'équation.

    On m'indique dans le sujet divers méthode à faire mais ca ne m'aide pas trop, je sais juste que je doit avoir deux classes particulières , Equation , qui découpe l'équation et ce reappel si le besoin en est.
    Et EquationProcess , qui calcule le résultat et affiche la table de vérité.

    D'aprés ce que je peux en voir il faut de la récursivité , et cela est mon plus grand défaut.

    Donc j'aimerai savoir si quelqu'un peut prendre de son temps pour m'expliquer comment attaquer la chose et ceux de la meilleur façon possible.
    L'Equation peut avoir X variable , ce qui me chagrinne un peu aussi.
    Une Equation d'exemple : (A.B)+C
    . = OU
    + = ET
    ! = négation

    Je sais que cela peut paraitre bête comme question , mais je trouve cela plus dur à faire qu'un serveur et client echo, en terme de logique je dirai.
    Merci à vous

  2. #2
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Pour te rassurer, un client/serveur echo est surement plus simple à faire en java... mais ton problème reste faisable.

    Tu dois résoudre ton problème en deux étapes :

    1/ parser ton equation pour la modéliser sous forme d'un arbre.

    2/ evaluer ton arbre pour chacune des valeurs possibles des variables. Pour ca, il te faut effectivement faire de la recursivité...

    Quelques indices :

    - Il te faut de definir tes classes java pouvant representer tes equations... Pour info, je vois bien une classe abstraite Equation et des classes filles OU, ET, NON et Variable... pour les methodes, je te laisse deviner. La representation sous forme d'arbre de (A.B) + C est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            ET
          /   \
        OU    VAR
       /  \    |
     VAR  VAR "C"
      |    |
     "A"  "B"
    A toi de voir comment on peut faire des arbres en Java

    Il te faut aussi une classe qui va parser ta chaine de caractère.

    Il te faut aussi un moyen de connaitre le nombre de variable contenu dans ton equation.

    Il te faut aussi pouvoir evaluer une equation en fonction d'un context. Un context est simplement un ensemble qui donne des valeurs aux variables (un hashTable est tres bien pour ca ! )

  3. #3
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Hum disons que j'ai cette équation
    (A.B)+C
    Je crée un objet Equation , qui découpe en (A.B) et C ( disons que je stocke l'opérateur de cette equation.

    Ensuite je test si je n'est qu'une variable ( feuilles de l'arbre ) , et sinon je refait un objet Equation en envoyant l'equation.

    Dans mon cas donc je fait.
    Equation tada = new Equation("(A.B)+C");
    Puis dans le constructeur de Equation()
    EquationG = "(A.B)";
    EquationD = "C";
    Op = "+";
    si EquationG pas que 1 seul caractère // la oui{
    Equation branche = new Equation(EquationG);
    }
    pareil pour EquationD

    Suis-je dans le bon raisonnement pour le moment ? et si oui bah ensuite je fait comment pour calculer le résultat et l'afficher , enfin traiter l'équation ( avec EquationProcess.java).

    J'ai trouver un lien avec le sujet ( Educatel à pomper ailleurs) je la mets pour informations sur ce qui me chagrine.
    http://64.233.183.104/search?q=cache...d=1&lr=lang_fr

    C'est une archive google , car sur le site actuel tous est enlevé.
    Merci.

  4. #4
    Membre chevronné Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Par défaut
    Tu es dans le bon raisonnement, pour calculer la valeur d'une equation pex A.B, tu peux faire en sorte que EquationProcess hérite d'Equation pour faire le calcul pour toutes les variables de cette Equation (ici A et b).

    Moi ce que j'aurais fais c'est :
    1 - Vérifier que l'équation est correctement formée.
    2 - Récupérer toutes les variables de l'équation.
    3 - Construire l'arbre (le même que celui t'a donné benratti)
    4 - faire une multitude de boucle en faisant varier à chaque fois un parametre pour avoir le resultat de l'équation et l'afficher à l'écran.

  5. #5
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Hum
    Je viens de changer de méthode car je pense la comprendre mieux.
    EquationProcess , vas ce chargé de calculé le nombre de variable , et préparé la table de vérité , et une liste de valeurs pour les variables.

    Donc le constructeur de EquationProcess me préare le "terrain" , puis j'appelerai une méthode d'affichage , dont le fonctionnement est :

    Pour chaque possibilité (dépendant du nombre de variables), j'envoie ou crée une Equation ( class Equation ) qui elle ce decoupera (en Arbre) , puis chacune se calculera suivant ma liste de valeurs et retournera 1 resultat ( celui de la ligne de la table en faite).

    Ma question réside à présent sur ma methode d'affichage (futur car j'ai rien codé de cette idée )
    Je vais devoir faire une boucle sur mon tableau( plusieurs dim pour la table de vérité) est je me demande si je doit déclaré qu'une seule Equation , ou si à chaque itération je recrée une Equation et refait l'arbre.

    Quelques est la meilleur solution ? et comment l'appliquer, notament comment faire pour ne déclaré qu'une Equation ( 1 fois le découpage),et juste la faire ce recalculer avec les nouvells valeurs que j'enverrai.

    Merci ( en tout même si ca ce voie pas ca avance dans ma tête lol )

  6. #6
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    La meilleure solution serait de conserver ta classe equation ... Quand tu y reflechis, tu travails toujours sur la même equation, c'est simplement ton environnement ( valeurs de variable ) qui vas changer... Reconstruite ton arbre a chaque fois serait inutil car au final, tu ferais à chaque fois la même chose puisque tu boses avec la même équition.

    Pour info, tu peux mettre un methode eval dans ta classe Equation qui va te donner la valeur de ton equation en fonction de ton environnement.

    C'est cette methode eval qui va être différente en fonction de ton type d'equation. Si ton equation est un OU(equation_A,equation_B) alors tu vas renvoyer un OU de la valeur de equation_A et de la valeur de equation_B

Discussions similaires

  1. [Toutes versions] Aide sur macro débutant
    Par winston_smith81 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/11/2009, 13h52
  2. aide sur un constructeur(débutant)
    Par hesoebius dans le forum Langage
    Réponses: 5
    Dernier message: 28/04/2007, 19h20
  3. [Débutant] Aide sur la conception
    Par E2EK1EL dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2006, 08h38
  4. aide sur les fonctions (débutant)
    Par tregont dans le forum Débuter
    Réponses: 4
    Dernier message: 22/01/2006, 21h03
  5. [Débutant] besoin d'aide sur les web services
    Par Diangelita dans le forum Services Web
    Réponses: 3
    Dernier message: 20/01/2006, 08h41

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