Sunteți pe pagina 1din 10

Tablouri bidimensionale -

introducere
Declararea matricelor
• Declararea tablourilor bidimensionale (matrice) face în C++ similar cu a tablourilor
unidimensionale, dar trebuie precizate două dimensiuni fizice, maximale: numărul maxim de linii
și numărul maxim de coloane ale matricei:
• tipDeBază denumire[NumarLinii][NumarColoane]
• Exemplu: int A[5][10]
Exempl
• int A[5][10]; Am declarat un tablou
bidimensional (o matrice) cu 5 linii
și 10 coloane. Ni-l putem imagina astfel
(valorile sunt aleatorii):
• Matricea are:
• 5 • 10 = 50 de elemente;
Referirea
elementelor
• 5 linii, indexate (numerotate) de la 0 la 4 – mai jos
sunt evidențiate liniile cu indici 1 și 3;
• 10 coloane, indexate de la 0 la 9 – mai jos sunt
evidențiate coloanele cu indici 0, 4 și 9;
• Referirea elementelor se face prin intermediul
operatorului C++ de indexare [], la fel ca în cazul
vectorilor, dar trebuie precizați doi indici – cel de linie
și cel de coloană. Astfel, A[2][4] reprezintă elementul
matricei aflat pe linia 2 și pe coloana 4 – la intersecția
dintre linia 2 și coloana 4. Astfel primul indice al unui
element este cel de linie, iar al doilea indice este cel
de coloană.
Observație
• Observație: Cade în sarcina programatorului să se
asigure că valorile indicilor folosiți în expresiile de
indexare fac parte din intervalul corect, conform
declarării tabloului. Dacă valorile indicilor nu sunt
corecte, comportamentul programului este
impredictibil: rezultatele obținute vor fi eronate sau
se vor produce erori la execuția programului. Aceste
erori la execuție sunt de regulă semnalate pe pbinfo
cu mesajul Killed by signal 11 sau Caught fatal signal
11.
• De exemplu, pentru matricea de mai sus,
expresiile A[-1][7], A[2][20], A[7][7], A[7][30] sunt
greșite. Rezultatele (efectele) sunt impredictibile.
Legatura dintre matrice si tablourile
unidimensionale C++
• Ne putem gândi la un tablou bidimensional în două moduri:
• A este o matrice;
• A are linii și coloane.
• A[1][9] este elementul aflat pe linia 1 și coloana 9;
• A este o un vector; elementele lui A sunt vectori;
• A[1] este un vector – reprezintă o linie din matricea A;
• A[1][9] este un element al vectorului A[1]
Introducem numarul de linii si coloane
Citim numarul de linii si coloane de la
tastatura
Introducem doua matrici care au fiecare
cate n linii si m coloane fiecare.

int n, m;
cin>>n>>m;
int x[n][m], y[n][m];
Acest for citeste de la tastatura valorile de pe fiecare linie si
coloana din prima matrice

for(int i=1; i<=n; i++)


{
for(int j=1; j<=m; j++)
{
cin>>x[i][j];
}
}
Acest for citeste de la tastatura valorile de pe
fiecare linie si coloana din a doua matrice

for(int i=1; i<=n; i++)


{
for(int j=1; j<=m; j++)
{
cin>>y[i][j];
}
}
Acest for inmulteste fiecare linie si coloana din prima
matrice cu linia si coloana aferenta din a doua matrice.

for(int i=1; i<=n; i++)


{
for(int j=1; j<=m; j++)
{
cout<<x[i][j]*y[i][j]<<" ";
}
cout<<endl;
}

S-ar putea să vă placă și