Sunteți pe pagina 1din 16

Portofoliu probleme

1.

#include <iostream>
//ultimul termen din sirul fibonacci
using namespace std;
int f[100], n;
int main(){

cin >> n;
f[1] = 1;
f[2] = 1;
for(int i = 3; i <=
n; i++)
{
f[i] = f[i-1] +
f[i-2];
}
cout << f[n];
return 0;
}
2.
#include <iostream>
//piramidă
using namespace std;
int n;

int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= i; j++)
cout << j << " ";
cout << endl;

}
return 0;
3.
#include <iostream>
//pătrat
using namespace std;
int n;
char c, d;
int main()
{
cin >> n >> c >> d;

for(int i = 1; i <= n; i++)


{
for(int j = 1; j <= n; j++)
{
if(i != 1 && i != n && j != 1
&& j != n)
cout << d;
else
cout << c;
}
cout << endl;
}
return 0;
}
4. Se citește N și apoi N numere naturale. Să se afișeze toate perechile (x, y) cu
proprietatea că x+y>5.

#include <iostream>
using namespace std;
int n;
int vect[100];

int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
cin >> vect[i];
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
if(vect[i] + vect[j] > 5 && j > i)
cout << vect[i] << " " << vect[j] << endl;
}
return 0;
}

5. Se dă o matrice cu n linii şi n coloane şi elemente numere naturale. Calculaţi diferenţa


în valoare absolută dintre sumele elementelor de pe cele două diagonale.
#include <iostream>
using namespace std;
int a[1001][1001], n, i, j, s=0, S=0;
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++)

{
if(i==j)
S=S+a[i][j];
if(i+1==n+1)
s=s+a[i][j];
}
cout<<S+s;
6. Să se verifice dacă toate numerele de sub diagonala principală sunt pare (dacă se repetă
numul îl afișăm o singură dată).
#include <iostream>
using namespace std;
int a[1001][1001], n, i, j;
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++)
if (i>j)
if (a[i][j]%2==0)
cout<<a[i][j];
}

7. Să se afișeze nordul matricii.


#include <iostream>
using namespace std;
int a[1001][1001], n, i, j;
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++)
if (i<j && i+j<n+1)
cout<<a[i][j];
}
8. Să se verifice dacă sudul este egal cu vestul.

#include <iostream>
using namespace std;
int a[1001][1001], n, i, j, s, S;
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++)
{
if (i>j && i+j>n+1)
s=a[i][j];
if (i>j && i+j<n+1)
S=a[i][j];
}
if(s==S)
cout<<"DA";
else
cout<<"NU";
}
9. Să se facă suma nordului, sudului, vestului și estului.

#include <iostream>
using namespace std;
int a[1001][1001], n, i, j, s, S, m, M;
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++)
{
if (i>j && i+j>n+1)

s=a[i][j];
if (i>j && i+j<n+1)
S=a[i][j];
if (i<j && i+j<n+1)
m=a[i][j];
if (i<j && i+j>n+1)
M=a[i][j];
}
cout<<m+M+S+s;
}
10. Să se verifice dacă numerele de pe linia 2 sunt prime.

#include <iostream>
using namespace std;
int a[1001][1001], n, i, j, d, ok=1;
int main(){
cin>>n;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
cin>> a[i][j];

for (j=1; j<=n; j++)


for (d=1; d*d<=n; d++)
if (a[2][j]%d==0)
ok=0;

if (ok==1)
cout<<"da";
else
cout<<"nu";
return 0;
}

