Sunteți pe pagina 1din 6

Fisa de lucru – Matrici

Probleme rezolvate

1. Se dă o matrice a, cu m linii şi n coloane (1≤m,n≤15) şi elemente numere întregi. Să se calculeze


produsul elementelor din matrice, care se află în intervalul [-25,40] şi pe linii impare.
#include<iostream.h>
int main()
{
int a[16][16],p=1; unsigned m,n,i,j;
cout<<"m="; cin>>m; cout<<"n="; cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=m;i+=2) //selectam liniile impare
for(j=1;j<=n;j++)
if(a[i][j]>=-25 && a[i][j]<=40) p*=a[i][j];
cout<<endl<<"Produsul="<<p;
return 0;
}
2. Se dă o matrice a, cu n linii şi n coloane (1≤n≤15) şi elemente numere întregi. Să se calculeze suma
elementelor din matrice care sunt pătrate perfecte şi se găsesc deasupra diagonalei principale.
#include<iostream.h>
#include<math.h>
int main()
{
int a[16][16],s=0; unsigned n,i,j;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=n-1;i++) //deasupra DP
for(j=i+1;j<=n;j++)
if(a[i][j]>=0 && sqrt(a[i][j])==(int)sqrt(a[i][j]))
s+=a[i][j];
cout<<endl<<"Suma="<<s;
return 0;
}
3. Se dă o matrice a, cu n linii şi n coloane (1≤n≤15) şi elemente numere întregi. Să se numere
elemente din matrice, care se găsesc pe diagonala secundară, sunt strict pozitive şi se termină în cifra 7.
#include<iostream.h>
int main()
{
int a[16][16]; unsigned n,i,j,k=0;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=n;i++)
1
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=n;i++)
if(a[i][n-i+1]>0 && a[i][n-i+1]%10==7) k++;
cout<<endl<<"Numarul="<<k;
return 0;
}
4. Se dă o matrice a, cu m linii şi n coloane (1≤m,n≤15) şi elemente numere naturale. Să se determine
numărul elementelor din matrice care sunt numere prime.
#include<math.h>
int main()
{
unsigned a[16][16],m,n,i,j,k=0,d,ok;
cout<<"m="; cin>>m; cout<<"n="; cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(a[i][j]>1)
{
ok=1; //verificam daca a[i][j] este prim
for(d=2;d<=sqrt(a[i][j]) && ok==1;d++)
if(a[i][j]%d==0) ok=0;
if(ok==1) k++;
}
cout<<endl<<"Numarul="<<k;
return 0;
}
5. Se dă o matrice a, cu n linii şi n coloane (1≤n≤15) şi elemente numere naturale. Să se determine
numărul elementelor din matrice care se găsesc sub diagonala principala şi sunt puteri ale lui 2.
#include<iostream.h>
int main()
{
unsigned a[16][16],m,n,i,j,k=0,x;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=2;i<=n;i++) //selectam sub DP
for(j=1;j<=i-1;j++)
if(a[i][j]>0)
{
x=a[i][j]; //facem copie ca sa nu modificam matricea
while(x%2==0) x/=2;
if(x==1) k++;
}
cout<<endl<<"Numarul="<<k;
2
return 0;
}
6. Se dă o matrice a, cu m linii şi n coloane (1≤m,n≤15) şi elemente numere întregi. Să se calculeze
maximul elementelor pare din matrice.
#include<iostream.h>
int main()
{
int a[16][16],max=1; unsigned m,n,i,j;
cout<<"m="; cin>>m; cout<<"n="; cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(a[i][j]%2==0)
if(max==1 || a[i][j]>max) max=a[i][j];
cout<<endl;
if(max==1)
cout<<"Matricea nu contine valori pare";
else
cout<<"max="<<max;
return 0;
}
7. Se dă o matrice a, cu n linii şi n coloane (1≤n≤15) şi elemente numere întregi. Să se calculeze
minimul elementelor din matrice, care se găsesc deasupra diagonalei secundare şi sunt mai mici decât
27.
#include<iostream.h>
int main()
{
int a[16][16],min=30; unsigned n,i,j;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=n-1;i++) //deasupra DS
for(j=1;j<=n-i;j++)
if(a[i][j]<27)
if(min==30 || a[i][j]<min) min=a[i][j];
cout<<endl;
if(min==30)
cout<<"Matricea nu contine astfel de valori";
else
cout<<"min="<<min;
return 0;
}
8. Se dă o matrice a, cu m linii şi n coloane (1≤m,n≤15) şi elemente numere întregi. Să se verifice daca
toate elementele din matrice se află în intervalul [-25,40] .
#include<iostream.h>
int main()
{
3
int a[16][16]; unsigned m,n,i,j,ok=1;
cout<<"m="; cin>>m; cout<<"n="; cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=m && ok==1;i++)
for(j=1;j<=n && ok==1;j++)
if(a[i][j]<-25 || a[i][j]>40) ok=0;
cout<<endl;
if(ok==1)
cout<<"Da";
else
cout<<"Nu";
return 0;
}
9. Se dă o matrice a, cu n linii şi n coloane (1≤n≤15) şi elemente numere naturale. Să se verifice daca
toate elementele din matrice au suma cifrelor impară.
#include<iostream.h>
int main()
{
unsigned a[16][16],n,i,j,ok=1,x,s;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
cout<<endl<<"Matricea este:"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
for(i=1;i<=n && ok==1;i++)
for(j=1;j<=n && ok==1;j++)
{
x=a[i][j]; s=0; //copia lui a[i][j] si suma cifrelor
while(x!=0)
{
s+=x%10; x/=10;
}
if(s%2==0) ok=0;
}
cout<<endl;
if(ok==1)
cout<<"Da";
else
cout<<"Nu";
return 0;
}
10.

4
#include<iostream.h>
int main()
{
unsigned a[23][23],n,i,j;
cout<<"n="; cin>>n;
//umplem matricea cu valoarea 2
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) a[i][j]=2;
//punem 1 pe diagonale
for(i=1;i<=n;i++) a[i][i]=a[i][n-i+1]=1;
//afisam matricea
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
11.

#include<iostream.h>
int main()
{
unsigned a[23][23],n,i,j;
cout<<"n="; cin>>n;
//umplem matricea cu valoarea 3
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) a[i][j]=3;
//punem 1 pe liniile mediane
for(i=1;i<=n;i++) a[i][n/2+1]=a[n/2+1][i]=1;
//punem 2 in mijlocul matricii
a[n/2+1][n/2+1]=2;
//afisam matricea
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;

5
}
return 0;
}
12.

#include<iostream.h>
int main()
{
unsigned a[31][31],n,i,j,k=1;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
if(i%2==1)
for(j=1;j<=n;j++) a[i][j]=k++;
else
for(j=n;j>=1;j--) a[i][j]=k++;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
13.

#include<iostream.h>
int main()
{
unsigned a[10][10],m,n,i,j,k=1;
cout<<"m="; cin>>m; cout<<"n="; cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
a[i][j]=k; k+=2;
}
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}

S-ar putea să vă placă și