Documente Academic
Documente Profesional
Documente Cultură
Declarare
tip_de_date nume_matrice[numar_linii][numar_coloane];
Exemplu:
int a[101][10]; // declararea matricei a, cu maxim 101 linii şi 10 coloane, tip int
double a[7][5]; // declararea matricei a, cu maxim 7 linii şi 5 coloane, tip double
Dacă se doreşte iniţializarea elementelor unei matrice în momentul declarării
acesteia, se poate proceda astfel:
int mat[4][3] = {{11, -50, 4}, {32, 25, 1}, {-1, 10, -2}, {7, -28, 15} };
Prin această construcţie, elementele matricei mat se iniţializează în modul următor:
mat[0][0]=11, mat[0][1]=-50, mat[0][2]=4
mat[1][0]=32, mat[1][1]=25, mat[1][2]=1
mat[2][0]=-1, mat[2][1]=10, mat[2][2]=-2
mat[3][0]=7, mat[3][1]=-28, mat[3][2]=15
11 -50 4
32 25 1
-1 10 -2
7 -28 15
Elementele mat[0][2], mat[1][1], mat[1][2] nu sunt inițializate. Ele au valoarea zero dacă
tabloul este global şi valori iniţiale nedefinite dacă tabloul nu e declarat global.
Operaţii cu matrice
Adunarea matricelor
Se consideră o matrice cu m linii şi n coloane A cu i indicele de linie şi j indicele de coloană,
a11 a12 ... a1n
a21 a22 ... a2 n
unde i 1, m şi j 1, n de forma A şi o matrice B de forma
... ... ... ...
a
m1 am 2 ... am 3
b11 b12 ... b1n
b b22 ... b2 n
B 21 .
... ... ... ...
b bm 2 ... bm 3
m1
Matricea sumă C=A+B se obţine astfel:
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
c[i][j]=a[i][j]+b[i][j];
Matricea pătratică
Un tablou de dimensiune n*n se numeşte pătratic.
Exemplu:
i=j
a11 a12 a13 a14 a15
a21 a22 a23 a24 a25
Fie matricea A a31 a32 a33 a34 a35 .
a41 a42 a43 a44 a45
a
51 a52 a53 a54 a55
diagonala principală: ai , i
Dacă trasăm cele două diagonale matricea poate fi împărțită în 4 zone: Nord, Est, Sud
și Vest.
Condițiile verificate de indicii elementelor din aceste zone sunt prezentate mai jos:
Nord: i<j && i+j<n-1
Est: i<j && i+j>n-1
Sud: i>j && i+j>n-1
Vest: i>j && i+j<n-1
V E
S
-afişarea elementelor din nord:
for(i=1;i<=n/2;i++)
for(j=i+1;j<=n-i;j++)
cout<<a[i][j]<<” ” ;
-afişarea elementelor din sud:
for(i=n/2+1;i<=n;i++)
for(j=n+2-i;j<=i-1;j++)
cout<<a[i][j]<<” ” ;
-afişarea elementelor din vest(acelaşi algoritm de la nord dar pe matricea transpusă):
for(i=1;i<=n/2;i++)
for(j=i+1;j<=n-i;j++)
cout<<a[j][i]<<” ” ;
-afişarea elementelor din est(acelaşi algoritm de la sud dar pe matricea transpusă):
for(i=n/2+1;i<=n;i++)
for(j=n+2-i;j<=i-1;j++)
cout<<a[j][i]<<” ” ;