Bonjour,
il semble que ce que tu cherches à faire est un "parser" d'expression mathématique simple.
En premier lieu tu as le choix du type de notation :
- soit tu utilises la notation infixée (notation "normale"), type : ((1 + 2) * 3) - 4
- soit la notation RPN (NPI en français pour Notation Polonaise Inverse), type : 1 2 + 3 * 4 -
Sachant qu'il y a des avantages et des inconvénients dans les deux cas...
Si tu choisis la notation normale il faudra notamment tenir compte :
1) Si l'opérateur est unaire ou binaire (cas du '+' et du '-' notamment).
2) Implémenter les régles de parenthèsage.
3) Implémenter les règles de précédence des opérateurs.
Pour la notation RPN, c'est plus simple, il n'y a plus de parenthèses, à la limite la seule chose à s'occuper c'est de lire l'expression et d'effectuer les calculs, c'est tout (et remplacer l'opérateur unaire '-' par autre chose...). Par contre ca demande une petite gymnastique intellectuelle quand on est pas habitué
Sinon en .NET tu as la possibilité d'utiliser la compilation d'expression au run-time ce qui est très pratique
Partager