Laboratorul 1 – API
1. Determinați suma și produsul elementelor unei matrice.
#include <iostream>
using namespace std;
int main() {
int n, m;
cout << "Introduceti numarul de randuri: ";
cin >> n;
cout << "Introduceti numarul de coloane: ";
cin >> m;
int matrice[n][m];
cout << "Introduceti elementele matricei:" << endl;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> matrice[i][j];
}
}
int suma = 0;
int produs = 1;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
suma += matrice[i][j];
produs *= matrice[i][j];
}
}
cout << "Suma elementelor matricei este: " << suma << endl;
cout << "Produsul elementelor matricei este: " << produs << endl;
return 0;
}
2. Determinați suma și produsulu elementelor de pe diagonala principală dintr-o
matrice pătratică.
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cout << "Introduceti dimensiunea matricei patratice: ";
cin >> n;
vector<vector<int>> matrice(n, vector<int>(n));
cout << "Introduceti elementele matricei:" << endl;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cin >> matrice[i][j];
int suma = 0;
int produs = 1;
for (int i = 0; i < n; ++i) {
suma += matrice[i][i];
produs *= matrice[i][i];
cout << "Suma elementelor de pe diagonala principala este: " << suma << endl;
cout << "Produsul elementelor de pe diagonala principala este: " << produs <<
endl;
return 0;
3. Determinați suma și produsulu elementelor de pe diagonala secundară dintr-o
matrice pătratică.
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Introduceți dimensiunea matricei pătratice: ";
cin >> n;
int matrice[n][n];
cout << "Introduceți elementele matricei:" << endl;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cin >> matrice[i][j];
int suma = 0;
int produs = 1;
for (int i = 0; i < n; ++i) {
suma += matrice[i][n - i - 1];
produs *= matrice[i][n - i - 1];
cout << "Suma elementelor de pe diagonala secundară este: " << suma << endl;
cout << "Produsul elementelor de pe diagonala secundară este: " << produs <<
endl;
return 0;
4. Aflați cel mai mic/cel mai mare element dintr-o matrice
#include <iostream>
#include <limits.h> // pentru INT_MAX și INT_MIN
using namespace std;
int main() {
int n, m;
cout << "Introduceți numărul de rânduri: ";
cin >> n;
cout << "Introduceți numărul de coloane: ";
cin >> m;
int matrice[n][m];
cout << "Introduceți elementele matricei:" << endl;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> matrice[i][j];
} int celMaiMic = INT_MAX; // Începem cu valoarea maximă posibilă
int celMaiMare = INT_MIN;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
if (matrice[i][j] < celMaiMic) {
celMaiMic = matrice[i][j];
if (matrice[i][j] > celMaiMare) {
celMaiMare = matrice[i][j];
cout << "Cel mai mic element din matrice este: " << celMaiMic << endl;
cout << "Cel mai mare element din matrice este: " << celMaiMare << endl;
return 0;
5. Aflați cel mai mare/mic element de pe o linie, dintr-o matrice
#include <iostream>
#include <limits.h>
using namespace std;
int n, m, a[101][101];
int main()
cout << "Introduceti numarul de linii: ";
cin >> n;
cout << "Introduceti numarul de coloane: ";
cin >> m;
cout << "Introduceti elementele matricei:" << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
int linie;
cout << "Introduceti numarul liniei pentru care doriti sa gasiti maximul si minimul:
";
cin >> linie;
if (linie < 1 || linie > n) {
cout << "Linie invalidă!" << endl;
return 0;
int maxim = INT_MIN;
int minim = INT_MAX;
for (int j = 1; j <= m; j++) {
if (a[linie][j] > maxim) {
maxim = a[linie][j];
if (a[linie][j] < minim) {
minim = a[linie][j];
cout << "Cel mai mic element de pe linia " << linie << " este: " << minim << endl;
cout << "Cel mai mare element de pe linia " << linie << " este: " << maxim << endl;
return 0;
6. Aflați cel mai mic/mare element de pe o coloană, dintr-o matrice.
#include <iostream>
#include <limits.h>
using namespace std;
int n, m, a[101][101];
int main()
cout << "Introduceti numarul de linii: ";
cin >> n;
cout << "Introduceti numarul de coloane: ";
cin >> m;
cout << "Introduceti elementele matricei:" << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
int coloana;
cout << "Introduceti numarul coloanei pentru care doriti să gasiti maximul si
minimul: ";
cin >> coloana;
if (coloana < 1 || coloana > m) {
cout << "Coloana invalida!" << endl;
return 0;
int maxim = INT_MIN;
int minim = INT_MAX;
for (int i = 1; i <= n; i++) {
if (a[i][coloana] > maxim) {
maxim = a[i][coloana];
if (a[i][coloana] < minim) {
minim = a[i][coloana];
cout << "Cel mai mic element de pe coloana " << coloana << " este: " << minim <<
endl;
cout << "Cel mai mare element de pe coloana " << coloana << " este: " << maxim
<< endl;
return 0;
7. Calculați transpusa unei matrice.
#include <iostream>
using namespace std;
int n, m, a[101][101], transpusa[101][101];
int main()
cout << "Introduceti numarul de linii: ";
cin >> n;
cout << "Introduceti numarul de coloane: ";
cin >> m;
cout << "Introduceti elementele matricei:" << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
transpusa[j][i] = a[i][j];
cout << "Transpusa matricei este:" << endl;
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
cout << transpusa[i][j] << " ";
}
cout << endl;
return 0;
8. Eliminați o linie/coloană dintr-o matrice.
#include <iostream>
using namespace std;
int n, m, a[101][101];
int main() {
cout << "Introduceti numarul de linii: ";
cin >> n;
cout << "Introduceti numarul de coloane: ";
cin >> m;
cout << "Introduceti elementele matricei:" << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
cout << "Matricea initiala este:" << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout << a[i][j] << " ";
cout << endl;
int linie;
cout << "Introduceti numarul liniei pe care doriti sa o eliminati (1-" << n << "): ";
cin >> linie;
if (linie < 1 || linie > n) {
cout << "Linie invalida!" << endl;
return 0;
for (int i = linie; i < n; i++) {
for (int j = 1; j <= m; j++) {
a[i][j] = a[i + 1][j];
n--;
cout << "Matricea după eliminarea liniei este:" << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout << a[i][j] << " ";
cout << endl;
}
int coloana;
cout << "Introduceti numarul coloanei pe care doriti sa o eliminati (1-" << m << "): ";
cin >> coloana;
if (coloana < 1 || coloana > m) {
cout << "Coloana invalida!" << endl;
return 0;
for (int j = coloana; j < m; j++) {
for (int i = 1; i <= n; i++) {
a[i][j] = a[i][j + 1];
m--;
cout << "Matricea dupa eliminarea coloanei este:" << endl;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout << a[i][j] << " ";
cout << endl;
return 0;