Sunteți pe pagina 1din 12

COLEGIUL NAȚIONAL DE INFORMATICĂ

„SPIRU HARET” SUCEAVA

TABLOURI BIDIMENSIONALE

Proiect pentru obținerea certificatului de atestare a


competențelor profesionale a absolvenților claselor de
matematică-informatică, intensiv informatică.

Profesor îndrumator, Candidat,


Mocanu Corina Strugaru Vasile
Clasa a XII-a B

Sesiunea mai 2022


COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA

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

Argument și prezentarea generală a temei

Pentru atestarea competențelor profesionale am ales tema „Tablourilor bidimensionale”


întrucât acest capitol joacă un rol important în susținerea examenului de bacalaureat. Am îndrăgit
această temă din punct de vedere al interesului, cum ar avea loc prelucrarea matricelor.

Î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

Resurse hardware si software necesare

Pentru a accesa proiectul este nevoie de folosirea unui browser.

Realizarea și utilizarea aplicației

Am folosit Google Sites pentru a crea prezentarea.

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).

▪ Tabloul bidimensional este o structură omogenă de date de același tip, organizată pe


linii și coloane.

La ce putem folosi o matrice?

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.

Harta unei livezi

Majoritatea problemelor clasice cu matrice încep în stilul următor:

Paftenie avea o livadă cu pomi fermecați. Fiind pasionat de matematică, Paftenie a


plantat în mod riguros pomii pe m rânduri dispuse paralel, iar pe fiecare rând a plantat n pomi
echidistanți. Fiecare pom poate fi identificat prin rândul pe care se află și poziția sa în cadrul
rândului respectiv. Pomii pot fi de trei feluri: meri, peri sau vișini.

4|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA

Stocarea unei imagini


Un exemplu similar este cel în care vrem să stocăm o imagine alb-negru. Pentru fiecare
pixel de coordonate (x, y)(x,y) putem reține nuanța sa de alb, pe o scară de la 00 la 255255. Dacă
imaginea ar fi coloră, atunci ar trebui să reținem câte trei numere pentru fiecare pixel – nuanțele
de roșu, verde și albastru.

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;

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;

6|Page
COLEGIUL NAȚIONAL DE INFORMATICĂ „SPIRU HARET” SUCEAVA

Citirea și afișarea matricelor


for (i=0; i<n; i++)
for (j=0; j<m; j++)
cin>>x[i][j];

#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ă

Matricea pătratică este tabloul cu

n linii si n coloane bidimensionale.

Diagonala principală:

Diagonala principală este formată din elementele care îndeplinesc relația

i = j – numărul liniei este egal cu numărul coloanei pe care se află.

Diagonala secundară:

Diagonala secundară conţine elementele a1n, a2 n-1 , a3 n-2,…,an1 caracterizate de


relaţia:i+j=n=1

Zona de deasupra diagonalei principale:

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

Zona de sub diagonala principală:

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

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