Documente Academic
Documente Profesional
Documente Cultură
<tip_dată> <nume_tablou>[<nr_linii>][<nr_coloane>];
Apelarea elementelor
<nume_tablou>[<linie>][<coloană>]
Pentru a ne referi la un element din matrice, vom avea în vedere ordinea
indicilor precedați de paranteze pătrate. Primul indice marchează linia pe care se
află, iar al doilea coloana.
Elementul apelat prin x[a][b] se află pe linia a și coloana b.
De cele mai multe ori se va citi pe linii, câte un element în fiecare coloană de pe
linia respectivă.
int a[101][101],n,m;
cin>>n>>m;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
cin>>a[i][j];
Primul for parcurge fiecare linie, iar pentru fiecare linie se trece prin fiecare
coloană (al doilea for) pentru a avea acces la fiecare poziție în parte.
Se citește, pe rând, fiecare element, însumând un total de n*m elemente.
Foarte asemănător citirii, când afișăm elementele unei matrice vom parcurge
linie cu linie, coloană cu coloană, și vom afișa fiecare element în parte.
int a[101][101],n,m;
...
for(int i=0; i<n; i++){
for(int j=0; j<m; j++)
cout<<a[i][j];<<' ';
cout<<'\n';;
}
Se folosește aceeași metodă de „nested for loops” pentru a parcurge fiecare
element și pentru a le afișa. În acest exemplu, de afișare, am considerat n ca
fiind numărul de linii, iar m numărul de coloane.
Pentru formatarea afișării, între elementele de pe aceeași linie se va găsi un
spațiu, iar la sfârșitul fiecărei linii vom afișa un rând nou, pentru a reprezenta
sugestiv liniile taboului.
Parcurgerea unei matrice în C++
Parcurgerea unei matrice poate părea un pic mai greu de înțeles. Când
vorbim de parcurgerea unei matrice, vrem să parcurgem elementele sale linie cu
linie, de sus în jos și de la stânga la dreapta — exact cum se afișează pixelii pe
un televizor:
int main()
{
cin >> n >> m; //Citim numărul de linii și de coloane
int main()
{
cin >> n >> m; //Citim numărul de linii și de coloane
#include <iostream>
int main()
{
cin >> n >> m; //Citim numărul de linii și de coloane
//Citim matricea
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
cin >> a[i][j];
}
}
//Afișăm matricea
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
cout << a[i][j] << " ";
}
cout << "\n";
}
return 0;
}
Matrici pătratice
Ce este o matrice pătratică?
O matrice pătratică este o matrice particulară, cu același număr de linii și de
coloane — adică cu n == m. Pentru simplitate, vom menționa doar n-ul,
deoarece m-ul are aceeași valoare. Matricea de acest tip are o serie de
particularități care se folosesc în anumite probleme.
Diagonala principală și diagonala secundară
Diagonala principală a unei matrice este diagonala care începe din colțul
stânga-sus și se termină în colțul dreapta-jos. Mai exact, un element a[i]
[j] aparține diagonalei principale dacă i == j.
Similar, diagonala secundară este cealaltă diagonală, care începe din
colțul dreapta-sus și se termină în cel stânga-jos. Un element a[i][j] aparține
diagonalei secundare dacă i + j == n + 1, sau cu alte cuvinte, j == n - i + 1 (unde
matricea este indexată de la 1).
În imaginea de mai jos, diagonala principală este cea roșie, diagonala secundară
este cea albastră, elementul 4 (din mijloc) aparținând ambelor diagonale.
Matricea pătratică este tabloul bidimensional cu număr egal de linii și coloane.
O matrice cu n linii și n coloane se numește matrice de ordin n.
Diagonala principală a[i][i]