En notation Polonaise inversée (Reverse Polish Notation) les opérateurs (+
, -
, *
, ...)
suivent les opérandes. Par exemple pour ajouter 3 et 4, au lieu d'écrire 3 + 4
, on écrira
3 4 +
.
S'il y a plusieurs opérateurs, les opérateurs sont écrits immédiatement après la second opérande.
L'expression 3 - 4 + 5
(qui pourrait s'écrire (3 - 4) + 5
, s'écrira:
3 4 - 5 +
La première expression sera évaluée 3 4 -
en -1
, on peut alors imaginer que l'expression initiale
devienne alors -1 5 +
évaluée en 4
20 5 / —> (20/5) = 4
5 2 3 + - -> 5-(2+3) = 0
4 2 + 3 - —> (4+2)-3 = 3
3 5 8 * 7 + * —> 3*((5*8)+7) = 141
7 2 - 3 4 —> 5 3 4
Objectifs:
- Le code doit compiler
- Les tests doivent passer
- Les tests devraient être enrichis
- Supporter les opérateurs suivants:
+
-
*
/
(optionnel)
- Supporter les nombres négatifs
- Supporter les nombres à virgules flottantes (optionnel)
Remplacer mvn par ./mvnw
ou ./mvnw.cmd
) si vous utilisez le wrapper maven
$ mvn clean test
$ mvn compile exec:java -Dexec.mainClass="rpn.CLI" -Dexec.args="4 3 +"
Générer le jar
$ mvn clean package
Si les tests ne passent pas 😱
$ mvn clean package -DskipTests
Lancer le programme directement (une fois le jar générer):
$ java -cp target/esgi-rpn-1.0-SNAPSHOT.jar rpn.CLI "4 3 +"