Calcul en c++
chaa13
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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 !!!
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
-
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++-
-
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. -
-
-
-
-
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 ?