Documente Academic
Documente Profesional
Documente Cultură
Galati 2015
Tablouri bidimensionale.
Matrici pătratice
0
Cuprins:
1. Tema proiectului
2. Consideratii teoretice
3. Probleme tip
4. Concluzie
5. Bibliografie
1
1. Tema proiectului
2
2. Consideratii teoretice
3
3. Probleme tip
Enunt + rezolvari….
4
2.1. Definirea tablourilor bidimensionale
Numim tablou o colecţie (grup, mulţime ordonată) de date, de acelaşi tip, situate într-o zonă de
memorie continuă (elementele tabloului se află la adrese succesive). Tablourile sunt variabile compuse
(structurate), deoarece grupează mai multe elemente. Variabilele tablou au nume, iar tipul tabloului
este dat de tipul elementelor sale. Elementele tabloului pot fi referite prin numele tabloului şi indicii
(numere întregi) care reprezintă poziţia elementului în cadrul tabloului.
În funcţie de numărul indicilor utilizaţi pentru a referi elementele tabloului, putem întâlni tablouri
unidimensionale (vectorii) sau multidimensionale (matricile sunt tablouri bidimensionale).
Din punct de vedere conceptual, elementele unui tablou bidimensional sunt plasate în spaţiu pe două
direcţii. Matricea reprezintă o aplicaţie naturală a tablourilor bidimensionale.
Declararea:
5
2. 2. Reprezentarea in memoria interna. Reprezentare
matematica.
În matematică:
q 11 q 12 q 13 . . . q 1n
q 21 q 22 q 23 . . . q 2n
Q= ......... ..... .. . ......... Q m n
q m1 q m2 q m3 . . . q mn
Exemplu:
double q[3][2]; // declararea matricii q, cu maxim3 linii şi 2 coloane, tip
double
La declararea unei matrici şi iniţializarea elementelor sale, se poate omite numărul maxim de linii, în
schimb, datorită modului de memorare, trebuie specificat numărul maxim de coloane:
int mat[][3] = {
{10, -5, 3},
{32, 20, 1},
6
{-1, 1, -2},
{7, -8, 9} };
Construcţia are acelaşi efect ca precedenta.
int mat[][3] = {
{1, 1},
{ -1},
{3, 2, 1}};
mat reprezintă o matrice 3 3, ale cărei elemente se iniţializează astfel:
mat[0][0]=1, mat[0][1]=1, mat[1][0]=-1, mat[2][0]=3, mat[2][1]=2, mat[2][2]=1
Elementele mat[0][2], mat[1][1], mat[1][2] nu sunt initalizate. Ele au valoarea zero dacă tabloul este
global şi valori iniţiale nedefinite dacă tabloul este automatic.
7
2. 3. Prelucrarea componentelor. Parcurgerea
tablorilor bidimensionale
Citirea tablourilor bidimensionale
Citirea elementelor unui tablou nu este posibilă decât prin citirea fiecărui element. De aceea, la
fel ca şi în cazul vectorilor operaţia de citire a matricilor impune folosirea a două secvenţe
ciclice suprapuse. Acestea corespund indicelor liniei (i), respectiv coloanei (j).
Operaţia de afișare a matricilor impune folosirea a două secvenţe ciclice suprapuse. Acestea
corespund indicelor liniei (i), respectiv coloanei (j).
Algoritm :
#include <iostream>
int main()
{
int n,m,i,j,a[20][20];
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++) Citirea matricei
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];}
for(i=1;i<=m;i++)
{ for(j=1;j<=n;j++)
cout<<a[i][j]<<" "; Afisarea matricei
cout<<endl;
}
return 0;
}
8
2.4. Matrici patratice
Definire
Este un caz particular de matrice pentru care numărul de linii este egal cu numărul de coloane.
Exemplu:
int matrice[3][3]; // declararea tabloului matrice (bidimensional),
// maximum 3 linii şi maximum 3 coloane, tip int
Diagonala principala
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 secundara
Diagonala secundară conţine elementele a1,n, a2,n-1, a3,n-2, ..., an,1 caracterizate de relaţia i+j=n+1.
Diagonala secundara
a1 a2 a1 a1 . a1
1 2 3 4 . n
a2 a2 a2 a2 . a2
1 2 3 4 . n
a3 a3 a3 a3 . a3
1 2 3 4 . n Diagonala principala
a4 a4 a4 a4 . a4
1 2 3 4 . n
.. .. .. .. . ..
.
an an an an. an
1
2 3 .
Zonele delimitate de
4 n
diagonale
V E
9
10
4. Concluzie
11
2. Bibliografie
12