Calcul en c++

chaa13 -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 !!!



A voir également:

2 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
chaa13
 
Il n'y a pas de variable qui prend plusieurs chiffres ?


Merci d'avance !!
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > chaa13
 
Le 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
chaa13
 
Warff c'est compliqué tout ça :)
0
chaa13
 
On ne peux pas donner de valeur a +-*/ ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > chaa13
 
Et ç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
Nxl Messages postés 1038 Date d'inscription   Statut Membre Dernière intervention   133
 
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
Nxl Messages postés 1038 Date d'inscription   Statut Membre Dernière intervention   133
 
J'ai aussi trouver un topic qui pourrait t'aider.
0
Nxl Messages postés 1038 Date d'inscription   Statut Membre Dernière intervention   133
 
Et un autre...
0
chaa13
 
Merci ! je vais regarder ces forum !
0