Afișarea Elementelor unei Matrice în Funcție de Diagonala Principală 30
1. Obiectivele lecției:
- Să înțeleagă conceptul de diagonală principală a unei matrice.
- Să implementeze algoritmi pentru afișarea elementelor aflate pe, sub sau deasupra diagonalei principale.
- Să aplice acest concept pentru rezolvarea unor probleme practice.
2. Conținutul lecției:
Ce este diagonala principală a unei matrice?
- Definiție: Diagonala principală a unei matrice pătratice este formată din elementele situate pe linia iii și coloana iii, unde iii variază de la 0 la n−1n-1n−1 (dimensiunea matricei).
- Exemplu: Matricea A de dimensiune 4×4
- A=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
- Diagonala principală: 1,6,11,16
- Deasupra diagonalei principale: 2,3,4,7,8,12
- Sub diagonala principală: 5,9,10,13,14,15
Algoritmul pentru identificarea poziției elementelor
- Pe diagonala principală:
- Elementele se află pe pozițiile i=j.
- Deasupra diagonalei principale:
- Elementele se află pe pozițiile i<j.
- Sub diagonala principală:
- Elementele se află pe pozițiile i>j.
3. Cod în C++
Exemplu 1: Afișarea elementelor pe diagonala principală
#include <iostream>
using namespace std;
void afisareDiagonalaPrincipala(int mat[][4], int dim) {
cout << „Elementele de pe diagonala principala sunt: „;
for (int i = 0; i < dim; i++) {
cout << mat[i][i] << ” „;
}
cout << endl;
}
int main() {
int mat[4][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
afisareDiagonalaPrincipala(mat, 4);
return 0;
}
Exemplu 2: Afișarea elementelor deasupra și sub diagonala principală
#include <iostream>
using namespace std;
void afisareDeasupraDiagonalei(int mat[][4], int dim) {
cout << „Elementele de deasupra diagonalei principale sunt: „;
for (int i = 0; i < dim; i++) {
for (int j = i + 1; j < dim; j++) {
cout << mat[i][j] << ” „;
}
}
cout << endl;
}
void afisareSubDiagonala(int mat[][4], int dim) {
cout << „Elementele de sub diagonala principala sunt: „;
for (int i = 1; i < dim; i++) {
for (int j = 0; j < i; j++) {
cout << mat[i][j] << ” „;
}
}
cout << endl;
}
int main() {
int mat[4][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}
};
afisareDeasupraDiagonalei(mat, 4);
afisareSubDiagonala(mat, 4);
return 0;
}
4. Complexitatea algoritmului
- Afișarea elementelor pe diagonala principală:
- Complexitate temporală: O(n), unde nnn este dimensiunea matricei.
- Complexitate spațială: O(1), deoarece nu necesită spațiu suplimentar.
- Afișarea elementelor deasupra/sub diagonalei:
- Complexitate temporală: O(n2), deoarece sunt procesate toate elementele relevante.
- Complexitate spațială: O(1).
5. Activități practice pentru elevi
- Realizați un program care calculează suma elementelor de pe diagonala principală.
- Scrieți un program care înlocuiește toate elementele de sub diagonala principală cu 0.
- Realizați un program care determină diferența dintre suma elementelor de pe diagonala principală și suma elementelor de pe diagonala secundară.
6. Scheme logice
- Elemente pe diagonala principală:
- Start -> Iterează prin matrice -> Selectează mat[i][i] -> Afișează -> Stop.
- Elemente deasupra/sub diagonalei principale:
- Start -> Iterează prin matrice -> Verifică condiția i<j sau i>j Afișează -> Stop.
7. Concluzie:
- Diagonala principală este un concept esențial în manipularea matricelor, fiind utilizată frecvent în aplicații matematice și programare.
- Înțelegerea pozițiilor relative față de diagonala principală ajută elevii să manipuleze matrici în mod eficient.