Tablouri bidimensionale. Matricea

  

DEFINIȚIE: O matrice este un tablou bidimensional în care valoarea elementului este identificată prin poziția lui pe linie și pe coloană;

Matricea este un tip de dată omogen (toate elementele de același tip).


Declarare


tip_elem nume_mat[nr_max_l][nr_max_c] 

unde:


tip_elem - tipul elementelor din matrice 

nume_mat - identificatorul variabilei de tip matrice

[nr_max_l] - numărul maxim de linii din matrice 

[nr_max_c] - numărul maxim de coloane din matrice

nr_max_elem = nr_max_l*nr_max_c

Indicii de linie (i) și de coloană (j) pornesc în C++ de la 0.

 

 int x[3][4] 

 x =    -1       6   

        12    19  21           => X[2][3]*9 float a[50][25]

          25  16   9    

 

           Pe cazul general, fiecare element al matricii va purta indice de linie și indice de coloană: 

n - numărul efectiv de linii

- numărul efectiv de coloane 

elementul general a[i][j]:

i - indice de linie

j - indice de coloană


Citire


·      se vor citi mai întâi n, numărul efectiv de linii, apoi m, numărul efectiv de coloane.

·      pentru că trebuie să atingem fiecare linie și fiecare coloană vom folosi la citire două for-uri.


cout << "n="; cin >> n;
cout << "m="; cin >> m; 
for(i=0 ;i  for(j=0 ;j    { cout << "a[" <      cin >> a[i][j];
    }


Afișarea

·      vom afișa matricea sub forma unui tablou și, pentru fiecare linie, vom afișa elementele respective, mutând cursorul pe rândul urmator pentru afișarea elementelor următoarei linii   

·      practic, între cele două for-uri, vom folosi o compusă

for(i=0; i{ for(j=0; j    cout << a[i][j] << ' '; 
  cout << endl; 
}

Prelucrarea

·      se folosesc cele două for-uri pentru a atinge fiecare element din matrice și se impun condițiile enunțate de problemă, fie asupra elementelor, fie asupra coloanei, fie asupra liniei sau a tuturor simultan.

Prelucrarea linie cu linie

for(i=0; i  
  for(j=0; j    prelucrează a[i][j]

EXERCIȚIU ȘI MODEL DE REZOLVARE:

1.      Se citesc de la tastatură cele n*m elemente ale unei matrici, elementele fiind numere întregi. Se cere să se afișeze matricea și să se determine media aritmetică a elementelor din matrice. 

int main () 

{ int a[50][100], n, m, i, j, S=0; 
  float ma; 
  cout << "n="; cin >> n;
  cout << "m="; cin >> m;
  for(i=0 ;i    for(j=0 ;j    { cout << "a[" << i+1 << "][" << j+1 << "]=";
      cin >> a[i][j]; }
  for(i=0;i    for(j=0;j      S+=a[i][j];
  ma=(float)S/(n*m); 
  cout << "ma=" << ma;
  return 0; 

Vezi mai multe despre vectori, probleme rezolvate sau algoritmi în Marea Carte Digitală sau videoclipurile explicative de pe canalul de YouTube.

Ți-a plăcut articolul? Dă-i share 😄

Articolul anterior Tablouri unidimensionale. Vectori
Articolul urmator #StudentLa​: Poli București - Automatică și Calculatoare
Back
x
Acest website utilizează cookie-uri pentru a creea o experiență cât mai plăcută. Învață mai multe Acceptă