La variable de semble pas changer de valeur [Fermé]

Signaler
-
Messages postés
16307
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 avril 2021
-
Bonjour à tous le monde!

J'ai un petit problème avec le programme ci-dessous:

------------------------------------------------------------------------------------------------------------

public static void main(String []args){

double[][] M={{11,0,9,8,7},{18,0,18,18,18},{29,28,27,0,25},{6,6,0,6,6},{17,16,15,14,0}};
double[][] M1={{0,8,9,8,7},{18,0,18,18,18},{29,28,27,0,25},{6,6,0,6,6},{17,16,15,14,0}};
double[][] U={{2,2},{2,2},{2,2},{2,2},{2,2}};
double[][] V={{1,1,1,1,1},{1,1,1,1,1}};


System.out.println(updateUElem(M,U,V,0,0));

}

public static double updateUElem( double[][] M, double[][] U, double[][] V, int r, int s ) {

int ligneMatriceM=M.length;
int colonneMatriceM=M[0].length;
int ligneMatriceU=U.length;
int colonneMatriceU=U[0].length;
int ligneMatriceV=V.length;
int colonneMatriceV=V[0].length;

double sommeMatriceVNumerateur=0;
double sommeMatriceVDeonominateur=0;
double sommeNumerateur=0;
double valeurUpdate=0;


for (int j=1;j==colonneMatriceM;++j){
for(int k=1;k==colonneMatriceU;++k){

if (k!=s){
valeurUpdate+=(V[s][j]*(M[r][j]-(U[r][k]*V[k][j])))/(V[s][j]*V[s][j]);

}

}
}

return valeurUpdate;
}
-----------------------------------------------------------------------------------------------------------

A chaque fois que je compile se programme, il me sort tout simplement la valeur d'initialisation de "valeurUpdate". J'ai l'impression qu'il n'effectue pas les boucles for qui se trouve dans la méthode updateUElem.


En espérant que vous pourrez m'aider, je vous adresse Madame, Monsieur, mes meilleures salutations.


1 réponse

Messages postés
16307
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 avril 2021
2 820
Bonjour,

for (int j=1;j==colonneMatriceM;++j){ 
for(int k=1;k==colonneMatriceU;++k){

C'est très faux tout ça.
D'une part les indices de tableau commencent à 0, pas à 1.
D'autre part la condition qui se met au milieu est une condition de continuité, pas une condition d'arrêt.

Remarque : même si ce n'est pas faux on mettra plutôt i++ que ++i sauf si on a vraiment besoin de prioriser l'incrément mais ce n'est pas le cas ici.

for (int j=0; j<colonneMatriceM; j++){ 
for(int k=0; k<colonneMatriceU; k++){