Documente Academic
Documente Profesional
Documente Cultură
Matrici PDF
Matrici PDF
Definiţie :
Numim tablou o colecţie ( grup, mulţime ordonată ) de date , de acelaşi tip , situate într-o zona de
memorie continuă ( elementele tabloului se află la adrese succesive).
Iata o matrice careia i-am atribuit cateva numere in mod aleator:
In aceasta mica aplicatie, vom citi de la tastatura o matrice, si o vom afisa pe ecran. Iata cum facem:
#include <iostream.h>
void main ()
{
int x[10][10], n, m, i, j;//m=matricea, n, m= nr actual de linii/coloane, i, j=linia, respectiv coloana
cout<<”Dati numarul de linii: “; cin>>n; //citim nr de linii
cout<<”Dati numarul de coloane: “; cin>>m; //citim nr. de coloane
cout<<”Introduceti elementele matricei: “<<endl;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
cout<<”x["<<i<<"]["<<j<<"]=”;
cin>>x[i][j]; //citim elementele matricei
}
cout<<”Afisam matricea: “<<endl;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
1
{cout<<x[i][j]<<” “; //si afisam fiecare linie, respectiv coloana, dar cu un mic spatiu intre elemente
cout<<endl; //dupa fiecare linie terminata, trebuie sa trecem la alt rand
}
}
Declararea matricei
Sintaxa generala:
tip nume [marime1][marime2], ( în C++ matricea fiind de fapt un vector de vectori ) , unde:
- tip – tipul de bază al componentelor matricei;
- nume – numele matricei;
- marime 1 – numărul de linii al matricei;
- marime 2 – numărul de coloane al matricei;
Exemplu:
int a[3][4]; //am declarat o matrice care are 7 linii si 8 coloane ,
MATRICEA PĂTRATICĂ
Este un caz particular de matrice pentru care numărul de linii este egal cu numărul de coloane.
Diagonala principală
Diagonala principală este formată din elementele care îndeplinesc relația i=j numărul liniei este egal cu
numărul coloanei pe care se află.
Diagonala secundară
Diagonala secundară conţine elementele a1n, a2 n-1 , a3 n-2,...,an1 caracterizate de relaţia i+j=n+1.
Zona de deasupra diagonalei principale
Elementele de deasupra diagonalei principale sunt a12, a13, a14,...,a1n, a23, a24, a25,...,a2n, ...., an-1 n-1, an-1
n. Relaţia dintre coordonate comună tuturor elementelor din această zonă este i<j.
Zona de sub diagonala principală
Elementele a21, a31, a32,...,a41, a42, a43, .....,an1, an2, an n-1 se află sub diagonala principală şi au între
coordonate relaţia i>j.
Exemplu:
100
356
201
100
356
201
2
** Citirea si afisarea unei matrici bidimensionale
se citesc numarul de linii si de coloane ale matricei (m si n).
#include<iostream.h>
int main()
{
int m,n,i,j,a [50] [50];
cout<<"numarul de lini si coloane"; cin>>n;
for (i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout <<"a["<<i<<','<<j<<"]=";
cin>>a[i] [j];
cout<<endl;
}
cout<<”elementele matricei sunt:” <<endl;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++) cout<<a[i] [j]<<' ';
cout<<endl;
}
}
int main()
{
int i,j,n,a[20][20];
cout<<"\n numarul de linii si coloane= "; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{ cout<<"\n a["<<i<<","<<j<<"]="; cin>>a[i][j]; }
cout<<"diagonala principala"<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
3
if(i==j) cout<<a[i][j]<<" ";
cout <<"\n diagonala secundara"<<endl;
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
if(i+j==n+1) cout<<a[i][j]<<" ";
cout<<endl;
}
cout <<"\n elementele de deasupra diagonalei principale"<<endl;
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
if(i<j) cout<<a[i][j]<<" ";
cout<<endl;
}
cout <<"\n elementele de sub diagonala principala"<<endl;
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
if(i>j)
cout<<a[i][j]<<" ";
cout<<endl;
}
Copierea unei matrici.Pentru a copia elementele unei matrici a într-o matrice b, se parcurge matricea a pe linii
si coloane şi se copiază pe rând fiecare element în matricea b.
#include<iostream >
int main()
{ int a[10][10],b[10][10],i,j,m,n;
cout<<"nr de linii =";
cin>>m;
cout<<"nr de coloane=";
cin>>n;
cout<<"matricea a =";
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
b[i][j]=a[i][j];
cout<<"matricea obtinuta "<<endl;
for(i=1;i<=m;i++)
{ for(j=1;j<=n;j++)
cout<<b[i][j]<<" ";
cout<<endl;
}
}
2. Să se înlocuiască elementul maxim de pe fiecare coloană a unei matrice cu suma elementelor de pe coloana
respectivă.
4
3. Fie A o matrice cu elemente numere reale. Să se formeze un şir X definit în felul următor: x1 este maximul
elementelor de pe coloanele 1 şi 2, x2 este maximul elementelor de pe coloanele 3 şi 4, etc. Dacă matricea are un
număr impar de coloane, atunci ultimul element al şirului este maximul elementelor de pe ultima coloană a matricei.
4. Se dă o matrice A. Să se introducă indicii elementelor subunitare pozitive în liniile unei matrice B cu două
coloane.
9. Se consideră o matrice pătratică cu n linii care conţine date de tip integer. Să se alcătuiască un program
C++care afişează pe ecran, pe o singură linie, suma elementelor pare de pe fiecare coloană.
10. Se consideră un tablou bidimensional (nxm) cu elemente întregi. Să se creeze un program care ordonează
crescător elementele situate pe liniile cu număr de ordine par (linia a doua, linia a patra, ş.a.m.d.). La afişare, elementele
tabloului vor fi scrise sub forma unui tabel de n linii şi m coloane.
11. Se consideră un tablou bidimensional (nxm) cu elemente întregi. Să se creeze un program care ordonează
descrescător elementele situate pe liniile cu număr de ordine impar (prima linie, linia a treia, ş.a.m.d.). La afişare,
elementele tabloului vor fi scrise sub forma unui tabel de n linii şi m coloane.
12. Se consideră o matrice pătratică (nxn) ce conţine numere întregi. Realizaţi un program care inversează liniile
şi coloanele matricei pentru ca elementele diagonalei principale să fie ordonate crescător.
13. Să se construiască un tablou pătratic de dimensiune n2 (1 ≤ n ≤ 50) cu primele n numere pare începând cu
2.
Exemplu: Pentru n=4 se va afişa:
2 4 6 8
10 12 14 16
18 20 22 24
26 28 30 32
**1
Exemplu:
Date de intrare:
17 23 45 67 12 34 5 90 8 9
Date de ieşire:
a) Elementul minim este: 5
b) Şirul ordonat crescător este: 5 8 9 12 17 23 34 45 67 90
**2
Exemplu:
Date de intrare:
7 23 4 17 12 34 5 90 8 9
Date de ieşire:
b) Elementul maxim este: 90
c) Sunt 4 numere prime
**3
Exemplu:
Date de intrare :
37 23 4 77 12 34 5 90 18 19
Date de ieşire :
a) Suma cifrelor elementelor pare este: 32
b) Şirul ordonat descrescător este: 90 77 37 34 23 19 18 12 5 4
**4
Date de ieşire:
a) Suma elementelor impare este:161
b) Şirul ordonat descrescător este: 90 77 37 34 23 19 18 12 5 4
**5
Exemplu:
Date de intrare :
7 23 4 17 12 34 5 90 8 9
Date de ieşire:
a) Suma elementelor pare de pe pozitiile impare este: 24
b) În şir sunt 4 numere prime
**6
Se citeşte de la tastatură un şir de 10 numere întregi mai mici decât 100.
a) Să se scrie un subprogram care să determine suma elementelor impare aflate pe poziţiile pare;
b) Să se scrie un subprogram care să returneze un mesaj prin care să se comunice dacă un element x citit de la
tastatură există sau nu în şir.
Exemplu:
Date de intrare:
6
17 23 45 67 12 34 5 90 8 9
Date de ieşire :
b) Suma elementelor impare aflate pe poziţiile pare este: 99
c) Pentru x = 99 se va afişa: „elementul nu este în şir”
**7
Se citeşte de la tastatură un şir de 16 numere întregi mai mici decât 100 care reprezintă elementele unei matrice 4x4,
separate prin spaţii.
a) Să se afişeze matricea;
b) Să se scrie un subprogram care să returneze elementul maxim de pe diagonala principală.
Exemplu:
Date de intrare:
13 2 3 66 55 4 3 22 2 3 4 5 1 2 1 17
Date de ieşire :
a) Matricea este: 13 2 3 66
55 4 3 22
2 3 4 5
1 2 1 17
b) Elementul maxim de pe diagonala principală a matricei este:17
**8
Se citeşte de la tastatură un şir de 16 numere întregi mai mici decât 100 care reprezintă elementele unei matrice 4x4,
separate prin spaţii.
a) Să se afişeze matricea;
a)Să se scrie un subprogram care să returneze elementele de pe linia a doua din matricea de mai sus, ordonate
crescător.
Exemplu:
Date de intrare:
13 2 3 66 55 4 3 22 2 3 4 5 1 2 1 17
Date de ieşire :
a) Matricea este: 13 2 3 66
55 4 3 22
2 3 4 5
1 2 1 17
b) Linia a doua ordonată crescător este: 3 4 22 55
**9
Date de ieşire:
a) Suma cifrelor elementului maxim din fişierul date.in este: 9
b) Numărul elementelor prime conţinute de şir: 4
**10
Date de ieşire:
a) Numărul de elemente din şir care au ultima cifră egală cu 3 este: 2
b) Şirul ordonat descrescător este: 90 67 45 34 23 17 12 9 8 3
**11
Date de ieşire :
a) În fişier sunt 2 numere prime de două cifre
b) Şirul ordonat crescător este: 4 5 7 8 9 12 17 23 34 90
**12
Date de ieşire :
b) Pentru intervalul [36, 80] elementele din şir care aparţin intervalului sunt: 37 77
d) Şirul ordonat descrescător este: 90 77 37 34 23 19 18 12 5 4
**13
Date de ieşire:
a) Suma cifrelor impare ale numerelor din şir este: 57
b) Şirul ordonat crescător este: 4 5 7 8 9 12 17 33 34 99
**14
Date de ieşire:
a) Suma elementelor pare de pe poziţiile impare din şir este: 34
b) Cel mai mare număr prim din şir este: 37
**15
8
Se citeşte de la tastatură un şir de 16 numere întregi mai mici decât 100 care reprezintă elementele unei matrice 4x4,
separate prin spaţii.
a) Să se afişeze matricea;
b) Să se scrie un subprogram care să determine cel mai mare divizor comun al elementelor situate în colţul stânga
sus şi colţul dreapta jos;
Exemplu:
Date de intrare:
9 2 3 6 5 4 3 2 2 3 4 5 1 2 1 2
Date de ieşire :
a) Matricea este: 9 2 3 6
5 4 3 2
2 3 4 5
1 2 1 2
b) Cel mai mare divizor comun al elementelor situate în colţul stânga sus şi colţul dreapta jos este: 1
**16
Date de ieşire :
a) Două elemente din şir au trei divizori
b) Cel mai mare număr neprim este: 81
**17
Date de ieşire:
a) Pentru x=4 elementele din şir divizibile cu x citit de la tastatură sunt: 4 12 8
b) Noul şir este: 7 23 4 17 12 49 5 81 8 8.5 9
#include <iostream>
using namespace std;
int n, i,a[20],x;
float m;
void creare()
{ cout<<"Cate elemente din vector citesti?: " ;cin>>n;
for (int i=1;i<=n;i++)
{ cout<<"Elementul "<<i<<endl;
cin>>a[i];
}
}
void scrie()
{
9
for( i=1;i<=n;i++)cout<<a[i]<<" ";
}
void divizibil()
{
cout<<"Dati o valoare pentru divizor ";cin>>x;
cout<<"\n Numerele din vector divizibile cu o valoare. "<<endl;
for( i=1;i<=n;i++)
if (a[i]%x==0)
{ cout<<a[i]<<" ";}
}
float medie(int a,int b)
{m=(a+b)/2;return m;}
void inserare()
{for( i=1;i<=n-1;i++)
cout<<a[i]<<" ";
cout<<medie(a[n-1],a[n])<<" ";
cout<<a[n];
}
int main()
Exemplu:
Date de intrare:
7 23 4 17 12 33 5 99 8 9
Date de ieşire:
a) Cel mai mare divizor comun al elementelor din şir este 1
b) Pentru x=41 şirul devine: 7 23 4 17 12 33 5 99 8 41 9
**19
Exemplu:
Date de intrare :
7 23 4 17 12 49 5 81 8 91
Date de ieşire:
a) Pentru x=3 opt elemente din şir sunt prime cu 3
b) Şirul după inserare: 7 23 4 17 12 29.7 49 5 81 8 91
10
**20
Exemplu:
Date de intrare :
7 24 4 17 12 33 5 99 8 9
Date de ieşire:
a) Elementul minim: 4 şi ocupă poziţia 3;
b) Pentru intervalul [10, 40] două numere sunt pare
**21
Exemplu:
Date de intrare :
6 3 24 27 12 9 15 81 18 21
Date de ieşire:
a) Cel mai mare divizor comun al elementelor din şir este 3
b) Elementul maxim: 81 şi ocupă poziţia 8
**22
Se citeşte de la tastatură un şir de 16 numere întregi mai mici decât 100 care reprezintă elementele unei matrice 4x4,
separate prin spaţii.
a) Să se afişeze matricea;
b) Să se scrie un subprogram care să returneze elementul minim al matricei şi numărul lui de apariţii.
Exemplu:
Date de intrare :
1 2 33 6 5 4 3 2 22 3 44 5 1 2 1 2
Date de ieşire:
a) Matricea este: 1 2 33 6
5 4 3 2
22 3 44 5
1 2 1 2
b) Elementul minim al matricei este 1 şi numărul lui de apariţii este 3
**23
Se citeşte de la tastatură un şir de 16 numere întregi mai mici decât 100 care reprezintă elementele unei matrice 4x4,
separate prin spaţii.
a) Să se afişeze matricea;
b) Să se scrie un subprogram care să determine câte dintre elementele matricei sunt numere perfecte (un număr
este perfect dacă este egal cu suma divizorilor săi fara el însuşi).
Exemplu:
Date de intrare:
1 2 3 6 5 4 3 2 2 3 4 5 1 2 1 2
11
Date de ieşire:
a) Matricea: 1 2 3 6
5 4 3 2
2 3 4 5
1 2 1 2
b) Există un singur număr perfect (6=1+2+3)
**24
Se citeşte de la tastatură un şir de 16 numere întregi mai mici decât 100 care reprezintă elementele unei matrice 4x4,
separate prin spaţii.
a) Să se afişeze matricea;
b) Să se scrie un subprogram care să determine numărul elementelor matricei egale cu o valoare x dată de la
tastatură.
Exemplu:
Date de intrare:
1 2 3 6 5 4 3 2 2 3 4 5 1 2 1 2
Date de ieşire:
a) Matricea: 1 2 3 6
5 4 3 2
2 3 4 5
1 2 1 2
b) Pentru x=5 se va afişa: 2
**25
Se citeşte de la tastatură un şir de 16 numere întregi mai mici decât 100 care reprezintă elementele unei matrice 4x4,
separate prin spaţii.
a) Să se afişeze matricea;
b) Să se scrie un subprogram care să returneze suma elementelor de pe diagonala principală a matricei.
Exemplu:
Date de intrare:
1 2 3 6 5 4 3 2 2 3 4 5 1 2 1 2
Date de ieşire:
a) Matricea: 1 2 3 6
5 4 3 2
2 3 4 5
1 2 1 2
b) Suma elementelor de pe diagonala principală a matricei este: 10
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]=";
cin>>x[i][j];
12
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void suma()
{ int s=0;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
s=s+x[i][j];
cout<<"suma elementelor din matrice="<<s<<endl;
}
void suma_diagonala_principala()
{
int s=0;
for(int i=1;i<=n;i++)
s=s+x[i][i];
cout<<"suma de pe diagonala principala="<<s<<endl;
}
int main()
{
citire();
cout<<"matricea este\n";
afisare();
suma();
suma_diagonala_principala();
}
Se introduce de la tastatură o matrice pătrată de ordin n cu elemente numere întregi. Se cere să se calculeze şi
afişeze:
a) suma elementelor de deasupra diagonalei principale ;
b) suma elementelor de sub diagonala secundară.
#include <iostream>
using namespace std;
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]=";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void deasupra_dp()
13
{
int s=0;
for(int i=1;i<=n-1;i++)
{for(int j=i+1;j<=n;j++)
{cout<<x[i][j]<<" ";s=s+x[i][j];}
cout<<endl;
}
cout<<"suma elementelor de deasupra diagonalei principale="<<s<<endl;
}
void sub_ds()
{int s=0;
for(int i=2;i<=n;i++)
{for(int j=n-i+2;j<=n;j++ )
{cout<<x[i][j]<<" ";s=s+x[i][j];}
cout<<endl;
}
cout<<"suma elementelor de sub diagonala secundara="<<s<<endl;
}
int main()
{
citire();
cout<<"matricea este\n";
afisare();
cout<<"Elementele de deasupra diagonalei principale sunt:\n";
deasupra_dp();
cout<<"Elementele de sub diagonala secundara sunt :\n";
sub_ds();
}
** Se introduce de la tastatură o matrice cu m linii şi n coloane cu elemente numere întregi . Se cere să se
calculeze şi să se afişeze minimul pe o linie l a matricei (l număr natural citit de la tastatură l<=m).
#include<iostream>
using namespace std;
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"Cate linii? ";cin>>n;
cout<<"Cate coloane? ";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"x["<<i<<"]["<<j<<"]=";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void minim_l()
{
int l,min;
cout<<"Ce linie cauti? ";cin>>l;
if(l<1||l>n){cout<<"eroare";}
min=x[l][1];
for(int i=1;i<=m;i++)
14
if(x[l][i]<min)min=x[l][i];
cout<<"Valoarea minima este : "<<min;
}
int main()
{
citire();
cout<<"matricea este\n";
afisare();
minim_l();
}
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
void afis_deasupra_diagonala_principala()
{
for(int i=1;i<=n-1;i++)
{ for(int j=i+1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
void contor()
{int c=0;
for(int i=1;i<=n-1;i++)
{ if(i%2==0)
for(int j=i+1;j<=n;j++)
if(a[i][j]<24)c++;
else cout <<”s-au citit valori mai mici de 24 pentru linii pare”
}
cout<<"Numarul elementelor <24 de pe liniile pare sunt :"<<c<<endl;}
int main()
{
citire();
cout<<"matricea este\n";
afisare();
cout<<"elementele de deasupra diagonalei principale\n";
afis_deasupra_diagonala_principala();
15
contor();
}
void citire()
{int i,j;
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void minim_linie()
{int min;
for(int i=1;i<=n;i++)
{min=a[i][1];
for(int j=1;j<=m;j++)
if(min>a[i][j])min=a[i][j];
cout<<"min pe linia "<<i<<":"<<min<<endl;
}
}
void perimetru()
{
int nr=0;
cout<<"numerele pare din perimetrul matricei sunt : "
for(int j=1;j<=m;j++)
if(a[1][j]%2==0){cout<<a[1][j]<<" ";nr++;}
for(int i=2;i<=n;i++)
if(a[i][m]%2==0){cout<<a[i][m]<<" ";nr++;}
for(int j=1;j<=m-1;j++)
if(a[n][j]%2==0){cout<<a[n][j]<<" ";nr++;}
for(int i=2;i<=n-1;i++)
if(a[i][1]%2==0){cout<<a[i][1]<<" ";nr++;}
cout<<"Total nr pare :"<<nr;
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}}
int main()
{
citire();
afisare();
minim_linie();
perimetru();
}
16
** Se citeşte o matrice pătrată de dimensiune nxn şi elemente numere întregi. Se cere:
a) Să se afişeze numerele prime de pe diagonala principală;
b) Să se formeze un vector cu elementele matricei parcurse în ordine pe coloane.
void citire()
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
}
int prim(int n)
{
if(n<=1) return 0;
int i=2;
while(i<=n/2)
if(n%i==0) return 0;
else i++;
return 1;
}
void diagonala()
{
cout<<"elementele prime de pe diagonala principala\n";
for(int i=1;i<=n;i++)
if(prim(a[i][i]))cout<<a[i][i]<<" ";
else cout<<"nu s-au citit valori prime pe diagonala principala;"
cout<<endl;
}
void vector()
{int b[900],i,j;
cout<<"parcurgerea matricii pe coloane\n";
int nr=0;
for(j=1;j<=n;j++)
for (i=1;i<=n;i++)
b[++nr]=a[i][j];
for(i=1;i<=nr;i++)
cout<<b[i]<<" ";
cout<<"\n";}
int main()
{
citire();
afisare();
diagonala();
17
vector();
}
5. Se citeşte o matrice cu n linii şi m coloane. Se cere:
a) Să se formeze un vector în care se vor reţine elementele maxime de pe fiecare coloană a matricei;
b) Să se ordoneze vectorul format la punctul a.
void citire()
{int i,j;
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<<"]";
cin>>a[i][j];
}
}
void maxim_linie()
{int max;
for(int j=1;j<=m;j++)
{max=a[1][j];
for(int i=1;i<=m;i++)
if(max<a[i][j])max=a[i][j];
b[j]=max;
cout<<"max pe coloana "<<j<<" este :"<<max<<endl;
}
}
void sortare()
{int aux;
cout<<"elementele maxime sortate:\n";
for(int i=1;i<=m-1;i++)
for(int j=i+1;j<=m;j++)
if(b[i]>b[j])
{aux=b[i];b[i]=b[j];b[j]=aux;}
for(int i=1;i<=m;i++)cout<<b[i]<<" ";
cout<<endl;
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}}
int main()
{
citire();
afisare();
maxim_linie();
sortare();
}
void citire()
18
{int i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void maxim_coloana_p()
{
int p;
cout<<"nr coloanei pentru a afisa valoarea maxima: "; cin>>p;
int max=-1;
for(int i=1;i<=n;i++)
if(x[i][p]%2==0)
if(x[i][p]>max) max=x[i][p];
if(max>-1)cout<<"max="<<max<<endl;
else cout<<"nu exista nr pare pe coloana p\n";
}
int main()
{
citire();
cout<<"matricea este\n";
afisare();
maxim_coloana_p();
}
7. Se consideră o matrice cu m linii şi n coloane, elementele matricei sunt numere întregi. Să se determine
elementul minim de pe o coloană c, dată de la tastatură.
#include<iostream>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void minim_coloana_p()
{
19
int c;
cout<<"nr coloanei c="; cin>>c;
int min=x[1][c];
for(int i=1;i<=m;i++)
if(x[i][c]%2==0)
if(x[i][c]<min) min=x[i][c];
cout<<"min="<<min<<endl;
}
int main()
{
citire();
cout<<"matricea este\n";
afisare();
minim_coloana_p();
}
20
#include<iostream>
int x[30][30],n,m;
void citire()
{int i,j;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{cout<<"x["<<i<<"]["<<j<<"]";
cin>>x[i][j];
}
}
void afisare()
{
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
cout<<x[i][j]<<" ";
cout<<"\n";
}
}
void interschimbare_linii()
{
int l1,l2,aux;
cout<<"linia l1=";cin>>l1;
cout<<"linia l2=";cin>>l2;
for(int i=1;i<=n;i++)
{
aux=x[l1][i];
x[l1][i]=x[l2][i];
x[l2][i]=aux;}
}
int main()
{
citire();
cout<<"matricea este\n";
afisare();
interschimbare_linii();
afisare();
}
21