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

Python Discussion :

[Algo] + [Python] Analyse d'une formule


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut [Algo] + [Python] Analyse d'une formule
    Bonsoir,

    Je suis entrain de faire un programme qui numerote les variables d'une formule ! exemple : AA /\ BB \/ CC => {A:1,B:2,C:3} !
    l’entête de la fonction (récursive) : numerote ( formule , correspondance ).
    formule est la formule dont on doit numéroter les variables
    correspondance est la structure qui associe le nom de la variable à un numéro (un dictionnaire)

    des idées pour commencer ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Par défaut Qésaco
    Je pense que ton objectif n'est pas clairement énnoncé

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 827
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par WAKAKA Voir le message
    Bonsoir,

    Je suis entrain de faire un programme qui numerote les variables d'une formule ! exemple : AA /\ BB \/ CC => {A:1,B:2,C:3} !

    des idées pour commencer ?
    Salut

    Ben commencer par nous expliquer comment toi tu numérotes tes variables !!! Ensuite suffira de l'expliquer à Python et ça on sait faire (mais je suis certain que quand tu nous l'auras expliqué tu sauras alors l'expliquer à Python)

    Ce qui ce conçoit bien s'énonce clairement...(Boileau)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut
    Merci pour vos réponses,

    Je dois numéroter les variables de la formule , afin de pouvoir représenter les littéraux par des entiers.
    et pour ça je dois coder une fonction récursive numerote(formule,correspondance)

    qui retourne correspondance (un dictionnaire qui contient les variables numérotés)

    Exemple :
    On a formule = A \/ B /\ C ( A ou B et C )
    On doit avoir dans correspondance { A:1, B:2, C:3 }

    Voila, j'espère avoir été assez clair

    Merci d'avance

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Voila, j'espère avoir été assez clair
    En ce qui me concerne non!

    On a formule = A \/ B /\ C ( A ou B et C )
    Que viennent faire ces \/ et /\ ici?

    Peut-être une nouvelle notation, enfin je ne connais pas ce type d'opérateur, à moins que tu veuilles parler de vectoriel???

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 5
    Par défaut
    Merci pour votre réponse fred1599,
    Ces opérateurs sont prédéfinis :
    # operateurs:
    o_variable='var'
    o_non='~'
    o_et='/\\'
    o_ou='\\/'
    o_implique='=>'
    o_equivaut='<=>'

    un autre exemple :
    si on a une formule : (p6 => (~ (p8 => p10))
    on aura comme résultat un dictionnaire correspondance={ p6:1, p8:2, p10:3 }

  7. #7
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Une proposition simple pour trouver tes variables

    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
    >>> formule
    '(p6 => (~ (p8 => p10))'
    >>> ch = ""
    >>> for i in formule:
    	if i not in ["=", ">", "<", "~", "(", ")"]:
    		ch += i
    	else:
    		ch += " "
     
     
    >>> print(ch)
     p6        p8    p10  
    >>> print(ch.split())
    ['p6', 'p8', 'p10']
    >>>
    Pour le dico en simplifiant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> dico = {}
    >>> for i, j in enumerate(ch.split()):
    	dico[j] = i + 1
     
     
    >>> dico
    {'p10': 3, 'p8': 2, 'p6': 1}
    A toi de rassembler toutes ces idées pour construire un code propre et fonctionnant sur tout type de formules

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/12/2006, 11h31
  2. Déterminer Algo pour une formule mathématique
    Par jekyll_omiwane dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/01/2005, 18h28
  3. Mauvais résultat aprés une formule de calcul complexe
    Par poufouille dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 00h12
  4. [Debutant(e)] Analyse d'une chaîne de caractères
    Par maire106 dans le forum Langage
    Réponses: 6
    Dernier message: 22/03/2004, 15h04
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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