Documente Academic
Documente Profesional
Documente Cultură
TABLOURI BIDIMENSIONALE
Cuprins
Argument și prezentarea generală a temei . 2
Definiție: .................................................... 4
Declararea matricelor ................................. 6
Citirea și afișarea matricelor ...................... 7
Matrice pătratică ........................................ 8
Aplicabilitate .............................................. 9
1|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
În primul rând, cunoașterea matricelor îți oferă abilitate în rezolvarea problemelor chiar și de
un grad înalt de dificultate. Cunoștințele dobândite la școala nu sunt suficiente uneori pentru toți
elevii, iar pentru asta avem la îndemâna întotdeauna internetul. Am creat acest website pentru a
oferi elevilor posibilitatea de a cunoaște mici detalii și în orice moment să-și reamintească
matricele.
În al doilea rand, din punctul meu de vedere mi sa părut o temă foarte interesantă în care poți
afla multe lucruri noi, care fac parte și din viața de zi cu zi. Doar puțină atenție la ceea ce se
petrece în jurul nostru și îndată ne dăm seama ca tema invatată la informatică se asociază mult cu
unele lucruri. Mi-a plăcut exemplul cu tabla de șah, deoarece sahul este un joc celebru de
strategie în care îți dezvolta capacitatea de a gândi într-un mod deosebit, exact așa și matricele
contribuie la activitatea gândirii raționale.
2|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
3|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
Definiție:
În C++, matricele reprezintă o structură de date standard, folosită pentru a stoca o
colecție de date de același tip, organizate pe linii și coloane. Practic, o matrice este extinderea la
două dimensiuni a unui vector, de unde și numele alternativ de tablou bidimensional. De
asemenea, matricele pot fi privite drept vectori cu elemente de tip vector. (Cu condiția ca vectorii
din urmă să nu conțină și ei la rândul lor elemente de tip vector, căci în acest caz am vorbi despre
tablouri cu mai mult de două dimensiuni).
Rolul general al unei matrice este cel de a reține date aferente tuturor punctelor din plan
(x,y) cu 0<=x<m si 0≤ y<n.Putem asocia ce semnificație vrem axelor OX și OY, iar punctele nu
trebuie să fie neapărat puncte.
4|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
O tablă de șah
Un alt context în care matricele se dovedesc utile este simularea unui meci de șah. Putem
modela tabla de joc drept o matrice pătratică cu 88 linii și 88 coloane. Valoarea unui element ar
putea fi 00 dacă pătrățelul respectiv este liber, sau \pm k±k, unde kk este un număr natural nenul
ce reprezintă codul piesei respective \ 1(1 pentru pion, 22 pentru cal etc.), iar semnul se referă la
culoarea piesei (alb sau negru).
5|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
Declararea matricelor
Declararea tablourilor bidimensionale (matrice) face în C/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];
de exemplu:
int A[5][10];
5 • 10 = 50 de elemente;
6|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
#include <iostream.h>
void main ()
{
int x[10][10], n, m, i, j;//m=matricea, n, m= nr actual de
linii/coloane, i, j=linia, respectiv coloana
cout<<”Dati numarul de linii: “; cin>>n;//citim nr de linii
cout<<”Dati numarul de coloane: “; cin>>m; //citim nr. de
coloane
cout<<”Introduceti elementele matricei: “<<endl;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
cout<<”x["<<i<<"]["<<j<<"]=”;ut<<”Afisam
matricea: “<<endl;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{cout<<x[i][j]<<” “; //si afisam fiecare linie,
respectiv coloana, dar cu un mic spatiu intre elemente
cout<<endl; //dupa fiecare linie terminata,
trebuie sa trecem la alt rand
}
}
7|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
Matrice pătratică
Diagonala principală:
Diagonala secundară:
Elementele de deasupra diagonalei principale sunt a12, a13, a14,…,a1n, a23, a24, a25,…,a2n,
…., an-1 n-1, an-1 n.
Relaţia dintre coordonate comună tuturor elementelor din această zonă este i<j
Elementele a21, a31, a32,…,a41, a42, a43, …..,an1, an2, an n-1 se află sub diagonala principala
și relația dintre coordonate este :i>j
8|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
Aplicabilitate
Identificarea subalgoritmilor:
Programul
principal
CitesteMat eNula
TiparesteMat
9|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
#include <iostream>
using namespace std;
int MAX = 100;
// Citire matrice
void citesteMat(Matrice& a) {
int i, j;
cout << "Dati matricea:\n";
cin >>m >>n;
for (i = 0; i < a.m; i++)
for (j = 0; j < a.n; j++)
cin >> a[i][j];
}
// Afisare matrice
void tiparesteMat(Matrice a) {
for (int i = 0; i < a.m; i++) {
for (int j = 0; j < a.n; j++)
cout << a.[i][j] << " ";
cout << "\n";
}
}
// Aduna o matrice la o matrice data
void suma2Mat(Matrice & a, Matrice b) {
for (int i = 0; i < a.m; i++)
for (int j = 0; j < a.n; j++)
a.elem[i][j] = a.elem[i][j] + b.[i][j];
}
// Verifica daca o matrice are toate elementele cu valoarea 0
bool eNula(Matrice a) {
for (int i = 0; i < a.m; i++)
for (int j = 0; j < a.n; j++)
if (a.elem[i][j] != 0) return false;
return true;
}
10 | P a g e
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA
Bibliografie:
https://www.pbinfo.ro/articole/5620/tablouri-bidimensionale
https://invata.info/2017/02/17/tablouri-bidimensionale-matrici/
https://www.ezinfo.ro/IX/matrice/
11 | P a g e