diff --git a/src/Equation.java b/src/Equation.java index 3101072b5fc6123bca3d04ccd75020a7567dea83..dfb4b76673cd1fd93ea0309cc9cb1821ce6f0b9c 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 f528ea11d6fefbca53f9f6fe2c7f09cb4f51d4be..a403120d0406437e8d3c4eeec0e58c9047f639df 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é.");