11. Se citesc n, m apoi cele n∙m elemente întregi ale unei matrice cu n linii și m coloane.
Să se afișeze suma elementelor de pe fiecare linie. Aceste valori se vor afișa pe o singură
linie a ecranului, separate prin spațiu
#include <iostream>
using namespace std;
int a[101][101], s;
int n, m, i, j;
int main(){
cin>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
cin>>a[i][j];
for (i=1;i<=n;i++) {
s = 0;
for (j=1;j<=m;j++)
s+=a[i][j];
cout<<s<<" ";
}
return 0
12. Se consideră o matrice pătratică cu n linii şi n coloane şi elemente numere naturale.
Să se modifice matricea în felul următor: toate elementele de pe liniile care conţin valoare
maximă din matrice vor fi mărite cu valoarea minimă din matrice.
#include <iostream>
using namespace std;
int main()
{
int n , maxi = -1 , mini = 1000000001 , a[101][101];
cin >> n;
for(int i = 0 ; i < n ;++i)
{
for(int j = 0 ; j < n ;++j)

{
cin >> a[i][j];
if(a[i][j] > maxi) maxi = a[i][j];
if(a[i][j] < mini) mini = a[i][j];
}
}
for(int i = 0 ; i < n ;++i)
{
int c = 0;
for(int j = 0 ; j < n ;++j)
{
if(a[i][j] == maxi) c++;
}
if(c != 0) for(int j = 0 ; j < n ;++j)
cout << a[i][j] + mini << " ";
else for(int j = 0 ; j < n ;++j)
cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
13. matrice patratica ,nr intregi,n linii,n coloane,sa se afiseze suma nr din cele patru zone
delimitate de diagonale. (in sensul acelor de ceasornic)

#include<iostream>
using namespace std;
int main()
{
int s1=0,s2=0,s3=0,s4=0,n,i,j,a[10][10];
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
for(i=0;i<n;i++)
for(j=0;j<n;j++)

{
if(i<j && i+j<n-1)
s1=s1+a[i][j];
if(i<j && i+j>n-1)
s2=s2+a[i][j];
if(i>j && i+j>n-1)
s3=s3+a[i][j];
if(i>j && i+j<n-1)
s4=s4+a[i][j];
}

cout<<"s1="<<s1<<endl<<"s2="<<s2<<endl<<"s3="<<s3<<endl<<"s4="<<
s4;
return 0 ;
}
14. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (2<n<25) şi
apoi
construieşte în memorie o matrice cu n linii şi n coloane, ale cărei
elemente primesc valori după cum urmează: elementul din linia i şi coloana j primeşte ca
valoare ultima cifră a produsului i*j (1≤i≤n şi 1≤j≤n).

#include <iostream>
using namespace std;
int main()
{int n,i,j,a[100][100];
cin>>n;
for(i=1;i<=n;i++)

for(j=1;j<=n;j++)
a[i][j]=i*j%10;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
cin>>n;
}

15. .Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n şi apoi
construieşte în memorie o matrice cu n linii şi n coloaneelemente primesc valori după
cum urmează:
- elementele aflate pe diagonala secundară sunt toate nule;
- elementele de pe coloana i, aflate deasupra diagonalei secundare, au valoarea
egală cu i;
- elementele de pe linia n-i+1, aflate sub diagonala secundară, au valoarea egală
cu i.

#include <iostream>
using namespace std;
int main()
{int n,i,j,a[100][100],x;
cin>>n;
for(i=1;i<=n;i++)
a[i][n+1-i]=0;

for(i=1;i<=n-1;i++)
for(j=1;j<=n-i;j++)
a[i][j]=j;
x=n-1;
for(i=2;i<=n;i++)
{for(j=n+2-i;j<=n;j++)
a[i][j]=x;x=x-1;}
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
cin>>n;
}
16. Scrieţi un program afişează pe ecran o matrice cu n linii şi n coloane, în care fiecare
element de pe diagonala secundară are valoarea n, fiecare element aflat deasupra
diagonalei secundare este mai mic cu o unitate decât vecinul aflat pe aceeaşi linie în
dreapta lui şi fiecare element aflat sub diagonala secundară este mai mare cu o unitate
decât vecinul aflat pe aceeaşi linie în stânga lui.

#include <iostream>
using namespace std;
int main()
{
int a[19][19],n,i,j;
cin>>n;
for (i=1;i<=n;i++)
a[i][n+1-i]=n;
for (i=1;i<n;i++)
for (j=n-i;j>=1;j--)
a[i][j]=a[i][j+1]-1;
for (i=2;i<=n;i++)
for (j=n-i+2;j<=n;j++)
a[i][j]=a[i][j-1]+1;
for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
cout<<a[i][j]<< " ";
cout<<endl;
}
return 0;
}

17.Să se calculeze media aritmetica a elementelor unei matrici su m linii si n coloane.


(special)

#include <iostream>
using namespace std;
int main()
{
int i, j, m, n, M[10][10], suma;
cout<<"Introduceti numarul de linii: m=";
cin>>m;
cout<<"Introduceti numarul de coloane: n=";

cin>>n;
suma=0;
cout<<"Introduceti numerele:"<<endl;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
cout<<"M["<<i<<"]["<<j<<"]=";cin>>M[i][j];
suma=suma+M[i][j];
}
cout<<"Suma elementelor matricii este: "<<suma<<endl;
}

18. Sa se calculeze media aritmetica a elementelor unei matrici su m linii si n coloane.


(special++)

#include <iostream>
using namespace std;
int main()
{
int n,m,i,j,a[20][20];
int nr,s=0;
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
cout<<"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++)
s=s+a[i][j];
nr=m*n;
cout<<"Matricea contine:"<<nr<<" elemente"<<endl;
cout<<"Suma elementelor matricii este:"<<s<<endl;
cout<<"Media aritmetica a acestora este: "<<(float)s/nr;
return 0;
}
19. Sa se afiseze cate numere sunt pozitive, negative, respectiv nule, intr-o matrice
bidimensionala. (++)

#include <iostream>
using namespace std;
int main()
{
int n,i,j,a[20][20],poz=0,neg=0,zero=0;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
cout<<"Matricea este:"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
cout<<a[i][j]<<" ";
if (a[i][j]<0)
neg++;
else
if (a[i][j]>0)
poz++;
else
zero++;
}
cout<<endl;
}
cout<<"Matricea contine:"<<endl;
cout<<neg<<" elemente negative"<<endl;
cout<<poz<<" elemente pozitive"<<endl;
cout<<zero<<" elemente nule"<<endl;
}

20. Sa se afiseze matricea obtinuta in urma eliminarii


penultimei linii, respectiv coloane din matricea data
#include<iostream>
using namespace std;
int a[10][10],i,j,n,x,y;
int main()
{
cout<<"Dimensiunea matricii: 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++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
} cout<<endl<<"Linia de sters: x=";
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: y=";
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;
}
}

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