Tes commentaires ne sont pas bons:
- bavards;
- imprécis;
- pas pertinents.
Ne le prends pas mal, c'est pour t'aider à t'améliorer.
intdeterm=0,row,col;// On crée un tableau dans lesquel on stockera les déterminants des cofacteurs de la premiere ligneintdetcofact[]=newint[matrice.col-1];
Cela s'écrit plutôt
intdeterm=0,// accumulateur: calcul du déterminantrow,// curseur des lignescol;// curseur des colonnesintdetcofact[]=newint[matrice.col-1];// déterminants des cofacteurs de la première ligne de matrice.T
(Avec des alignements que je ne peux pas faire ici.)
Dans la deuxième version toutes les lignes sont documentées, la mention on crée un tableau pour y stocker disparaît: une variable sert à stocker une valeur, pas la peine de l'écrire, dit plutôt ce qui est dedans!
publicstaticintdetcofacteur(matmatricofact,intrang,intdim)...// Retour à la ligneSystem.out.println();
Tu trouves ça plus pertinent d'indiquer un retour à la ligne que d'expliquer ce que fait ta fonction auxiliaire et de décrire ses paramètres? Gros problème de hiérarchisation des informations, de plus la paraphrase du code est inutile ou nuisible. Si tu te donnais la peine de faire cette description, tu te donnerais une chance d'écrire une fonction qui fait ce que tu veux en éclaircissant cette histoire dans ta tête.
// si la dimension de la matrice entrée est 1*1, on retourne alors le seul nombre concernéif(dim==1){detcofact=matricofact.T[0][0];}// Sinon on définit la sous matrice par apport a matricofact dont on devra calculer le déterminant, qu'on appelle cofactelse
deviens
// Si la taille de la matrice entrée est 1x1, alors son déterminant detcofact est son unique coefficient// sinon on construit le cofacteur cofact dont on calcule le déterminant detcofact.if(dim==1){detcofact=matricofact.T[0][0];}else
Ceci dit, dans ce fragment la logique me paraît suspecte. Tes commentaires doivent: 1. expliquer ce que font les fonctions et 2. expliquer pourquoi ce qu'elles font donne le bon résultat.
/* Pour un affichage plus propre, si le nombre est négatif et comporte donc un "-", on mettra un espace de moins que si le nombre est positif De même si le nombre a 2 chiffres, on lui enlevera un espace ( donc un nombre a 2 chiffres max). */
C'est bavard, tu n'a pas décrit le travail que fait ta procédure et enfin, ne programmant pas en java j'hésite tout de même à croire qu'il n'y a pas de fonction de type printf qui t'aidera à afficher proprement un tableau de nombres.
Voilà un canvas pour ton programme:
// determinant(MATRICE)// Renvoie le déterminant de la matrice carrée MATRICE. // Calcul par la méthode des cofacteurs.publicstaticintdeterminant(matmatrice){intdeterm=0,// accumulateur: calcul du déterminantj;// curseur des colonnes// Le déterminant d'une matrice 1x1 est son unique coefficeint, on développe le déterminant des matrices de taille plus grande selon la première ligne, grâce à la fonction `comatrice`. if(matrice.col==1){determ=matrice.T[0][0];}else{for(j=0;j<matrice.col;j++){determ+=(-1^j)*matrice.T[0][j]*determinant(comatrice(matrice,0,j));}returndeterm;}// comatrice(MATRICE, I0, J0)// Renvoie la comatrice de MATRICE relative à la position I0, J0.publicstaticmatcomatrice(matmatrice,inti0,intj0){inti,// curseur des lignesintj;// curseur des colonnesmatc=newmat();c.row=matrice.row-1;c.col=matrice.col-1;c.T=newint[c.row][c.col];for(i=0;i<c.col;i++){for(j=0;j<c.row;j++){c.T[i][j]=...}}}
Cette structure est meilleure parcequ'elle met en évidence le caractère récursif de determinantet l'opération élémentaire produire la comatrice qui apparaît dans ton algorithme mais pas dans ton code. Avec ce point de départ plus sein, tu devrais t'en sortir.
# Tes commentaires et ton code
Posté par Michaël (site web personnel) . En réponse au message Programme Déterminant matrice carrée. Évalué à 3.
Tes commentaires ne sont pas bons:
- bavards;
- imprécis;
- pas pertinents.
Ne le prends pas mal, c'est pour t'aider à t'améliorer.
Cela s'écrit plutôt
(Avec des alignements que je ne peux pas faire ici.)
Dans la deuxième version toutes les lignes sont documentées, la mention on crée un tableau pour y stocker disparaît: une variable sert à stocker une valeur, pas la peine de l'écrire, dit plutôt ce qui est dedans!
Tu trouves ça plus pertinent d'indiquer un retour à la ligne que d'expliquer ce que fait ta fonction auxiliaire et de décrire ses paramètres? Gros problème de hiérarchisation des informations, de plus la paraphrase du code est inutile ou nuisible. Si tu te donnais la peine de faire cette description, tu te donnerais une chance d'écrire une fonction qui fait ce que tu veux en éclaircissant cette histoire dans ta tête.
deviens
Ceci dit, dans ce fragment la logique me paraît suspecte. Tes commentaires doivent: 1. expliquer ce que font les fonctions et 2. expliquer pourquoi ce qu'elles font donne le bon résultat.
C'est bavard, tu n'a pas décrit le travail que fait ta procédure et enfin, ne programmant pas en java j'hésite tout de même à croire qu'il n'y a pas de fonction de type printf qui t'aidera à afficher proprement un tableau de nombres.
Voilà un canvas pour ton programme:
Cette structure est meilleure parcequ'elle met en évidence le caractère récursif de
determinantet l'opération élémentaireproduire la comatricequi apparaît dans ton algorithme mais pas dans ton code. Avec ce point de départ plus sein, tu devrais t'en sortir.