~Wolf~
03-12-2020, 11:20 PM
Matrici
Dupa mult timp revin cu un alt tutorial si anume cu matricile.
Din tutorialele precedente, ati observat ca C++ ne permite stocarea a mai multe numere intr-o singura variabila si anume intr-un tablou unidimensional, sau cum il stim cu totii: vectorul.Tot C++ ne permite stocarea a acelorasi numere, dar intr-o forma mai organizata si mai extinsa.Ca sa intelegeti mai usor, o matrice poate fi considerata o lista de tablouri unidimensionale.
Exemplu de matrici:
1 2 3
4 5 6
7 8 9
4 12 40 123
1 5 9 1
2 4 4 4
Declararea matricilor e la fel de simpla ca declararea vectorilor.O matrice are 2 dimensiuni: un numar de linii si un numar de coloane.Astfel in primul exemplu avem 3 linii si 3 coloane, iar a 2-a 3 linii si 4 coloane.
ATENTIE!
*La fel ca la vector, parcurgerea matricilor SE INCEPE DE LA 0
Declarare
tip_variabila nume_matrice[dimensiunea1][dimensiunea2]
unde
-dimensiunea1 este numarul liniilor
-dimensiunea2 este numarul coloanelor
Deci, in exemplul 1 vom considera o matrice de numere naturale si o vom declara astfel:
unsigned int a[3][3]
-tipul variabilei: unsigned int(matrice de numere naturale)
-numele variabilei(a matricii): a
-numarul de linii: 3
-numarul de coloane: 3
Astfel observam ca
a[0][0]=1 a[0][1]=2 a[0][2]=3
a[1][0]=4 a[1][1]=5 a[1][2]=6
a[2][0]=7 a[2][1]=8 a[2][2]=9
In al doilea exemplu vom avea urmatoarea declarare:
unsigned int a[3][4]
-avem 3 linii si 4 coloane
Asadar:
a[0][0]=4 a[0][1]=12 a[0][2]=40 a[0][3]=123
a[1][0]=1 a[1][1]=5 a[1][2]=9 a[1][3]=1
a[2][0]=2 a[2][1]=4 a[2][2]=4 a[2][3]=4
Acum ca am terminat partea de teorie si avem o idee despre ce inseamna o matrice, va voi invata sa cititi si sa afisati o matrice:
#include <iostream>
using namespace std;
int main()
{
//vom citi si afisa o matrice de 5 linii si 5 coloane
//ne folosim de variabila n sa citim numarul de linii
//ne folosim de variabila n sa citim numarul de coloane
//OBSERVATIE!
//chiar daca declaram o matrice de 5 linii si 5 coloane
//putem folosi mai putin din ea, de exemplu 2 linii si 3 coloane s.a.m.d
unsigned int n, m, matrice[5][5];
cout << "Introduceti numarul liniilor: ";
cin >> n;
cout << "Introduceti numarul coloanelor: ";
cin >> m;
//aici puteti declara matricea astfel:
//unsigned matrice[n][m];
//astfel consumati cat mai putina memorie si veti folosi doar ce aveti nevoie
cout << "Introduceti elementele matricei: " << endl;
for (unsigned int i = 0; i < n; i++)//ne deplasam pe linii
{
for (unsigned int j = 0; j < m; j++)//ne deplasam pe fiecare element al liniei i
{
cin >> matrice[i][j];//citim elementul de pe linia i si coloana j
}
}
for (unsigned int i = 0; i < n; i++)
{
for (unsigned int j = 0; j < m; j++)
{
cout << matrice[i][j] << ' ';//afisam elementele de pe linia i
}
cout << endl;//trecem pe alta linie, pentru un aspect mai frumos al matricei
}
return 0;
}
Am ales 3 linii si 5 coloane,iar programul va arata asa:
<b>You have to register to ba able to see this link</b>
In urmatorul tutorial va voi invata despre diagonale si inca cateva lucruri.
Sper ca ati inteles si ca v-am fost de ajutor.Pentru intrebari lasati reply va rog.Multumesc pentru atentie si spor la programat! :)
Dupa mult timp revin cu un alt tutorial si anume cu matricile.
Din tutorialele precedente, ati observat ca C++ ne permite stocarea a mai multe numere intr-o singura variabila si anume intr-un tablou unidimensional, sau cum il stim cu totii: vectorul.Tot C++ ne permite stocarea a acelorasi numere, dar intr-o forma mai organizata si mai extinsa.Ca sa intelegeti mai usor, o matrice poate fi considerata o lista de tablouri unidimensionale.
Exemplu de matrici:
1 2 3
4 5 6
7 8 9
4 12 40 123
1 5 9 1
2 4 4 4
Declararea matricilor e la fel de simpla ca declararea vectorilor.O matrice are 2 dimensiuni: un numar de linii si un numar de coloane.Astfel in primul exemplu avem 3 linii si 3 coloane, iar a 2-a 3 linii si 4 coloane.
ATENTIE!
*La fel ca la vector, parcurgerea matricilor SE INCEPE DE LA 0
Declarare
tip_variabila nume_matrice[dimensiunea1][dimensiunea2]
unde
-dimensiunea1 este numarul liniilor
-dimensiunea2 este numarul coloanelor
Deci, in exemplul 1 vom considera o matrice de numere naturale si o vom declara astfel:
unsigned int a[3][3]
-tipul variabilei: unsigned int(matrice de numere naturale)
-numele variabilei(a matricii): a
-numarul de linii: 3
-numarul de coloane: 3
Astfel observam ca
a[0][0]=1 a[0][1]=2 a[0][2]=3
a[1][0]=4 a[1][1]=5 a[1][2]=6
a[2][0]=7 a[2][1]=8 a[2][2]=9
In al doilea exemplu vom avea urmatoarea declarare:
unsigned int a[3][4]
-avem 3 linii si 4 coloane
Asadar:
a[0][0]=4 a[0][1]=12 a[0][2]=40 a[0][3]=123
a[1][0]=1 a[1][1]=5 a[1][2]=9 a[1][3]=1
a[2][0]=2 a[2][1]=4 a[2][2]=4 a[2][3]=4
Acum ca am terminat partea de teorie si avem o idee despre ce inseamna o matrice, va voi invata sa cititi si sa afisati o matrice:
#include <iostream>
using namespace std;
int main()
{
//vom citi si afisa o matrice de 5 linii si 5 coloane
//ne folosim de variabila n sa citim numarul de linii
//ne folosim de variabila n sa citim numarul de coloane
//OBSERVATIE!
//chiar daca declaram o matrice de 5 linii si 5 coloane
//putem folosi mai putin din ea, de exemplu 2 linii si 3 coloane s.a.m.d
unsigned int n, m, matrice[5][5];
cout << "Introduceti numarul liniilor: ";
cin >> n;
cout << "Introduceti numarul coloanelor: ";
cin >> m;
//aici puteti declara matricea astfel:
//unsigned matrice[n][m];
//astfel consumati cat mai putina memorie si veti folosi doar ce aveti nevoie
cout << "Introduceti elementele matricei: " << endl;
for (unsigned int i = 0; i < n; i++)//ne deplasam pe linii
{
for (unsigned int j = 0; j < m; j++)//ne deplasam pe fiecare element al liniei i
{
cin >> matrice[i][j];//citim elementul de pe linia i si coloana j
}
}
for (unsigned int i = 0; i < n; i++)
{
for (unsigned int j = 0; j < m; j++)
{
cout << matrice[i][j] << ' ';//afisam elementele de pe linia i
}
cout << endl;//trecem pe alta linie, pentru un aspect mai frumos al matricei
}
return 0;
}
Am ales 3 linii si 5 coloane,iar programul va arata asa:
<b>You have to register to ba able to see this link</b>
In urmatorul tutorial va voi invata despre diagonale si inca cateva lucruri.
Sper ca ati inteles si ca v-am fost de ajutor.Pentru intrebari lasati reply va rog.Multumesc pentru atentie si spor la programat! :)