Calcul en c++

Bonjour,
Quand je ve faire un petit programme de développement (par exemple ) en c++ je donne a l'ordinateur un model : par exemple de déclare les variables a ,b ,c ,d et je dis :
(a+b)*(c+d) et je demande a l'utilisateur de remplacer les lettre par des nombre et après l'ordinateur calcul en suivant ce model (a+b)*(d+c) .Je voudrais savoir comment faire pour que l'utilisateur rentre n'importe quel calcul sans que le programme lui ait imposer de model : par exemple 2*3+1-6 .

Merci d'avance !!!

2 réponses

  1. Modérateur
    Il faudrait parser la chaîne de caractère, faire une interprétation des symboles, pour les remplacer par les bonnes valeurs... ça demande pas mal de boulot.

    En Java, je triche, et j'appelle un moteur JavaScript qui va directement interpréter mon calcul, mais je ne sais pas comment adapter cette astuce en C++
    1
    1. Il n'y a pas de variable qui prend plusieurs chiffres ?

      Merci d'avance !!
      0
    2. Modérateur
      @chaa13Le problème ce n'est pas les valeurs, mais les opérateurs. De base + - * / ( ) ce ne sont que des caractères, et il faudrait leur donner une valeur sémantique pour qu'ils utilisent les opérandes auxquelles ils s'appliquent et calculer le résultat.
      Pour ce genre de problème on peut créer un arbre avec les opérateurs sur les noeuds et les opérandes sur les feuilles, et avec à un parcours en ordre préfixe cela revient à un calcul à la polonaise.
      0
    3. Warff c'est compliqué tout ça :)
      0
    4. On ne peux pas donner de valeur a +-*/ ?
      0
    5. Modérateur
      @chaa13Et ça t'avancerait à quoi ?
      Si + vaut 5 par exemple, l'utilisateur entres "1+2" et tu lui répondras 152 !!! Je ne vois pas l'intérêt...
      0
  2. Après je crois qu'il existe des bibliothèques qui contiennent des fonctions de parsages qui pourraient te servirent.
    Tu as fait quelques recherches Google ?
    0
    1. J'ai aussi trouver un topic qui pourrait t'aider.
      0
    2. Merci ! je vais regarder ces forum !
      0