Informatică, întrebare adresată de sikesjack1, 8 ani în urmă

Buna! As vrea sa reprezint o matrice ca un vector, adica elementele matricii sa fie stocate intr-un vector si sa ma joc cu indicii in asa fel incat sa ii pot accesa cu succes. Nu stiu cum sa fac asta sau cum sa caut pe google, ma puteti ajuta?

Răspunsuri la întrebare

Răspuns de andrei750238
0

Buna ! O sa presupun ca te referi la limbajul C++.

O matrice este practic un vector de vectori.

Declararea unei matrice (numere intregi):

int a[n][m];

unde a - numele matricei, n - numarul de linii, m-numarul de coloane

Accesarea elementelor unei matrice

a[i][j]

unde i- numarul liniei, j - numarul coloanei

Exemplu :

Avem matricea a=

\left[\begin{array}{ccc}1&2&3\\4&5&6\\7&8&9\end{array}\right]

a[1][1] = 1

a[1][2] = 2

a[1][3] = 3

a[2][1] = 4

a[2][2] = 5

a[2][3] = 6

a[3][1] = 7

a[3][2] = 8

a[3][3] = 9

cout << a[2][3]; -> Se afiseaza valoarea 6

Dupa cum vezi o matrice e foarte asemanatoare cu un vector.

Alte intrebari ?


sikesjack1: Nu asta era intrebarea, cum as putea sa afisez un matrice cu un singur vector gen, indicele elementului sa fie o combinatie ale liniilor si ale coloanelor. Am facut odata ceva asemanator dar nu stiu cum sa il caut iar :))
andrei750238: cu o singura instrucțiune for ? nu înțeleg ce vrei sa zici cu "un singur vector"
sikesjack1: Pai ma refer ca stochezi elementele din matrice liniar
andrei750238: i -> Numarul liniei
j -> Numarul coloanei
n -> Numarul total de coloane
m -> Numarul total de linii

Presupunem ca incepem indexarea de la 0

Transformarea din matrice in vector :
a[i][j] = v[i*n+j]
andrei750238: unde i - numarul liniei (in interval [0,m))
si j - numarul coloane (in interval [0,n))
andrei750238: Exemplu :

1 2 3
4 5 6
7 8 9
10 11 12

v[0+0] = 1
v[0+1] = 2
v[0+2] = 3
v[1*3+0] = 4
v[1*3+1] = 5
v[1*3+2] = 6
v[2*3+0] = 7
v[2*3+1] = 8
v[2*3+2] = 9
v[3*3+0] =10
v[3*3+1] =11
v[3*3+2] =12
andrei750238: Asta cautai ?
Alte întrebări interesante