s'il vous plait comme je peux traduire cette ligne de c vers java
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
s'il vous plait comme je peux traduire cette ligne de c vers java
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
Bonjour,
MAT_INOUT correspond à quoi? A une adresse mémoire?
Donc on definirait MAT_INOUT[][].
donc
C'est très proche, la seul différence est de ne pas utiliser les pointeurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part VOut[row]+=MAT_INOUT[row*size1][col]*V_IN[col];
Edit=Effectivement j'avais oublié le +=, merci de l'avoir remarqué
Si je suppose que size1 est la taille d'une ligne, et row le numero de ligne, ça devrait plutôt être (ne pas oublier le +=)
Oui, la notation Java est exactement la même que celle pour le C, dans ce cas
Code : Sélectionner tout - Visualiser dans une fenêtre à part VOut+=MAT_INOUT[row][col]*V_IN[col];
D'ailleurs, pourquoi faire les calculs manuels d'indice dans le tableau (en C), plutôt que d'utiliser les opérateurs [] ? C'est je trouve plus simple à relire.
Ca vient peut-être de sa définition de la matrice : http://c.developpez.com/faq/index.ph...LOC_tableau_2D
Ah oui, j'avais vu ça en cours. Je me suis fait violence et j'ai appris très vite la première écriture pour ne pas passer par la seconde qui me paraissait casse-gueule vu mon niveau.
A noter qu'il n'y a pas équivalence, pour une matrice déclarée T MAT[size2][size1], entre MAT[i][j] et MAT[i*size1+j].
Une expression analogue à la deuxième est utilisée lorsqu'on veut voir le tableau 2D comme un tableau 1D (le plus souvent dans une fonction).
Dans ce cas, on utilise l'adresse du premier T, soit &MAT[0][0], et on calcule nous-même la position de l'élément i,j de MAT
M[i] est équivalent à *(M+i) .
MAT[i][j]est donc équivalent à *(MAT[i]+j) == *(*(MAT+i)+j) (merci à la notation [] !)
et MAT[0][0] == *(*(MAT)) == **MATet on a &MAT[0][0] == *MAT == MAT[0] .
On aura donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 T MAT[size2][size1]; ...fonc( T* mat....) // définition d'une fonction { .....mat[i*size1+j].... } ....fonc(MAT[0]....); // Appel de la fonction .... ....MAT[0][i*size1+j].... .... T * pmat = MAT[0]; ....pmat[i*size1+j].... ....
Partager