Sunteți pe pagina 1din 9

Tabloul cu două dimensiuni – Bidimensionale

Declararea:
tip_data nume [nr_1] [nr_2];
tip_data – tipul elementelor tabloului
nume – identificatorul tabloului
nr_1, nr_2 – două constante întregi, care specifică numărul de
elemente ale matricei pentru fiecare dimensiune : nr_1- numărul de
linii, nr_2 - numărul de coloane.

Declararea|Exemple:
int a[2][4] // matricea a este formată din 8 elemente de tip int, care
are 2 linii și 4 coloane;
float b[3][5]; // matricea b este formată din 15 elemente de tip float,
care are 3 linii și 5 coloane;
int x [10][10], y[100][100]; // au fost declarate două matrici pătratice.

Inițializarea:
tip_dată nume [nr_elemente]={listă_valori};
,,=’’ – separă partea de declarare a vectorului de partea de inițializare
a elementelor lui
{ … } – perechea de separatori se folosește pentru a delimita lista de
valori
listă_valori – conține valorile inițiale ale elementelor, separate prin
caracterul virgulă.

Inițializarea|Exemple:
int a[2][4]={1,2,3,4,5,6,7,8};
int a[2][4]={(1,2,3,4),(5,6,7,8)};

Indici j j=0 j=1 j=2 j=3


Indici i= 1 2 3 4
0
i i= 5 6 7 8
1

Matrice-Patratica
Exemple:
int t[3][3]
t[0][0] = 1 t[1][0] = 5 t[2][0] = 9 t[3][0] = 13
t[0][1] = 2 t[1][1] = 6 t[2][1] = 10 t[3][1] = 14
t[0][2] = 3 t[1][2] = 7 t[2][2] = 11 t[3][2] = 15
t[0][3] = 4 t[1][3] = 8 t[2][3] = 12 t[3][3] = 16
0 1 2 3
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
3 13 14 15 16
- Diagonala principala formula-t[i][i]
- Diagonala secundara formula-t[i][n-i-1]

Cod:
int i, n, m, t[4][4]; // se declara variabilele i și j pentru indicile
elementului
i – numărul liniei
j – numărul coloanei
n și m - pentru lungimea logica a matriciei (n – numărul de linii și m
– numărul de coloane)
Coloane:cout<<”n=“; cin>>n; // se citeste numărul de linii ale
matricei Randurile:cout<<”m=“; cin>>m; // se citeste numărul de
coloane ale matricei
------------------------------------------------------------------------------------
Citire:
for (i=0; i<n; i++) for (j=0; i<m; j++) cin>>m[i][j];
Afisare:
for (i=0; i<n; i++) for (j=0; i<m; j++) cout<<m[i][j];

Exemple
1.Citirea și afișarea elementelor tabloului:
#include <iostream>
using namespace std;
int main()
{
int t[100][100], n, m, i, j;//Declaram variabelele
cout << "Numarul de linii:"; cin >> n;//citim numarul de linii
cout << "Numarul de coloane:"; cin >> m;//citim numarul de coloane

for (i = 0; i < n; i++)//ciclu for pentru parcurgerea liniilor


for (j = 0; j < m; j++)//ciclu for pentru parcurgerea coloanelor
{
cout << "t[" << i << "][" << j << "]=";//afisam t[i][j]=
cin >> t[i][j];//citim t[i][j]
}

for (i = 0; i < n; i++)//ciclu for pentru parcurgerea liniilor


{
for (j = 0; j < m; j++)//ciclu for pentru parcurgerea coloanelor
cout << t[i][j]<<" ";//afisam elementele de pe pozitita i si j
cout << endl;//folosim end-line pentru a afisa sub forma de
matrice
}
}

Rezultat:
2.Interschimbam elementele de pe diagonala principala cu cele
depe diagonala secundara:
#include <iostream>
using namespace std;
int main()
{
int t[100][100], n, i, j, k;//Declaram variabelele

cout << "Nr. linii = nr. coloane = "; cin >> n;//citim nr. de coloane
si de randuri care trebue sa fie egale
for (i = 0; i < n; i++)//parcurgerea rindurilor
for (j = 0; j < n; j++)//parcurgerea coloanelor
{
cin >> t[i][j];//citim elementele
}

for (i = 0; i < n; i++)//parcurgerea rindurilor


{
for (j = 0; j < n; j++)//parcurgerea coloanelor
cout << t[i][j] << " ";//afisam elementele tabloului
cout << endl;
}

for (i = 0; i < n; i++)//parcurgem tabloul pentru interschimbare


{
k = t[i][i];//memoram valoarea t[i][i] intr-o variabila k
t[i][i] = t[i][n - 1 - i];//pozitia t[i][i] primeste valoarea
pozitiei t[i][n - 1 - i]
t[i][n - 1 - i] = k;//poziita t[i][n - 1 - i] primeste valoarea
lui k care e valoarea initiala a lui t[i][i]
}

cout << "Elementele tabloului modificat" << endl;


for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
cout << t[i][j] << " ";
cout << endl;
}

