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

C Discussion :

Evaluer la valeur d'une chaine (ex: 47+24*3)


Sujet :

C

  1. #1
    Membre confirmé Avatar de DJ Caësar 9114
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 135
    Par défaut Evaluer la valeur d'une chaine (ex: 47+24*3)
    Bonjour à tous,
    je voudrais savoir s'il existait une fonction, qui prend en argument une chaine de caractères, et qui renvoie le résultat de la chaine évaluer.
    Par exemple,

    nous donnerait 72

    Si une telle fonction existe, prend-elle en charge les cosinus ou d'autres fonctions de math.h?

    Merci de vos réponses!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par défaut
    je ne pense pas que ça existe... il faut faire l'étude syntaxique de ta chaine de charactere, et c'est pas simple.

  3. #3
    Membre chevronné Avatar de straasha
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2004
    Messages : 149
    Par défaut
    il y a quelques annee j'ai eu ce probleme et apres mures reflexions, j'ai fait un solveur d'expression en notation prefixee pour simplifier
    le principe est de lire la chaine mot a mot et de remplir un arbre, une fois arrive au bout de la ligne il suffit d'evaluer l'arbre
    par exemple l'operation
    12+(24-4)*3
    donnera en prefixe : + 12 * - 24 4 3
    ce qui donnera l'arbre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                            +
                       12         *
                               -     3
                            24  4
    ensuite un test sur les noeux te permet de savoir a quelle fonction mathematique il te faut faire appel et l'appliquer a ses fils

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Un "début" de piste + "Evaluation des expressions arithmétiques "

    eval("12+(24-4)*3") par contre en Scheme ou en Prolog ça se fait
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Cesar9114
    je voudrais savoir s'il existait une fonction, qui prend en argument une chaine de caractères, et qui renvoie le résultat de la chaine évaluer.
    Ca n'existe pas en C standard. Il est possible qu'il existe des bibliothèques qui fassent ça. Sinon, c'est un classique de l'analyse syntaxique et sémantique... Ce n'est cependant pas trivial. Voir la réponse de straasha.

Discussions similaires

  1. [XL-2010] Evaluer la valeur d'une variable à partir d'une chaine de caracteres
    Par batseb dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/11/2013, 09h43
  2. Valeur d'une chaine en parametre d'une fonction.
    Par jcpas dans le forum WinDev
    Réponses: 4
    Dernier message: 06/12/2007, 16h13
  3. [W11]Recupérer une valeur dans une chaine
    Par sebo1100 dans le forum WinDev
    Réponses: 7
    Dernier message: 24/09/2007, 15h19
  4. [RegEx] Récupération de valeurs dans une chaine de caractères
    Par Seth77 dans le forum Langage
    Réponses: 1
    Dernier message: 09/08/2007, 09h39
  5. extraire une valeur d'une chaine.
    Par Tchaill39 dans le forum Delphi
    Réponses: 2
    Dernier message: 23/10/2006, 17h31

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