Skip to content
Snippets Groups Projects
Commit e14015ae authored by thibault.capt's avatar thibault.capt
Browse files

change min/max

parent 8c10bb96
No related branches found
No related tags found
No related merge requests found
Manifest-Version: 1.0
Main-Class: Main
...@@ -49,10 +49,6 @@ public class Equation { ...@@ -49,10 +49,6 @@ public class Equation {
this.rightVec.add(d); this.rightVec.add(d);
} }
public Double[][] getMat() {
return mat;
}
public Double getMatAtId(int w, int h) { public Double getMatAtId(int w, int h) {
return mat[w][h]; return mat[w][h];
} }
...@@ -70,14 +66,20 @@ public class Equation { ...@@ -70,14 +66,20 @@ public class Equation {
/** /**
* Récupérer les information de la première ligne (sens + fonction obj) * Récupérer les information de la première ligne (sens + fonction obj)
* @param elements * @param elements inéquation
*/ */
public void setFirstLine(String[] elements) { public void setFirstLine(String[] elements) {
try { try {
setSens(elements[0]); setSens(elements[0]);
if(getSens().equals("min")) {
for (int i = 1; i < elements.length; i++) { for (int i = 1; i < elements.length; i++) {
setFuncObj(Double.parseDouble(elements[i])); setFuncObj(Double.parseDouble(elements[i]));
} }
} else {
for (int i = 1; i < elements.length; i++) {
setFuncObj(-Double.parseDouble(elements[i]));
}
}
} catch (NumberFormatException ex) { } catch (NumberFormatException ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
...@@ -85,8 +87,8 @@ public class Equation { ...@@ -85,8 +87,8 @@ public class Equation {
/** /**
* Créer le vecteurs éléments de droite et la matrice Amxn quand le sens est à min * Créer le vecteurs éléments de droite et la matrice Amxn quand le sens est à min
* @param elements * @param elements les elements
* @param line * @param line la line en question
*/ */
public void createMinEq(String[] elements, int line) { public void createMinEq(String[] elements, int line) {
try { try {
...@@ -103,62 +105,6 @@ public class Equation { ...@@ -103,62 +105,6 @@ public class Equation {
} }
} }
/**
* Créer le vecteurs éléments de droite et la matrice Amxn quand le sens est à max
* @param elements
* @param line
*/
public int createMaxEq(String[] elements, int line) {
try {
// vecteur de droite
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();
}
return line;
}
/**
* Ajouter dans le vecteur de droite
* @param elements
*/
public void addInRightVec(String[] elements){
}
/** /**
* Print les vecteurs et la matrice * Print les vecteurs et la matrice
*/ */
......
...@@ -20,7 +20,7 @@ public class Main { ...@@ -20,7 +20,7 @@ public class Main {
/** /**
* Fonction main * Fonction main
* @param args * @param args arguements en entrées
*/ */
public static void main(String[] args) { public static void main(String[] args) {
try { try {
...@@ -29,7 +29,7 @@ public class Main { ...@@ -29,7 +29,7 @@ public class Main {
String[] elements; String[] elements;
int widthMat = nbLines(sc); int widthMat = nbLines(sc);
sc = new Scanner(f); // remettre le scanner à la première ligne sc = new Scanner(f); // remettre le scanner à la première ligne
Equation eq = new Equation(widthMat*2); // ajout de ligne supp si sens: max et = donc + 1 ligne Equation eq = new Equation(widthMat);
int line = 0; int line = 0;
// Max / Min + function obj // Max / Min + function obj
...@@ -44,13 +44,10 @@ public class Main { ...@@ -44,13 +44,10 @@ public class Main {
switch(eq.getSens()) { switch(eq.getSens()) {
case "min": case "min":
case "max":
// création de l'équation dans le sens min // création de l'équation dans le sens min
eq.createMinEq(elements, line); eq.createMinEq(elements, line);
break; break;
case "max":
// création de l'équation dans le sens max (rajout de line si besoin dans la matrice)
line = eq.createMaxEq(elements, line);
break;
default: default:
System.err.println("Le sens n'a pas été entré."); System.err.println("Le sens n'a pas été entré.");
System.exit(1); System.exit(1);
......
min;8;7.5;12;5;9; max;8;7.5;12;5;9;
3.5;4;6;3;9;<=;22.6; 3.5;4;6;3;9;<=;22.6;
5;2;8;1;2.5;>=;3; 5;2;8;1;2.5;>=;3;
0;1;0;1;0;=;1; 0;1;0;1;0;=;1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment