exo6: add the full implementation.
[Project_POO.git] / exo6 / Main.java
index 5bc0ec48b525547074f77f58efe40d1bb7bf2976..4b714afd155878022c7dffe15f78442d62286309 100644 (file)
@@ -1,3 +1,4 @@
+import java.util.Map.Entry;
 
 class Main {
 
@@ -6,5 +7,35 @@ class Main {
      * @param String[] args main() function arguments array
      */
     public static void main(String[] args) {
+        System.out.println("-----");
+        String exp = "5 + x";
+        try {
+            Variable x = new Variable();
+            Expression ArithmeticExpression = new Opplus(new Chiffre('5'), x);
+            while (true) {
+                Entry<Integer, Double> e = x.getFirstEntry();
+                System.out.println("x = " + e.getValue() + " :");
+                System.out.println(exp + " = " + ArithmeticExpression.evaluer());
+            }
+        }
+        catch (Exception e) {}
+
+        System.out.println("-----");
+        exp = "(3 + 2*x)*(7/y - 2) - 5/(3*z + 4)";
+        try {
+            Variable x = new Variable();
+            Variable y = new Variable();
+            Variable z = new Variable();
+            Expression ParentheseOne = new ParentheseExp(new Opplus(new Chiffre('3'), new Opmulti(new Chiffre('2'), x)));
+            Expression ParentheseTwo = new ParentheseExp(new Opminus(new Opdiv(new Chiffre('7'), y), new Chiffre('2')));
+            Expression ParentheseThree = new ParentheseExp(new Opplus(new Opmulti(new Chiffre('3'), z), new Chiffre('4')));
+            Expression ArithmeticExpression = new Opminus(new Opmulti((Facteur)ParentheseOne, (Terme)ParentheseTwo), new Opdiv(new Chiffre('5'), (Terme)ParentheseThree));
+            while (true) {
+                Entry<Integer, Double> e = x.getFirstEntry();
+                System.out.println("x = y = z = " + e.getValue() + " :");
+                System.out.println(exp + " = " + ArithmeticExpression.evaluer());
+            }
+        }
+        catch (Exception e) {}
     }
 }