Documente Academic
Documente Profesional
Documente Cultură
3.06.2020
Clasa 9A ‒Informatică
Matrici pătratice. Operații de prelucrare
B. Matrici pătratice
Sunt matricile pentru care numărul de linii=numărul de coloane=n, iar numărul de elemente= n2
Vom nota matricea cu Anxn iar elementele sale sunt:
2. Afișarea matricei
Se va realiza afișarea elementelor matricei, linie cu linie:
for(i=1;i<=n;i++) //pentru fiecare linie de la 1 la n
{
for(j=1;j<=n;j++) //pentru fiecare coloana de la 1 la n
fout<<a[i][j]<<” ”; // afisam elementul de pe linia i si coloana j
fout<<”\n”; // Afisam o linie noua, astfel cele n linii se vor afla pe linii separate
}
Varianta 1
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
fout<<a[i][j]<<” ”;
Varianta 2
for(i=1;i<=n;i++)
fout<<a[i][i]<<” ”;
Varianta 1
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(j==n+1-i)
fout<<a[i][j]<<” ”;
Varianta 2
for(i=1;i<=n;i++)
fout<<a[i][n+1-i]<<” ”;
5. Prelucrarea elementelor:
a. de deasupra diagonalei principale
După cum se observă din schiță, pentru elementele situate în zona de deasupra diagonalei principale indicele i
de linie și indicele j de coloană variază astfel:
int s=0;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
s=s+ a[i][j];
fout<<” Suma=”<<s<<”\n”;
4
Pentru elementele situate în zona de sub diagonala principală, indicele i de linie și indicele j de coloană variază
astfe
𝐢 ∈ [𝟐, 𝐧], 𝐣 = 𝟏 𝐢𝐧𝐢ț𝐢𝐚𝐥 ș𝐢 𝐜𝐨𝐧𝐝𝐢ț𝐢𝐚 𝐝𝐞 𝐬𝐢𝐭𝐮𝐚𝐫𝐞 î𝐧 𝐳𝐨𝐧ă 𝐞𝐬𝐭𝐞
𝐣 < 𝐢 𝐝𝐞𝐨𝐚𝐫𝐞𝐜𝐞 𝐧𝐞 𝐠ă𝐬𝐢𝐦 𝐬𝐮𝐛 𝐝𝐢𝐚𝐠𝐨𝐧𝐚𝐥𝐚 𝐩𝐫𝐢𝐧𝐜𝐢𝐩𝐚𝐥ă
Aplicație
1. Fișierul matrice.in conține pe prima linie dimensiunea n a unei matrici pătratice (unde n<=30), iar pe
următoarele n linii valorile elementelor matricei, care sunt numere întregi. Să se realizeze:
a. Afișarea elementelor de pe diagonala principală
b. Afișarea elementelor de pe diagonala secundară
c. Calculul sumei elementelor de deasupra diagonalei principale
d. Calculul produsului elementelor de sub diagonala principală
Afișarea se va face în fișierul matrice.out.
Exemplu:
matrice.in matrice.out
4 Matricea contine:
1 2 3 4 1234
5 6 7 8 5678
9 10 11 12 9 10 11 12
13 14 15 16 13 14 15 16
Elementele de pe diag princ: 1 6 11 16
Elementele de pe diag sec: 4 7 10 13
Suma=36
Produsul=1228500
5
Problema1
Programul C++ este următorul:
#include <fstream>
//AFISAREA MATRICEI
fout<<"Matricea contine:\n";
for(i=1;i<=n;i++) //pentru fiecare linie de la 1 la n
{
for(j=1;j<=n;j++) //pentru fiecare coloana de la 1 la n
fout<<a[i][j]<<" "; // afisam elementul de pe linia i si coloana j
fout<<"\n"; // Afisam o linie noua, astfel cele n linii se vor afla pe linii separate
}
s=0;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
s=s+ a[i][j];
fout<<"Suma="<<s<<"\n";
p=1;
for(i=2;i<=n;i++)
for(j=1;j<i;j++)
p=p* a[i][j];
fout<<"Produsul="<<p<<"\n";
return 0;
}