Documente Academic
Documente Profesional
Documente Cultură
In exemplul urmator se citesc de la tastatura elementele unei matrici cu n linii si m coloane : cin>>n>>m; for(i=1; i<=n; i++) for(j=1; j<=m; j++) cin>>ma[i][j]; Pentru a afisa pe linii matricea citita se foloseste secventa urmatoare, in care se observa ca dupa fiecare element se lasa un spatiu ( ), iar dupa ce se termina de editat elementele unei linii se trece la o linie noua (endl): for(i=1;i<=n;i++) {for(j=1;j<=m;j++) cout<<ma[i][j]<<' '; cout<<endl; } O matrice in care numarul de linii este egal cu numarul de coloane se numeste matrice patratica. Iata si un exemplu in care se va afisa suma elementelor din matrice patratica, pentru fiecare linie : int i, j, x, n, ma[33][33]; main(){ cin>>n; for(i=1; i<=n; i++) for( j=1; j<=n; j++) cin>>ma[i][j]; for( i=1; i<=n; i++) { x=0; for ( j=1; j<=n; j++) x=x+ma[i][j]; cout<< linia <<i<< suma=<<x; cout<<endl; } }
Lectia 2
Matrici patratice. Asa cum am aratat o matrice se numeste asa, atunci cand numarul de linii este egal cu numarul de coloane. Problema lor este ca au doua diagonale, una principala ce pleaca din coltul stanga sus si alta secundara ce pleaca din coltul dreapta sus. Dar sa vedem o astfel de matrice, umpluta cu niste numere alese aparent la intamplare: 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45 51 52 53 54 55 Se observa ca numerele nu sunt venite aici chiar intamplator. Toate numerele au cate doua cifre, cu semnificatia ca cifra zecilor reprezinta numarul liniei iar cifra unitatilor numarul coloanei pe cre se afla elementul. Elementele de pe diagonala principala au proprietatea ca numarul liniei este egal cu numarul coloanei. Iata o secventa ce parcurge elementele de pe diagonala principala si le afiseaza:
int i, j , n, ma[100][100]; main(){ cin>>n; for(i=1; i<=n; i++) for(j=1; j<=n; j++) cin>>ma[i][j]; for(i=1; i<=n; i++) cout<<ma[i][i]<< ;
Elementele de pe diagonala secundara au proprietatea ca numarul total de linii marit cu 1 este egal cu suma dintre numarul liniei si numarul coloanei. Elementele situate sub diagonala principala au proprietatea ca i<j ( numarul liniei este mai mic decat numarul coloanei ).
int i, j , n, ma[100][100]; main(){ cin>>n; for(i=1; i<=n; i++) for(j=1; j<=n; j++) cin>>ma[i][j]; for(i=1; i<=n; i++) cout<<ma[i][n - i+1]<< ;
In exemplul de mai jos se calculeaza suma acestor elemente si se parcurge toata matricea, pe alocuri in mod inutil...
int i, j , n, ma[100][100], s=0; main(){ cin>>n; for(i=1; i<=n; i++) for(j=1; j<=n; j++) cin>>ma[i][j]; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if( i<j) s=s+ma[i][j]; cout<<s; }
Elementele situate sub diagonala secundara au proprietatea ca i+j>n+1. In exemplul urmator vom afisa elementele situate deasupra diagonalei secundare: {int i,j,n,ma[22][22]; cin>>n; for( i=1; i<=n; i++) for( j=1; j<=n; j++) cin>>ma[i][j]; for( i=1; i<n; i++) for(j=1; j<=n - i; j++) cout<<ma[i][j]<<' '; }