La variable de semble pas changer de valeur
sbendix
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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.
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.
A voir également:
- La variable de semble pas changer de valeur
- Changer dns - Guide
- Changer de carte graphique - Guide
- Changer extension fichier - Guide
- Changer wifi chromecast - Guide
- Changer de compte facebook - Guide
1 réponse
Bonjour,
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=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++){