MeditatiiDirect.ro Logo
MeditatiiDirect.ro
Educație la un click distanță
MeditatiiMateriiAdmitereTutorialePregatire BACSubiecte BACVariante BACBlog
InformaticăliceuClasa 9mediu

Matrice în C++ - Operații și Algoritmi

Declarare, parcurgere, operații pe matrice: diagonale, spirală, rotire și algoritmi comuni.

3 luni în urmă
0 vizualizări
25 minute

Matrice în C++

Declarare și Inițializare

1#include <iostream>
2using namespace std;
3
4int main() {
5    // Declarare statică
6    int mat[100][100];
7    int n, m; // linii, coloane
8    
9    // Declarare cu inițializare
10    int a[3][3] = {
11        {1, 2, 3},
12        {4, 5, 6},
13        {7, 8, 9}
14    };
15    
16    // Declarare dinamică (vector de vectori)
17    vector<vector<int>> v(n, vector<int>(m, 0));
18    
19    return 0;
20}

Citire și Afișare

1void citire(int mat[][100], int& n, int& m) {
2    cin >> n >> m;
3    for (int i = 0; i < n; i++) {
4        for (int j = 0; j < m; j++) {
5            cin >> mat[i][j];
6        }
7    }
8}
9
10void afisare(int mat[][100], int n, int m) {
11    for (int i = 0; i < n; i++) {
12        for (int j = 0; j < m; j++) {
13            cout << mat[i][j] << " ";
14        }
15        cout << endl;
16    }
17}

Diagonale (Matrice Pătratică)

1// Diagonala principală: i == j
2// Diagonala secundară: i + j == n - 1
3
4void diagonale(int mat[][100], int n) {
5    cout << "Diagonala principală: ";
6    for (int i = 0; i < n; i++) {
7        cout << mat[i][i] << " ";
8    }
9    cout << endl;
10    
11    cout << "Diagonala secundară: ";
12    for (int i = 0; i < n; i++) {
13        cout << mat[i][n - 1 - i] << " ";
14    }
15    cout << endl;
16    
17    // Deasupra diagonalei principale: i < j
18    // Sub diagonala principală: i > j
19}

Transpusa

1void transpusa(int mat[][100], int n) {
2    for (int i = 0; i < n; i++) {
3        for (int j = i + 1; j < n; j++) {
4            swap(mat[i][j], mat[j][i]);
5        }
6    }
7}

Rotire 90° în Sens Orar

1void rotire90(int mat[][100], int n) {
2    // Pas 1: Transpusa
3    for (int i = 0; i < n; i++) {
4        for (int j = i + 1; j < n; j++) {
5            swap(mat[i][j], mat[j][i]);
6        }
7    }
8    
9    // Pas 2: Inversare coloane
10    for (int i = 0; i < n; i++) {
11        for (int j = 0; j < n / 2; j++) {
12            swap(mat[i][j], mat[i][n - 1 - j]);
13        }
14    }
15}

Parcurgere în Spirală

1void parcurgereSpirala(int mat[][100], int n, int m) {
2    int top = 0, bottom = n - 1;
3    int left = 0, right = m - 1;
4    
5    while (top <= bottom && left <= right) {
6        // Dreapta
7        for (int j = left; j <= right; j++)
8            cout << mat[top][j] << " ";
9        top++;
10        
11        // Jos
12        for (int i = top; i <= bottom; i++)
13            cout << mat[i][right] << " ";
14        right--;
15        
16        // Stânga
17        if (top <= bottom) {
18            for (int j = right; j >= left; j--)
19                cout << mat[bottom][j] << " ";
20            bottom--;
21        }
22        
23        // Sus
24        if (left <= right) {
25            for (int i = bottom; i >= top; i--)
26                cout << mat[i][left] << " ";
27            left++;
28        }
29    }
30}

Înmulțire Matrice

1void inmultire(int A[][100], int B[][100], int C[][100], 
2               int n, int m, int p) {
3    // A[n][m] * B[m][p] = C[n][p]
4    for (int i = 0; i < n; i++) {
5        for (int j = 0; j < p; j++) {
6            C[i][j] = 0;
7            for (int k = 0; k < m; k++) {
8                C[i][j] += A[i][k] * B[k][j];
9            }
10        }
11    }
12}

Tutorialul te-a ajutat?

Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații

MeditatiiDirect.ro Logo
MeditatiiDirect.ro

Platforma educationala din Romania pentru meditatii particulare. Profesori verificati, recenzii reale, inscriere gratuita.

Cauta sau publica anunturi gratuit pentru toate materiile scolare.

Meditatii

  • Meditatii
  • Meditatii Matematica
  • Meditatii Informatica
  • Meditatii Romana
  • Meditatii Engleza
  • Anunturi Meditatii
  • Meditatii Online
  • Ore Online
  • Meditatii BAC
  • Meditatii Bucuresti
  • Meditatii Cluj-Napoca
  • Meditatii Timisoara
  • Meditatii Iasi
  • Meditatii Fizica
  • Meditatii Chimie
  • Meditatii Biologie

Materii Populare

  • Matematică
  • Limba Română
  • Limba Engleză
  • Informatică
  • Fizică
  • Toate Materiile →

Platforma

  • Cum functioneaza
  • Pentru elevi si parinti
  • Pentru profesori
  • Intrebari frecvente
  • Despre noi
  • Publica anunt gratuit

Resurse

  • Profesor Particular
  • Pregatire BAC
  • Admitere Facultate
  • Universitati Romania
  • Facultati Medicina
  • Facultati Informatica
  • Facultati Politehnica
  • Facultati Drept
  • Facultati Economice
  • Facultati Psihologie
  • Grile UPB
  • Grile Medicina
  • Grile Auto 2026
  • Variante BAC 2026
  • Simulare BAC 2026
  • Subiecte BAC
  • Subiecte Admitere
  • Titularizare 2025
  • Tutoriale
  • Blog educational
  • Ore Online
  • Profesori Online
  • Contact

MeditatiiDirect.ro este o platforma educationala din Romania unde gasesti meditatii si profesori particulari verificati pentru matematica, limba romana, engleza, informatica, fizica, chimie si alte materii. Disponibil in Bucuresti, Cluj-Napoca, Timisoara, Iasi si toata Romania, inclusiv meditatii online. Publica sau gaseste anunturi meditatii gratuit, programeaza ore online cu profesori verificati, cauta un profesor particular sau incepe meditatii BAC si admiterea la facultate.

© 2026 MeditatiiDirect. Toate drepturile rezervate.