Didaxis
lecție · Informatică

Diagonalele matricei

Pozițiile pe diagonale și regiuni raportate la ele.

Se face în:
Clasa a X-a
Actualizat la: 30 octombrie 2026
1pe scurtstratul 1 din 3 · rezumatul lecției

Pe scurt

Într-o matrice pătratică de ordin , diagonala principală are poziții , iar diagonala secundară are poziții , cu indici de la 0. Pentru matricea de ordin 3 cu liniile , , , diagonalele sunt 1, 5, 9 și, respectiv, 3, 5, 7.

Desen la lecția „Diagonalele matricei”
2în detaliustratul 2 din 3 · pentru clasă și Bacalaureat

În detaliu

O matrice este pătratică dacă are același număr de linii și de coloane. Într-o matrice pătratică de ordin , cu indici de la 0, diagonala principală conține elementele a[i][i], adică pozițiile cu , iar diagonala secundară conține elementele a[i][n-1-i], adică pozițiile cu . Cu indici de la 1, condiția diagonalei secundare este . Poziția aflată deasupra diagonalei principale are , iar cea aflată **sub** ea are . Față de diagonala secundară, pozițiile de deasupra au , iar cele de dedesubt . Pentru impar, elementul central, a[n/2][n/2], aparține ambelor diagonale; pentru par, diagonalele nu au nicio poziție comună. Parcurgerea unei diagonale folosește un singur ciclu, cu pași, nu două cicluri imbricate.

Exemplul 1 — sumele diagonalelor. Pentru matricea cu liniile , , , diagonala principală conține 1, 5, 9, iar cea secundară conține 3, 5, 7.

#include <iostream>
using namespace std;
int main() {
    int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int principal = 0, secundar = 0;
    for (int i = 0; i < 3; ++i) {
        principal += a[i][i];
        secundar += a[i][2 - i];
    }
    cout << principal << " " << secundar;
    return 0;
}

Se afișează 15 15. Elementul central, 5, apare în ambele sume. Dacă se cere suma elementelor distincte de pe cele două diagonale, centrul se numără o singură dată: .

Exemplul 2 — regiunile față de diagonala principală. În aceeași matrice, elementele de deasupra diagonalei principale () sunt , cu suma 11, iar cele de dedesubt () sunt , cu suma 19. Împreună cu diagonala principală (suma 15), cele trei regiuni acoperă toate elementele: , adică suma tuturor numerelor de la 1 la 9. Un ciclu dublu cu testul i < j parcurge exact regiunea de deasupra, iar i + j == n - 1 selectează diagonala secundară.

int sus = 0, jos = 0;
for (int i = 0; i < 3; ++i)
    for (int j = 0; j < 3; ++j) {
        if (i < j) sus += a[i][j];
        if (i > j) jos += a[i][j];
    }

Secvența lasă sus = 11 și jos = 19.

Exemplul 3 — construirea unei matrice după regulă. Pentru , cu și indici de la 0, matricea are liniile , și . Valorile de pe diagonala secundară sunt toate egale cu , pentru că pe ea. Pe diagonala principală valorile sunt . Condiția explică de ce toate elementele diagonalei secundare au aceeași valoare în această matrice. Aceeași matrice se obține cu două cicluri imbricate: for (i...) for (j...) a[i][j] = i + j;. O matrice cu 1 pe ambele diagonale și 0 în rest se completează cu testul if (i == j || i + j == n - 1) a[i][j] = 1; else a[i][j] = 0;; pentru rezultă liniile , și , cu cinci valori de 1.

Exemplul 4 — ordin par și diagonalele alăturate. Fie și , adică liniile , , , . Diagonala principală are elementele , cu suma 34, iar cea secundară are , tot cu suma 34. Pentru par nu există element central, deci cele 8 elemente sunt distincte și suma lor este . Diagonala de deasupra celei principale conține elementele cu , adică , cu suma 21; ciclul for (i = 0; i + 1 < n; ++i) s += a[i][i+1]; face doar pași. Diagonala de dedesubt, cu , are elementele și suma 30.

3pentru admiterestratul 3 din 3 · pentru examene

Pentru admitere

Condiția pentru diagonala principală este , pentru cea secundară (cu indici de la 0). Deasupra diagonalei principale avem , iar sub ea . Verifică dacă problema folosește indici de la 0 sau de la 1; formula diagonalei secundare se schimbă în consecință. Pentru ordin impar, nu număra elementul central de două ori când unești diagonalele. La numărarea elementelor dintr-o regiune, calculează întâi câte poziții are: deasupra diagonalei principale a unei matrice de ordin sunt poziții, deci 3 pentru și 6 pentru . Elementele de pe diagonale sunt pentru impar și pentru par. Un singur ciclu for (i...) cu cele două accesări a[i][i] și a[i][n-1-i] face pași, iar două cicluri imbricate cu testul i == j || i + j == n - 1 fac verificări, adică 100 pentru față de 10.

Exemplu în formatul examenului. Ce se afișează în urma executării secvenței de mai jos?

int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int t = 0;
for (int i = 0; i < 3; ++i)
    for (int j = 0; j < 3; ++j)
        if (i == j || i + j == 2)
            t += a[i][j];
cout << t;
  • a) 15
  • b) 20
  • c) 25
  • d) 30

Răspunsul corect este c). Condiția selectează elementele de pe cele două diagonale. Instrucțiunea if este evaluată o singură dată pentru fiecare pereche , deci elementul central, pentru care ambele condiții sunt adevărate, se adună o singură dată: . Varianta d) ar rezulta dacă centrul s-ar număra de două ori, , iar varianta a) numără numai o diagonală.

Greșeli frecvente

  • Greșit: diagonala secundară conține elementele a[i][i].
    Corect: conține a[i][n-1-i], deci perechile cu .
  • Greșit: pentru ordin impar, diagonalele nu au niciun element comun.
    Corect: au elementul central.
  • Greșit: formula se păstrează neschimbată la indici de la 1.
    Corect: atunci condiția este .
în contul tăuPremium

Testează-te pe această lecție

Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.

Înainte și după

Surse și referințe

Redactare proprie, conform programei:

  • OMECI 5099/2009, anexa 5, Informatică, p. 4–5, clasa X; plan de încadrare: OMECI 3410/2009, anexa 1, p. PDF 1–14; forum.isj.hd.edu.ro; filiera tehnologică: OMECI 3412/2009, anexa 2, tabel X, legislatie.just.ro
  • OMECI 5099/2009, anexa 5, Informatică, p. 4–5, clasa X; rocnee.eu
  • UNSTPB, Regulament admitere licență 2026, Anexa II-1.2 p. Anx II-14 și Anexa XI-3 p. Anx XI-6–7 (PDF p. 64, 120–121); admitere.pub.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 3–4; edu.ro

Documente consultate

  • UNSTPB, admitere 2026, anexa XI-3, p. Anx XI-6–7
  • Programa școlară de informatică, clasa a X-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu
  • Programa școlară de informatică, clasa a IX-a, matematică-informatică (OMEC 6930/2025, anexa 42); rocnee.eu
  • Programa de bacalaureat la informatică, matematică-informatică (anexa 2 la OMECTS 4800/2010), Ministerul Educației, p. 3–4; edu.ro
  • Subiectele și baremele Bacalaureatului 2026; subiecte2026.edu.ro

Desene: Redactare proprie (desen original)

lecțiile sunt gratuite

Ai citit lecția. Acum verifică-te.