diff --git a/src/Main.java b/src/Main.java
index 344975b5e1f37f502e64cd5ddda00f16f7522c5b..a0dcae37ae2df194eb90944e4aa9d20c6c487335 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -17,7 +17,7 @@ public class Main {
             count++;
             sc.nextLine();
         }
-        return count - 1; // A cause de la premiere ligne
+        return count - 1; // À cause de la premiere ligne
     }
 
     /**
@@ -38,20 +38,22 @@ public class Main {
      * @param args arguments en entrées
      */
     public static void main(String[] args) throws FileNotFoundException, RuntimeException {
+        // Definition des variables, récupération du fichier à utiliser saisi par l'utilisateur et mode débogage
         Scanner readFile = new Scanner(System.in);
-        System.out.println("Entrez le nom du fichier à tester SANS EXTENSION, il doit se situer dans le dossier src. (Ex: input)");
+        System.out.println("Entrez le nom du fichier à tester SANS EXTENSION, " +
+                "il doit se situer dans le dossier src. (Ex: input)");
         String nameFile = readFile.nextLine();
         File f = new File("src/" + nameFile + ".txt");
         System.out.println("Souhaitez vous activer le débogage ? y / n");
         String readingDebug = readFile.nextLine();
         boolean debugging = false;
-
         switch (readingDebug) {
             case "y" -> debugging = true;
             case "n" -> debugging = false;
             default -> System.err.println("Une erreur a été détectée lors de la saisie du débogage");
         }
 
+        // Calcule du temps d'exécution et création de l'équation
         long start = System.nanoTime();
         Scanner sc = new Scanner(f);
         String[] elements;
@@ -93,12 +95,17 @@ public class Main {
 
         // true = phase 1 membres de droite pas admissible | false = phase 2 membres de droite admissible
         if (spx.which_phase()) {
+            // Création du tableau auxiliaire et pivot dessus
             Matrix m = spx.tabAux();
+            // Calcul du temps d'exécution
             long stop = System.nanoTime();
             long duration = TimeUnit.MILLISECONDS.convert(stop - start, TimeUnit.NANOSECONDS);
+            // Affichage des résultats
             spx.resultPrint(m, duration);
         } else {
+            // Juste le pivot sur la matrice d'écart
             spx.pivot(spx.getMatEcart(), false);
+            // Si mode débogue, afficher chaque pivot
             if(debugging) {
                 spx.printSimplex(spx.getMatEcart(), "Résultat");
                 System.out.println("Nombre de pivot: " + spx.getNbPivot());
@@ -106,6 +113,7 @@ public class Main {
             // Mesure du temps
             long stop = System.nanoTime();
             long duration = TimeUnit.MILLISECONDS.convert(stop - start, TimeUnit.NANOSECONDS);
+            // Affichage du résultat
             spx.resultPrint(spx.getMatEcart(), duration);
         }
 
diff --git a/src/Matrix.java b/src/Matrix.java
index d7f3202c9f51745a79d46c7d94dd3aab9427cb1c..7dcf1f662bd47382e30481f0944a014c8472ff54 100644
--- a/src/Matrix.java
+++ b/src/Matrix.java
@@ -1,5 +1,5 @@
 public class Matrix {
-    private int line; // Lignes
+    private int line;
     private int col; // Colonnes
     private double[][] data;
 
@@ -23,32 +23,64 @@ public class Matrix {
         this.data[line][col] = d;
     }
 
+    /**
+     * Constructeur d'une matrice
+     *
+     * @param line le nombre de lignes
+     * @param col  le nombre de colonnes
+     */
     public Matrix(int line, int col) {
         this.line = line;
         this.col = col;
         this.data = new double[line][col];
     }
 
+    /**
+     * Remplir la matrice grâce à une autre matrice
+     *
+     * @param line nombre de lignes de la matrice passée en paramètre
+     * @param col  nombre de colonnes de la matrice passée en paramètre
+     * @param tab  la matrice qui sert à remplir celle de la classe
+     * @throws IndexOutOfBoundsException Si matrice passée en paramètre en + grande que celle de la classe
+     */
     public void matrixFill(int line, int col, double[][] tab) throws IndexOutOfBoundsException {
+        // Parcourir
         for (int i = 0; i < line; i++) {
             for (int j = 0; j < col; j++) {
+                // Si index contenu dans la matrice de la classe, ajouter la valeur dans celle-ci
                 if (i < tab.length && j < tab[i].length)
                     this.data[i][j] = tab[i][j];
             }
         }
     }
 
+    /**
+     * Réallouer la matrice (changer le nombre de ligne(s) / colonne(s))
+     *
+     * @param line nombre de lignes
+     * @param col  nombre de colonnes
+     */
     public void matrixRealloc(int line, int col) {
+        // Stocker temporairement les données
         double[][] tmp = this.data;
+        // Réallouer le nb de ligne(s) / colonne(s)
         this.line = line;
         this.col = col;
         this.data = new double[line][col];
+        // Remplir la nouvelle matrice avec les anciennes valeurs (le reste à 0)
         matrixFill(line, col, tmp);
     }
 
+    /**
+     * Print une matrice
+     *
+     * @param s Titre d'une matrice
+     */
     public void matrixPrint(String s) {
+        // Titre
         System.out.println();
         System.out.println(s + ": ");
+        // Parcourir la matrice et afficher les valeurs arrondies au centième
         for (int i = 0; i < line; i++) {
             for (int j = 0; j < col; j++) {
                 System.out.format("%10.2f", this.data[i][j]);
@@ -57,6 +89,13 @@ public class Matrix {
         }
     }
 
+    /**
+     * Print du tableau auxiliaire comme dans l'énnoncé
+     * @param s le titre
+     * @param nbX nombre de X
+     * @param nbZ nombre de Z
+     * @param nbAux nombre d'auxiliaires
+     */
     public void printTabAux(String s, int nbX, int nbZ, int nbAux) {
         System.out.println("---------------------------");
         System.out.println(s);
diff --git a/src/Simplex.java b/src/Simplex.java
index e102f07bc18299483eeab7e566b9a0618fdd81e7..2fe6e0c0aa40fbbd1da652fdee19ba4af81875f4 100644
--- a/src/Simplex.java
+++ b/src/Simplex.java
@@ -1,15 +1,15 @@
 import java.util.Arrays;
 
 public class Simplex {
-    private boolean debugging;
-    private Matrix matEcart;
-    private Matrix tabAux;
-    private int nbSousCondition;
-    private int ligne; // Ligne
-    private int colonne; // Colonne
+    private final boolean debugging; // booléen de debug
+    private final Matrix matEcart; // matrice d'écart
+    private final Matrix tabAux; // matrice auxiliaire (tableau auxiliaire en phase 1)
+    private final int nbSousCondition;
+    private final int ligne; // Ligne
+    private final int colonne; // Colonne
     private int nbPivot;
-    private static double EPSILON = 0E-7;
-    private int nbContraintes;
+    private static final double EPSILON = 0E-7;
+    private final int nbContraintes;
 
     public Matrix getMatEcart() {
         return matEcart;
@@ -109,7 +109,7 @@ public class Simplex {
             System.out.println("Il n'y a pas de solutions admissibles pour ce problème.");
         }
         if (Math.abs(solutionOptimale) < EPSILON || solutionOptimale == 0) {
-            // Il y a une solution optimale
+            // Il y a une solution optimale.
             // Il faut enlever les variables auxilaires
             Matrix res = new Matrix(matEcart.getLine(), matEcart.getCol());
             res.matrixFill(res.getLine(), res.getCol(), tabAux.getDatas());
@@ -136,7 +136,7 @@ public class Simplex {
      * @param mat   Matrix
      * @param phase true => phase 1 | false => phase 2
      */
-    void pivot(Matrix mat, boolean phase) {
+     void pivot(Matrix mat, boolean phase) {
         this.nbPivot += 1;
         int firstNeg = getFirstNeg(mat);
         if (firstNeg == -1) return; // si pas de négatif
@@ -171,30 +171,60 @@ public class Simplex {
             pivot(mat, phase);
     }
 
+    /**
+     * Récupérer l'id de la ligne du pivot
+     * @param mat le tableau auxiliaire
+     * @param y la colonne où l'on va chercher le pivot
+     * @param phase la phase dans laquelle on se situe
+     * @return l'id de la ligne du pivot
+     */
     int ligneSortante(Matrix mat, int y, boolean phase) {
+        // phase 1 on ne va pas chercher dans les deux dernières lignes
+        // phase 2, on ne va pas chercher dans la dernière ligne
         int depth = phase ? mat.getLine() - 2 : mat.getLine() - 1;
+        // On commence à chercher à l'id 0
         int id = 0;
+        // La première vérification permet de s'assurer qu'on ne tombe pas sur un 0
+        // La 2ᵉ vérification permet de vérifier qu'au plus profond de la matrice il s'agit bien d'un négatif
         while (!(mat.getData(id, y) > 0) && mat.getData(id, depth) >= 0) {
             id++;
         }
+
+        // On divise le membre de droite par la valeur de la matrice en question
         double tmp = mat.getData(id, mat.getCol() - 1) / mat.getData(id, y);
         double tmp_s;
+        // On parcourt toutes la ligne
         for (int i = 1; i < depth; i++) {
+            // Si la valeur est plus grande que 0
             if (mat.getData(i, y) > 0) {
+                // On divise le membre de droite par la valeur de la matrice en question
                 tmp_s = mat.getData(i, mat.getCol() - 1) / mat.getData(i, y);
+                // Si la valeur actuelle est plus petite que la valeur stockée précedement,
+                // on sauvegarde l'id de celui-ci
                 if (tmp_s < tmp) {
                     id = i;
                     tmp = tmp_s;
                 }
             }
         }
+        // On retourne l'id
         return id;
     }
 
+    /**
+     * Print les informations des matrices pour le mode débogage
+     * @param mat la matrice souhaitée
+     * @param s le titre
+     */
     public void printSimplex(Matrix mat, String s) {
         mat.matrixPrint(s);
     }
 
+    /**
+     * Print du résultat comme dans l'énnoncé
+     * @param m la matrice
+     * @param time le temps de l'exécution
+     */
     public void resultPrint(Matrix m, long time) {
         int line = m.getLine() - 1;
         int col = m.getCol() - 1;