Matrici C++
Ce este o matrice?
O matrice reprezinta un tablou bidimensional cu elemente de acelasi tip care ocupa locuri consecutive in memorie.
Structurarea matricii este facuta in functie de linii si coloane.
Declaratia unei matrici se realizeaza prin specificarea tipului componentelor matricii, identificatorul matricii urmat apoi de dimensiunea acesteia intre paranteze drepte (numarul de linii si de coloane ale matricii)
Liniile si coloanele matricii se numara incepand de la valoarea 0. Astfel, prima linie, respectiv prima coloana a matricii este linia/coloana 0, a doua linie/coloana este 1, etc.
Matricea patratica este tabloul bidimensional care are numarul liniilor egal cu numarul coloanelor.
O matrice reprezinta un tablou bidimensional cu elemente de acelasi tip care ocupa locuri consecutive in memorie.
Structurarea matricii este facuta in functie de linii si coloane.
Declaratia unei matrici se realizeaza prin specificarea tipului componentelor matricii, identificatorul matricii urmat apoi de dimensiunea acesteia intre paranteze drepte (numarul de linii si de coloane ale matricii)
Liniile si coloanele matricii se numara incepand de la valoarea 0. Astfel, prima linie, respectiv prima coloana a matricii este linia/coloana 0, a doua linie/coloana este 1, etc.
Matricea patratica este tabloul bidimensional care are numarul liniilor egal cu numarul coloanelor.
Parcurgerea matricilor
Citirea (Matrice normala):
cin >> n >> m; // n = numarul liniilor, m = numarul coloanelor for(i = 1; i <= n; i++) // parcurgerea pe linii for(j = 1; j <= m; j++) // parcurgerea pe coloane cin >> a[i][j]; // citirea propriu-zisa a matricii Afisul (Matrice normala):
for(i = 1; i <= n; i++) { for(j =1; j <= m; j++) cout << a[i][j] << " "; // scrierea matricii cout << endl; } |
Citirea (Matrice patratica):
cin >> n // n = numarul liniilor si al coloanelor for(i = 1; i <= n; i++) // parcurgerea pe linii for(j = 1; j <= n; j++) // parcurgerea pe coloane cin >> a[i][j]; // citirea propriu-zisa a matricii Afisul (Matrice patratica):
for(i = 1; i <= n; i++) { for(j =1; j <= n; j++) cout << a[i][j] << " "; // scrierea matricii cout << endl; } |
Componentele unei matrici patratice:
Diagonalele
Diagonala principala(i = j)
Parcugerea directa doar a elementelor:
-de pe diagonala principala: for(i = 1; i <=n; i++) <prelucram a[i][i]> -deasupra diagonalei principale(i < j): for(i = 1;i <= n; i++) for(j = i+1; j <= n; j++) <prelucram a[i][j]> -sub diagonala principala(i > j): for(i = 1; i <=n; i++) for(j = i+1; j <= n; j++) <prelucram a[i][j]> |
Diagonala secundara(i + j = n + 1):
Parcugerea directa doar a elementelor:
-de pe diagonala secundara: for(i = 1; i <=n; i++) <prelucram a[i][n+1-i]> -deasupra diagonalei secundare(i + j < n + 1): for(i = 1; i < n; i++) for(j = 1; j<= n-i; j++) <prelucram a[i][j]> -sub diagonala secundara(i + j > n + 1): for(i = 2; i <= n; i++) for(j = n+2-i; j <= n; j++) <prelucram a[i][j]> |
Zone
Zona de Nord:
-deasupra diagonalei principale: i < j; -deasupra diagonalei secundare: i + j < n + 1; |
Zona de Est:
-deasupra diagonalei principale: i < j; -sub diagonala secundara: i + j > n + 1; |
Zona de Sud:
-sub diagonala principala: i > j; -sub diagonala secundara: i + j > n + 1; |
Zona de Vest:
-sub diagonala principala: i > j; -deasupra diagonalei secundare: i + j < n + 1; |
SIMETRIA MATRICILOR PATRATICE
Simetria fata de diagonala principala:
a[i][j] = a[j][i] |
Simetria fata de diagonala secundara:
a[i][j] = a[n+1-j][n+1-i] |