s'il vous plait comme je peux traduire cette ligne de c vers java
MerciCode:V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
Version imprimable
s'il vous plait comme je peux traduire cette ligne de c vers java
MerciCode:V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
Bonjour,
MAT_INOUT correspond à quoi? A une adresse mémoire?
MAT_INOUT est une matrice
Donc on definirait MAT_INOUT[][].
donc
C'est très proche, la seul différence est de ne pas utiliser les pointeurs ;)Code: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 8-)Code: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:
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].... ....
Merci pour vous tous,:ccool:e,