Rezultat:
3.Determinam suma elemtelor de pe fiecare coloana,afisam
coloana suma elementelor care-ia este maxima:
#include <iostream>
using namespace std;
int main()
{
int t[100][100], n, m, i, j, sum, poz = 0, max = 0;//Declaram
variabelele

cout << "Nr. linii = "; cin >> n;//citim nr. de coloane
cout << "Nr. coloane = "; cin >> m;//citim nr. de randuri
for (i = 0; i < n; i++)//parcurgerea rindurilor
for (j = 0; j < m; j++)//parcurgerea coloanelor
{
cin >> t[i][j];//citim elementele
}

for (i = 0; i < n; i++)//parcurgerea rindurilor


{
for (j = 0; j < n; j++)//parcurgerea coloanelor
cout << t[i][j] << " ";//afisam elementele tabloului
cout << endl;
}

for (j = 0; j < m; j++)//determinam suma pe coloane


{
sum = 0;//egalam variabila cu zero pentru a calcula suma fiecarei
coloane
for (i = 0; i < n; i++)//parcurgem coloana
sum += t[i][j];//sumam elementele
cout << "Suma elementelor pe coloana " << j << " este " << sum <<
endl;
if (max < sum)//controlam daca suma e mai mare ca cea precedenta
{
max = sum;//daca e mai mare,memoram valoarea
poz = j;//iar pentru a afisa coloana cu suma maximala
memoram si pozitia ei
}
}
for (i = 0; i < n; i++)
cout << t[i][poz] << endl;//afisam coloana cu suma elementelor
maximala,pentru asta folosim poz coloanei

}
Rezultat:

4.Determinam:
 Suma elementelor matricei
 Formam un nou vector din elementele maximale pe randuri
 Elementul maximal si pozitia lui
#include <iostream>
using namespace std;
int main()
{
int t[100][100], vec[100], n, m, i, j, sum = 0 , p_i, p_j, max =
0;//Declaram variabelele

cout << "Nr. linii = "; cin >> n;//citim nr. de coloane
cout << "Nr. coloane = "; cin >> m;//citim nr. de randuri
for (i = 0; i < n; i++)//parcurgerea rindurilor
for (j = 0; j < m; j++)//parcurgerea coloanelor
{
cin >> t[i][j];//citim elementele
}

for (i = 0; i < n; i++)//parcurgerea rindurilor


{
for (j = 0; j < n; j++)//parcurgerea coloanelor
cout << t[i][j] << " ";//afisam elementele tabloului
cout << endl;
}

for (i = 0; i < n; i++)//determinam suma


for (j = 0; j < m; j++)
{
sum += t[i][j];//sumam toate elementele
}
cout << "Suma elementelor matricei:" << sum << endl;
for (i = 0; i < n; i++)//formama un nou vector din elementele maximale
de pe randuri
{
max = -3200;//initialisam variabila max cu -3200 pentru o
precizie mai mare
for (j = 0; j < m; j++)
if (max < t[i][j]) max = t[i][j];//aflam elementul maximal
vec[i] = max;//punem elementul maximal in vecorul nou
}
cout << "Vectorul din elementele maximale:" << endl;
for (i = 0; i < n; i++)
{
cout << vec[i] << " ";
}
//Determinarea elementului maximal si pozitia
max = -3200;//initialisam variabila max cu -3200 pentru o precizie mai
mare
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
if (max < t[i][j])//controlam ementul maximal
{
max = t[i][j];
p_i = i;//memoram pozitia pe rand
p_j = j;//memoram pozitia pe coloana
}
}
cout << endl << "Elementul maximal=" << max << " este pe pozitia:" <<
endl;
cout << "Linia " << p_i << endl << "Coloana " << p_j;
}
Reziltat:

Daca au mai ramas intrebari in baza temei urmariti


clipul: https://www.youtube.com/watch?v=J1aQ9JN4vZY&t=354s

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