From e9bdd4cc4aa4c5c5a7c9ae5e30437e0b1625fba6 Mon Sep 17 00:00:00 2001
From: "thibault.capt" <thibault.capt@hes-so.ch>
Date: Tue, 1 Nov 2022 20:36:41 +0100
Subject: [PATCH] Update mat

---
 src/Equation.java | 45 +++++++++++++++++++++++++++++++++++----------
 src/Main.java     |  4 ++--
 2 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/src/Equation.java b/src/Equation.java
index 3101072..dfb4b76 100644
--- a/src/Equation.java
+++ b/src/Equation.java
@@ -90,20 +90,45 @@ public class Equation {
      * @param elements les elements
      * @param line la line en question
      */
-    public void createMinEq(String[] elements, int line) {
+    public int createEq(String[] elements, int line) {
         try {
             // vecteur de droite
-            setRightVec(Double.parseDouble(elements[elements.length - 1]));
-
-            // Matrice
-            for (int i = 0; i < 5; i++) {
-                setMat(Double.parseDouble(elements[i]), line, i);
+            switch(elements[5]) {
+                case "=": // Si ax=b => ax <= b; ax >= b
+                    // Vecteur de droite
+                    setRightVec(Double.parseDouble(elements[elements.length - 1]));
+                    setRightVec(Double.parseDouble(elements[elements.length - 1]));
+
+                    // Matrice
+                    for (int i = 0; i < 5; i++) {
+                        setMat(Double.parseDouble(elements[i]), line, i);
+                        setMat(Double.parseDouble(elements[i]), line+1, i);
+                    }
+                    // On rajoute une ligne
+                    line += 1;
+                    break;
+                case ">=":
+                    // Vecteur de droite
+                    setRightVec(-Double.parseDouble(elements[elements.length - 1]));
+
+                    // Matrice
+                    for (int i = 0; i < 5; i++)
+                        setMat(-Double.parseDouble(elements[i]), line, i);
+                    break;
+                case "<=":
+                    // Vecteur de droite
+                    setRightVec(Double.parseDouble(elements[elements.length - 1]));
+
+                    // Matrice
+                    for (int i = 0; i < 5; i++)
+                        setMat(Double.parseDouble(elements[i]), line, i);
+                    break;
+                }
+            } catch (NumberFormatException ex) {
+                ex.printStackTrace();
             }
-
-        } catch (NumberFormatException ex) {
-            ex.printStackTrace();
+            return line;
         }
-    }
 
     /**
      * Print les vecteurs et la matrice
diff --git a/src/Main.java b/src/Main.java
index f528ea1..a403120 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -31,7 +31,7 @@ public class Main {
             String[] elements;
             int widthMat = nbLines(sc);
             sc = new Scanner(f); // remettre le scanner à la première ligne
-            Equation eq = new Equation(widthMat);
+            Equation eq = new Equation(widthMat*2); // lignes supp au cas où, il y a des "="
             int line = 0;
 
             // Max / Min + function obj
@@ -48,7 +48,7 @@ public class Main {
                     case "min":
                     case "max":
                         // création de l'équation dans le sens min
-                        eq.createMinEq(elements, line);
+                        line = eq.createEq(elements, line);
                         break;
                     default:
                         System.err.println("Le sens n'a pas été entré.");
-- 
GitLab