Informatică Gimnaziu (5-8)

Tabouri bidimensionale (matrici): declarare, parcurgere pe linii si coloane

Un tablou bidimensional (numit și matrice) este o colecție ordonată de elemente de același tip, aranjate pe rânduri (linii) și coloane. În C++, o matrice se declară specificând tipul, numele și dimensiunile: int a[3][4]; înseamnă o matrice cu 3 linii și 4 coloane, deci 12 elemente. Indexarea începe de la 0: primul element este a[0][0], ultimul a[2][3].

Parcurgerea se face cel mai adesea cu două bucle for imbricate: prima pentru linii, a doua pentru coloane. Parcurgerea pe linii înseamnă că variabila exterioară este linia (i), iar cea interioară este coloana (j). Pentru parcurgere pe coloane, ordinea se inversează: variabila exterioară este coloana (j), iar cea interioară este linia (i).

Citirea și afișarea se fac element cu element, de obicei cu cin și cout. Matricele sunt utile pentru reprezentarea tabelelor, imaginilor, hărților sau a oricăror date structurate pe două dimensiuni. Inițializarea se poate face la declarare: int m[2][3] = {{1,2,3},{4,5,6}}; Dacă nu specificăm toate elementele, restul se completează cu 0.

Atenție: dimensiunile trebuie să fie constante cunoscute la compilare (dacă nu folosim alocare dinamică). O greșeală frecventă este confundarea indicilor: primul indice este întotdeauna linia, al doilea coloana. Parcurgerea corectă este esențială pentru prelucrarea datelor, cum ar fi calculul sumei pe linii, a minimului pe coloane sau afișarea în formă de tabel.

Exemple

  • Exemplul 1: Declarare și citire elemente. Se declară o matrice de 3 linii și 4 coloane, se citesc valorile de la tastatură și se afișează sub formă de tabel. Cod: int a[3][4]; for(int i=0;i<3;i++) for(int j=0;j<4;j++) cin>>a[i][j]; for(int i=0;i<3;i++){ for(int j=0;j<4;j++) cout<<a[i][j]<<' '; cout<<endl; } Aceasta afișează matricea linie cu linie.
  • Exemplul 2: Calculul sumei elementelor pe fiecare linie. Se declară o matrice 4x5, se completează cu numere random sau se citesc, apoi pentru fiecare linie i se calculează suma elementelor de pe acea linie. Cod: int s; for(int i=0;i<4;i++){ s=0; for(int j=0;j<5;j++) s+=a[i][j]; cout<<"Suma pe linia "<<i<<" este "<<s<<endl; } Se observă parcurgerea pe linii: i exterior, j interior.
  • Exemplul 3: Parcurgere pe coloane pentru a găsi minimul pe fiecare coloană. Se declară o matrice 3x3, se initializează cu valori, apoi se parcurge cu j exterior (coloane) și i interior (linii). Cod: int minn; for(int j=0;j<3;j++){ minn=a[0][j]; for(int i=1;i<3;i++) if(a[i][j]<minn) minn=a[i][j]; cout<<"Minimul pe coloana "<<j<<" este "<<minn<<endl; } Astfel se evidențiază diferența dintre parcurgerea pe linii și pe coloane.

Concepte cheie: Matricea este un tablou bidimensional cu elemente de același tip., Declarare: tip nume[linii][coloane];, Parcurgerea se face cu două bucle for: prima pentru linii, a doua pentru coloane (sau invers pentru parcurgere pe coloane)., Indexarea începe de la 0., Citirea și afișarea se fac element cu element.

Vrei exerciții pe lecția asta + AI care te ajută pas cu pas?
Cont gratuit — 20 întrebări AI/zi, exerciții nelimitate.

Creează cont