Algoritmi elementari 1.Prima cifră a unui număr #include <iostream> using namespace std; int main() { int n; //se declara variabila n de tip intreg cin>>n; //se citeste numarul n //se taie pe rand cifrele lui n pana cand se ajunge la prima lui cifra while(n>9) { n=n/10; // se taie pe rand cate o cifra din n } cout<< n; Codul afisat mai sus, taie pe rand cifrele numarului n pana cand ajunge la ultima cifra a acestuia moment, in care se opreste. 2.Suma cifrelor unui număr #include <iostream> using namespace std; int main() {int n, s=0; cin >> n; while (n != 0) { s = s + n % 10; // se insumeaza pe rand cifrele lui n n = n / 10; } cout << s; Codul afisat mai sus, parcurge si insumeaza pe rand cifrele lui n folosind o variabila s pe care in final o afiseaza. 3.Cea mai mare cifră a unui număr #include <iostream> using namespace std; int main() {int n, maxi=0; cin>>n; maxi=n%10; //se initializeaza cea mai mare cifra cu prima cifra din numar while(n!=0) { //se verifica daca exista cifre mai mari in numar if(n%10>maxi) //daca exista atunci variabilei maxi i se atribuie acea cifra maxi=n%10; //se taie pe rand cifre din numarul initial pentru a continua parcurgerea n=n/10; } cout<<maxi; Codul de mai sus parcurge toate cifrele lui n si foloseste o variabila maxi pentru a determina cifra cea mai mare din numar pe care in final o afiseaza. 4. Cea mai mică cifră a unui număr #include <iostream> using namespace std; int main() { int n, mini; cin>>n; mini=n%10; //se initializeaza mini cu prima cifra din numar while(n!=0) { //se verifica daca exista cifre mai mici in numar if(n%10<mini) //daca exista atunci variabilei mini i se atribuie acea cifra mini=n%10; //se taie pe rand cifre din numarul initial pentru a continua parcurgerea n=n/10; } cout<<mini; Codul afisat mai sus parcurge toate cifrele lui n si foloseste o variabila maxi pentru a determina cifra cea mai mare din numar pe care in final o afiseaza. 5.Numărul de cifre ale unui număr #include <iostream> using namespace std; int main() { int n, nr; cin >> n; // se verifica mai intai cazul particular in care numarul citit este 0 if (n == 0) //daca numarul este 0 atunci lui nr i se atribuie 1 deoarece n are o singura cifra nr = 1; else { //cat timp n este diferit de 0 se numara si se taie pe rand cifrele acestuia while (n) { nr++; n = n / 10; } } cout << nr; Codul afisat mai sus, parcurge cifrele lui n si foloseste o variabila nr pentru a numara pe rand cifrele numarului n, pe care in final o afiseaza. 6.Produsul cifrelor unui număr #include <iostream> using namespace std; int main() { int n, p; cin >> n; p=1; //p se initializeaza cu elementul neutru al inmultirii (altfel produsul cifrelor ar fi mereu 0) while (n != 0) { p = p * (n % 10); n = n / 10; } cout << p; Codul afisat mai sus, parcurge si realizeaza produsul cifrelor lui n pe care il memoreaza intr-o variabila p, pe care in final o afiseaza. 7.Oglinditul unui număr #include <iostream> using namespace std; int main() { int n, ogl=0; cin >> n; while (n != 0) {ogl = ogl * 10 + n % 10; // se inverseaza cifra cu cifra numarul n = n / 10; // se taie pe rand cifrele numarului} cout << ogl; Codul afisat mai sus, parcurge cifra cu cifra numarul n si construieste in variabila ogl, oglinditul / inversul numarului n pe care in final il afiseza. 8.Media aritmetică a cifrelor unui număr #include <iostream> using namespace std; int main() { int n,nr; float s; //declarata de tipul float pentru a intoarce rezultate reale cin >> n; while (n != 0) { s = s + n % 10; nr++; n = n / 10; } if(nr>0) cout << s/nr; Codul afisat mai sus, parcurge, numara si insumeaza pe rand cifrele lui n (numara in variabila nr si insumeaza in variabila s) si afiseaza media aritmetica a cifrelor acestuia. 9.Testul de palindrom #include <iostream> using namespace std; int main() { int n, ogl, cn; // variabila cn memoreaza copia lui n cin >> n; cn=n; // copiem valoarea lui n while (n != 0) { ogl = ogl * 10 + n % 10; // se inverseaza cifra cu cifra numarul n n = n / 10; } //testul de palindrom + afisarea mesajului corespunzator if(cn==ogl) cout<<"Numarul este palindrom"; else cout<<"Numarul nu este palindrom"; Palindrom = numar care scris invers este egal cu el insusi. Exemple de numere care sunt palindroame: 121, 12344321, 100001 etc. Codul afisat mai jos, construieste in variabila ogl, inversul / oglinditul numarului n, pe care in final o compara cu copia lui n creata la inceput si determina daca numarul initial n este un palindrom, afisand un mesaj corespunzator pe ecran. 10.Eliminarea cifrelor pare dintr-un numar #include <iostream> using namespace std; int main() { int n,m,p;//variabila m memoreaza numarul format prin eliminarea cifrelor pare ale lui n //variabila p memoreaza o putere a lui 10 si ajuta la construirea numarului cerut prin adaugarea fiecarei cifre impare pe pozitia corespunzatoare(unitati,zeci,sute etc.) cin>>n; p=1; //p se initializeaza cu elementul neutru al inmultirii //construim numarul m cu cifrele impare ale lui n, astfel m o sa reprezinte numarul format prin eliminarea cifrelor pare while(n>0) { if(n%2==1) {m=(n%10)*p+m;// se adauga cifra pe pozitia corespunzatoare in numarul nou format(unitati, zeci, sute etc.) p=p*10;//se mareste puterea lui 10, pentru ca urmatoarea cifra impara sa fie adaugata din nou pe pozitia corespunzatoare(zeci, sute, mii etc.) } n=n/10;} if(p==1)// daca p ramane egal cu 1 inseamna ca testul n%2==1 nu a fost trecut pentru nicio cifra a lui n, deci numarul are numai cifre pare cout<<"Numarul are numai cifre pare"; else {cout<<"Prin eliminarea cifrelor pare ale lui n se obtine numarul: "<<m;} 11. Inlocuirea primei cifre cu ultima #include <iostream> using namespace std; int main() { int n,cn,ultima,p; //variabila cn memoreaza numarul obtinut prin inlocuirea primei cifre cu ultima //variabila ultima memoreaza ultima cifra a numarului n //variabila p memoreaza o putere a lui 10 care indica ordinul pozitiei primei cifre in numarul n (unitati, zeci, sute, etc.) cin>>n; //se memoreaza ultima cifra ultima=n%10; //se initializeaza cn cu valoarea numarului n cn=n; p=1; while(n>9)//eliminam cifre din numar pana cand n este egal cu prima sa cifra { p=p*10;//se mareste puterea lui 10 pana cand se ajunge la prima cifra a lui n n=n/10;//se elimina o cifra din numar } // ultima*p- ultima cifra ia prima pozitie in noul numar // +cn%p - se adauga cifrele de pe restul pozitiilor la numar // /10)*10- se elimina ultima cifra din numar pentru a fi inlocuita cu prima // +n- ultima cifra devine prima cifra memorata in n cn=((ultima*p + cn%p)/10)*10+n; //se afiseaza numarul obtinut cout<<"Numarul format prin inlocuirea primei cifre cu ultima in numarul n este : "<<cn;} 12.Cel mai mare divizor comun (cmmdc) #include <iostream> using namespace std; int main() {int a,b; cin>>a>>b; //se determina cel mai mic divizor comun prin scaderi repetate while(a!=b) { if(a>b) a=a-b; else b=b-a; } //se afiseaza a (care memoreaza acum cmmdc-ul dintre cele 2 numere) cout<<a; Codul de mai sus determina cel mai mare divizor comun al lui a si b prin scaderi repetate, afisandu-l la final. 13. Cel mai mic multiplu comun (cmmmc) #include <iostream> using namespace std; int main() { int a,b,x,y; //variabilele x si y memoreaza copia numerelor a si b cin>>a>>b; x=a; y=b; // se determina cmmdc-ul dintre a si b folosind variabilele x si y while(x!=y) { if(x>y) x=x-y; else y=y-x; } // in urma executarii instructiunii while cmmdc-ul este memorat acum in variabila x // se afiseaza cmmmc dintre cele doua numere folosind formula de determinare acestuia cu ajutorul cmmdc cout<<(a*b)/x; Codul de mai sus afla cel mai mare divizor comun (cmmdc) al celor doua numere pentru ca mai apoi sa-l foloseasca pentru a determina cel mai mic multiplu comun (cmmmc) folosind formula consacrata, cmmmc = (a*b) / cmmdc. 14.Testul de numar prim #include <iostream> using namespace std; int main() { int n,d,nr; //variabila nr numara divizorii proprii ai lui n cin>>n; //se determina daca numarul are divizori proprii for(d=2;d<=n/2;d++) {//d este initalizat cu 2 (primul divizor propriu posibil) //instructiunea merge pana la n/2 deoarece nu pot exista divizori proprii intre n/2 si n if(n%d==0) //conditia ca d sa fie divizor propriu al lui d nr++; } if(nr==0) cout<<"Numarul este prim"; else cout<<"Numarul nu este prim"; return 0; } Codul afisat mai jos determina daca numarul are divizori proprii, pe care ii numara folosind variabila nr. In final, daca numarul are divizori proprii, programul afiseaza mesajul “Numarul nu este prim”, iar daca nr = 0 (numarul nu are divizori proprii), afiseaza mesajul “Numarul este prim”. Un numar este prim daca are doar divizori improprii (daca este divizibil doar cu 1 si cu el insusi). 15.Divizorii proprii ai unui numar #include <iostream> using namespace std; int main() { int n,d; cin>>n; //se determina divizorii proprii for(d=2;d<=n/2;d++) //d este initalizat cu 2 (primul divizor propriu posibil) //instructiunea merge pana la n/2 deoarece nu pot exista divizori proprii intre n/2 si n if(n%d==0) //conditia ca d sa fie divizor propriu al lui d cout<<d<<" "; Codul afisat mai jos parcurge intervalul [2, n/2] printr-o instructiune for, folosind variabila d. In cazul in care aceasta divide numarul n, atunci ea este afisata, intrucat este un divizor propriu al numarului n. Un numar n poate avea divizori proprii si improprii. Divizorii improprii ai unui numar sunt 1 si numarul insusi. Divizorii proprii sunt restul numerelor care divid pe n, cuprinse intre [n, n/2]. 16.Descompunerea in factori primi #include <iostream> using namespace std; int main() { int n,d,p; //variabila p memoreaza puterea la care apare un factor prim cin>>n; //variabila d este initializata cu 2 (primul posibil divizor propriu) d=2; //se determina daca numarul n are divizori proprii while(n>1) { p=0;//p este initializat cu 0, pentru ca de fiecare data cand se reia instructiunea while sa se poata determina puterea la care apare factorul prim //se verifica daca numarul n se imparte de mai multe ori la numarul d while(n%d==0) { p++; //se contorizeaza puterea la care apare factorul prim in descompunere n=n/d; //se imparte n la d pentru a se putea continua impartirea si identificarea puterii } //daca numarul d se imparte macar o data la n se afiseaza d, alaturi de puterea la care apare in descompunere //daca p este 0 inseamna ca numarul d nu se imparte deloc la n if(p>0) cout<<d<<"^"<<p<<" "; d=d+1; //creste d, pentru a putea identifica si alti factori primi ai descompunerii Tablouri unidimensionale(Vectori) Vectorii sau tablourile unidimensionale sunt structuri de date bine definite si organizate in memorie. Cu ajutorul acestora, se pot pastra in memorie si accesa ulterior mai multe variabile, fara a fi nevoie de retinerea explicita a fiecareia dintre ele. Vectorii se folosesc, cel mai adesea, cand numarul de variabile necesare intr-o problema variaza sau este de dimensiune mare. In acest caz, se doreste utilizarea un vector , in care punem cate variabile sunt necesare. In problemele noastre, ne vor interesa vectorii declarati prin numarul maxim posibil de elemente, cu memoria alocata local. Astfel, pentru declararea unui vector se foloseste urmatoarea structura: tip_vector nume_vector[dimensiune maxima vector]; Exemple uzuale : int v[100]; int – tip intreg v – numele vectorului [100] – intre paranteze patrate se pune numarul maxim posibil de elemente Asemanator float a[100], double b[20]. Pentru a atribui un element folosim : v[1] = 3; v[2] = 4, v[6] = 29, etc. Pentru citirea unui vector de n elemente, unde n este citit de la tastatura, se foloseste urmatoarea portiune de program : int n; cin>>n; int v[100],i; for (i = 1; i <= n; i++) cin>>v[i]; Se incepe citirea de la 1, primul element fiind salvat in v[1]. decide de pe ce pozitie sa inceapa 1 sau 0. Pentru a accesa elementul de pe pozitia K vom folosi v[K]. Afisarea se face in mod asemanator, citirii: for (i = 1; i <= n; i++) cout<<v[i]<<" "; Astfel, cu ajutorul vectorilor, putem face modificari asupra unui sir de numere intregi, salvand fiecare modificare, pentru a afisa rezultatul obtinut. De asemenea, un caz foarte uzual, in care sunt folositi vectori, este atunci cand, se afiseaza elemente citite de la tastatura, intr-o ordine care nu coincide cu ordinea de citire. Probleme cu vectori 1.Cautarea secventiala Cautarea secventiala este un algoritm prin care putem sa cautam o anumita valoare in interiorul unui vector. Programul scris mai jos citeste un vector de la tastatura dupa care verifica daca o anumita valoare introdusa de utilizator este sau nu memorata in vectorul deja citit. #include <iostream> using namespace std; int v[100],n,i,x,ok; int main () {cin>>n; //se citeste numarul de elemente din vector for(i=1;i<=n;i++) cin>>v[i]; //se citesc elementele din vector cin>>x; //se citeste valoarea pe care vrem sa o cautam ok=0; for(i=1;i<=n;i++) { if(v[i]==x) ok=1; // variabila OK isi modifica valoarea atunci cand gasim X-ul citit mai devreme in vector } if(ok==1) cout<<"gasit"; else cout<<"nu exsita"; 2.Numarul de aparitii al unui element intr-un vector Algoritmul de mai jos verifica de cate ori apare o anumita valoare (in cazul nostru valoarea memorata in variabila x) in interiorul unui vector citit de la tastatura. #include <iostream> using namespace std; int v[100],i,n,x,nr; int main() {cin>>n; for(i=1;i<=n;i++) cin>>v[i]; cin>>x; for(i=1;i<=n;i++) {if(v[i]==x) nr++; } cout<<x<<" apare de "<<nr<<" ori in vector"; 3.Metode de sortare I. Sortarea unui vector prin interschimbare In continuare, este prezentata sortarea prin interschimbare a unui vector cu n elemente citite de la tastatura. n-ul este, de asemenea, citit de la tastatura. #include <iostream> using namespace std; int main(){ int n; cin>>n; int v[100],i; for (i = 1; i <= n; i++) cin>>v[i]; int j; for (i = 1; i <= n-1; i++){ for (j = i+1; j <= n; j++){ if (v[i] > v[j]){ int aux = v[i]; v[i] = v[j]; v[j] = aux; } } } for (i = 1; i <= n; i++) cout<<v[i]<<" "; } 2.Bubble sort #include <iostream> using namespace std; int main(){ int n; cin>>n, v[100],i; for (i = 1; i <= n; i++) cin>>v[i]; int sortat; do{ sortat = 1; for (i = 1; i <= n-1; i++){ if (v[i] > v[i+1]){ int aux = v[i]; v[i] = v[i+1]; v[i+1] = aux; sortat = 0; } } }while(sortat == 0); for (i = 1; i <= n; i++) cout<<v[i]<<" "; 4. Maximul si minimul unui vector #include <iostream> using namespace std; int main(){ int n, v[100],i; cin>>n; for (i = 1; i <= n; i++) cin>>v[i]; int maxim = v[1]; for (i = 2; i <= n; i++) if (maxim < v[i]) maxim = v[i]; cout<<maxim; } 5. Afisarea elementelor pare ale unui vector #include <iostream> using namespace std; int main(){ int n,v[100],i; cin>>n; for (i = 1; i <= n ; i++) cin>>v[i]; for (i = 1; i <= n; i++) if (v[i] % 2 == 0) cout<<v[i]<<" "; 6.Afisarea elementelor de pe pozitii pare si a celor de pe pozitii impare dintr-un vector #include <iostream> using namespace std; int main(){ int n,v[100],i; cin>>n; for (i = 1; i <= n; i++) cin>>v[i]; for (i = 2; i <= n; i = i + 2) cout<<v[i]<<" "; for (i = 1; i <= N; i = i + 2) cout<<v[i]<<" "; 7.Vectorul frecventa – afisarea elementului cu cel mai mare numar de aparitii #include <iostream> using namespace std; int frecv[100],element; int main(){ while(cin>>element){ frecv[element]++;} int maxim = 0,el = 0, i; for (i = 10;i < 100; i++) if(frecv[i] > maxim){ maxim = frecv[i]; el = i; } cout<<el<<" "<<maxim; 8.Inserarea unui nou element pe prima pozitie dintr-un vector #include <iostream> using namespace std; int v[100],i,n,x; int main() { cin>>n; for(i=1;i<=n;i++) //citire cin>>v[i]; n=n+1; //creare "loc" nou for(i=n;i>=2;i--) //mutare elemente la dreapta { v[i]=v[i-1]; } cin>>x; // citire element nou v[1]=x; // inserarea pe prima pozitie for(i=1;i<=n;i++)//afisare cout<<v[i]<<" "; } 9. Inserarea unui nou element pe ultima pozitie dintr-un vector #include <iostream> using namespace std; int v[100],i,n,x; int main() {cin>>n; for(i=1;i<=n;i++) //citire cin>>v[i]; n=n+1; //creare "loc" nou cin>>x; // citire element nou v[n]=x; // inserarea pe ultima for(i=1;i<=n;i++)//afisare cout<<v[i]<<" "; } 10. Inserarea unui element intr-un vector #include <iostream> using namespace std; int main(){ int n ,v[100],i; cin>>n; for (i = 1; i <= n; i++) cin>>v[i]; int pozitie,valoare; cin>>valoare>>pozitie; for (i = n; i >= pozitie; i--) v[i + 1] = v[i]; n = n + 1; v[pozitie] = valoare; for (i = 1; i <= n; i++) cout<<v[i]<<" "; 11.Eliminarea unui element dintr-un vector #include <iostream> using namespace std; int main(){ int n,v[100],i; cin>>n; for (i = 1; i <= n; i++) cin>>v[i]; int pozitie; cin>>pozitie; for (i = pozitie; i <= n - 1; i++) v[i] = v[i+1]; n = n - 1; for (i = 1; i <= n; i++) cout<<v[i]<<" "; 12. Cel mai mare divizor comun (cmmdc) al unui vector #include <iostream> using namespace std; int main(){ int n,v[100],i; cin>>n; for (i = 1; i <= n; i++) cin>>v[i]; int cmmdc = v[1]; for (i = 2; i <= n; i++){ int copieEL = v[i]; while (copieEL != cmmdc){ if (copieEL > cmmdc) copieEL = copieEL - cmmdc; else if (copieEL < cmmdc) cmmdc = cmmdc - copieEL; } } cout<<cmmdc; return 0; } 13. Cel mai mic multiplu comun (cmmmc) al unui vector #include <iostream> using namespace std; int main(){ int n,v[100],i; cin>>n; for (i = 1; i <= n; i++) cin>>v[i]; int cmmmc = v[1]; for (i = 2; i <= n; i++){ int copieCmmmc = cmmmc,copieEL = v[i]; while(copieCmmmc != copieEL){ if (copieCmmmc > copieEL) copieCmmmc = copieCmmmc - copieEL; else if (copieEL > copieCmmmc) copieEL = copieEL - copieCmmmc; } cmmmc = cmmmc*(v[i]/copieEL); } cout<<cmmmc; Tablouri bidimensionale – Matrici O matrice este o forma de organziare a datelor de acelasi tip. O matrice reprezinta un tablou bidimensional in care sunt stocate date de acelasi tip. Elementele dintr-o matrice pot fi identificate dupa linia si coloana pe care se afla. Se numeste matrice cu m linii si n coloane, un tablou cu m linii si n coloane. Pentru m=4 si n=3 se obtine o matrice cu 4 linii si 3 coloane, spre exemplu: In exemplul dat, numarul 35 se afla pe linia 1, coloana 1, pe cand 13 se afla pe linia 3, coloana 2. Am considerat numerotarea liniilor si coloanelor incepand de la 1. Daca matricea se va citi, luand doi contori ( i si j) cu valori de la 0 la m – 1 (pentru m linii), respectiv de la 0 la n – 1 (pentrul n coloane), atunci 35 se va afla pe linia 0 si coloana 0. Declararea unei matrici se realizeaza prin specificarea tipului elementelor din matricii, indentificatorul matricii, urmat apoi de dimensiunea acesteia (numarul de linii si de coloane) intre paranteze drepte. Spre exemplu: int A[4][3]; (declara o matrice de 4 linii si 3 coloane continand numere intregi) float B[5][10]; (declara o matrice de 5 linii si 10 coloane continand numere reale) char C[20][12]; (declara o matrice de 20 de linii si 12 coloane continand caractere alfanumerice) Observatie: Numerotarea liniilor si coloanelor unei matrici incepe de la valoarea 0. Astfel, prima linie si prima coloana a matricii este linia si coloana 0, a doua coloana este 1, etc. Observatie: Putem numerota liniile si coloanele de la 1, in acest caz, pentru a nu avea probleme de memorie, declaram matricea cu un numar in plus de linii si coloane. Astfel, daca vrem sa salvam o matrice cu 3 linii si 4 coloane, incepand numerotarea de la 1, vom scrie m[4][5] in loc de m[3][4]. Mai jos putem vedea citirea si afisare unei matrici salvata cu numerotoarea incepand de la 1. include <iostream> using namespace std; int a[10][20],n,m,i,j; int main() {cin>>m>>n; //se citesc numarul de linii si coloane //citirea pe rand a elementelor matricii for(i=1;i<=m;i++) for(j=1;j<=n;j++) cin>>a[i][j]; //afisarea matricii for(i=1;i<=m;i++) {for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; Matrice patratică O matrice care are numarul de linii egal cu numarul de coloane se numeste o matrice patratica. Intrucat numarul de linii este egal cu numarul coloanelor in matiricile patratice apar 2 notiuni importante: diagonala principala si diagonala secundara. Diagonala principala este formata din elementele unei matrici patratice aflate pe pozitiile in care indicele liniei este egal cu cel al coloanei (i=j), adica a[i][i]. Spre exemplu in matricea patratica a[3][3], elementele aflate pe diagonala principala sunt a[1][1]; a[2][2] si a[3][3]. Diagonala secundara este formata din elementele unei matrici patratice aflate pe pozitiile in care i+j=n+1, mai exact a[i][n-i+1]. Spre exemplu in matricea patratica a[3][3], elementele aflate pe diagonala principala sunt a[1][3]; a[2][3] si a[3][1]. În matricea de alături, patratele colorate cu verde reprezinta diagonala principala si patratele colorate cu galben reprezinta diagonala secundara. Zone speciale in matrice patratice: Relatia elementelor aflate deasupra diagonalei principale (casutele albastre) intr-o matrice patratica este i<j. Relatia elementelor aflate sub diagonala principala (casutele verzi) intr-o matrice patratica este i>j Relatia elementelor aflate deasupra diagonalei secundare (casutele albastre) intr-o matrice patratica este i+j<n+1. Relatia elementelor aflate sub diagonala secundare (casutele verzi) intr-o matrice patratica este i+j>n+1. Probleme cu matrici 1.Transpusa unei matrici #include <iostream> using namespace std; int n,i,j,m[20][20],t[20][20]; int main() {cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>m[i][j]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) cout<<m[i][j]<<" "; cout<<endl; } cout<<"Matricea transpusa este:"<<endl; for(i=1;i<=n;i++) { for (j=1;j<=n;j++) { t[i][j]=m[j][i]; cout<<t[i][j]<<" "; } cout<<endl;} Transpusa unei matrici se construieste prin inlocuirea liniilor matricei initiale cu coloanele acesteia. 2. Suma elementelor unei matrice #include <iostream> using namespace std; int i, j, m, n, a[10][10],s; int main() { cin>>m>>n; for (i=1;i<=m;i++) for (j=1;j<=n;j++) {cin>>a[i][j]; s=s+a[i][j];} cout<<"Suma elementelor matricii este: "<<s<<endl; 3.Suma elementelor de pe diagonala prinicipala a unei matrice patratice #include <iostream> using namespace std; int i, j, m, n, a[10][10],s; int main() {cin>>m; for (i=1;i<=m;i++) for (j=1;j<=m;j++) cin>>a[i][j]; } for (i = 1; i <= m; i++) s = s + a[i][i]; cout<<"Suma elementelor diagonalei principale este: "<<s<<endl; 4.Suma elementelor de pe diagonala secundara a unei matrice patratice #include <iostream> using namespace std; int n,i,j,a[20][20],s; int main() { cout<<"n=";cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j]; } for(i=1;i<=n;i++) s=s+a[i][n-i+1]; cout<<"Suma elementelor diagonalei secundare este:"<<s<<endl; return 0; } 5. Eliminarea unei linii si (sau) coloane #include<iostream> using namespace std; int a[10][10],i,j,n,x,y; int main() {cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) cin>>a[i][j]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } cout<<endl<<"Linia de sters:"; cin>>x; for (i=x;i<n;i++) for(j=1;j<=n;j++) a[i][j]=a[i+1][j]; for(i=1;i<n;i++) { for(j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } cout<<endl<<"Coloana de sters:"; cin>>y; for(i=1;i<n;i++) for(j=y;j<n;j++) a[i][j]=a[i][j+1]; for(i=1;i<n;i++) { for(j=1;j<n;j++) cout<<a[i][j]<<" "; cout<<endl; } }