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

Algorithmes et structures de données Discussion :

appliquer une "phrase logic" a un tableau


Sujet :

Algorithmes et structures de données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut appliquer une "phrase logic" a un tableau
    Bonjour,

    ma question porte sur un site web codé en flash (actionscript) et en javascript, mais a mon avis, la reponse fonctionnera sur tous type de langages.

    l'utilisateur peut rentrer une phrase du type:
    (A OU C) ET NOT F OU B

    je souhaite "appliquer" cette phrase a un tableau de 0 et 1.
    A, B, ... etant les indices.

    etant donné que la phrase peut comporter plusieurs niveau de parenthèses, je pensais la re-ecrire sous forme xml. un item etant une colonne qui peut avoir un attribut NOT ou pas.
    ca ferait pour mon exemple qque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <root>
      <ou>
        <et>
          <parenthese>
            <ou>
              <A option=""/>
              <C option=""/>
            </ou>
          </parenthese>
          <F option="not"/>
        </et>
        <B option=""/>
      </ou>
    </root>
    une fois l'xml ecrit, je peux trouver le niveau le plus bas et le parcourir en etudiant les freres d'un item, puis son pere, et le frere de son pere, ....

    c'est une solution qui me semble satisfaisante, mais je voulais savoir si qqu'un a une meilleure idee (plus simple !)

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Déjà on écrit parenthèse et pas paranthese.

    Ensuite, l'idée d'utiliser un attribut NOT est une bonne idée dans le sens ou tu vas en fait transformer ta chaîne en un arbre BINAIRE.

    Ta méthode pour l'implémenter n'est pas la plus efficace, mais elle est fonctionnelle.
    Je ne répondrai à aucune question technique en privé

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut
    Citation Envoyé par millie
    Déjà on écrit parenthèse et pas paranthese.
    corrigé

    Citation Envoyé par millie
    Ensuite, l'idée d'utiliser un attribut NOT est une bonne idée dans le sens ou tu vas en fait transformer ta chaîne en un arbre BINAIRE.

    Ta méthode pour l'implémenter n'est pas la plus efficace, mais elle est fonctionnelle.
    une meilleure idée ?

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Ca dépend de tes capacités.

    En général, on transforme la chaine en un arbre binaire, et on réalise ensuite un parcours postfixe sur celui-ci pour évaluer la chaîne.

    Le gros problème pour qqn qui ne sait pas ce qu'est un arbre binaire et de savoir ce que c'est (évidemment) et de l'implémenter.

    Il y a plusieurs méthode d'implémentation, tu peux en obtenir dans le cours suivant :
    http://www.enseirb.fr/~lapoire/1ereA...anvier2006.pdf


    Edit : Je viens de me rendre compte que construire l'arbre est peut-être aussi difficile qu'évaluer directement l'expression. Mais j'aimerai avoir un autre avis.
    Je ne répondrai à aucune question technique en privé

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut
    mes capacités sont sans doute assez minables (je ne connaissais meme pas le terme "arbre binaire").
    Je vais lire le pdf.
    Je ne recherche pas l'efficacité, c'est du code executé coté client, sur des tableaux qui ne sont pas gigantesques.

    je cherche plutot un concept propre, et facile a implementer.

    merci pour ta reponse en tout cas !

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Le problème dans ton code, c'est que tu passes par un fichier XML.

    Mais si tu penses y arriver comme ça, même si c'est un peu moins propre, tu perdras moins de tps à développer dans cette direction qu'implémenter un arbre et l'utiliser.
    Je ne répondrai à aucune question technique en privé

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut
    merci du conseil (je vais quand meme lire le pdf, ca a l'air interessant).

    pour le xml, c'est la seule idee que j'ai eu. grace aux methodes de parcours d'un xml qui fonctionnent en relatif (parent, child & Co), ca me permet re-ecrire ma phrase logique dans une structure a plusieurs niveaux qu'impose les parenthèses.

    une autre solution serait sans doute de re-ecrire la phrase dans un object a plusieurs niveau (actionscript permet de faire un peu n'importe quoi). dans ce cas, il faudra aussi ecrire les methodes de deplacement entre les niveaux ou sur un niveau. bref, refaire ce qui est tout fait en xml...

    faute de mieux, je reste sur l'xml !

Discussions similaires

  1. Variable d'une clause where avec quote
    Par kcizth dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/04/2008, 15h43
  2. Modification d'un texte dans une fenetre "d'erreur"
    Par PAUL87 dans le forum Access
    Réponses: 8
    Dernier message: 21/10/2005, 13h12

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