Atestat 2016 11-20
/* 11. Se citesc de la tastatură n numere. Câte dintre ele sunt pătrate perfecte?
Exemplu: n=7; x=(1,25,4,5,8,6,9) =>4 (1,25,4,9). */
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int c=0,n,i; double x;
cout<<"n=";cin>>n;
cout<<"numerele: "<<endl;
for(i=1;i<=n;i++)
{
cin>>x;
if(sqrt(x)*sqrt(x)==x) c++;
}
cout<<c;
return 0;
}
/*12. Să se afișeze rezultatul sumei 2-4+6-…(-1)^(n+1)∙2n, n>=1, n citit de la tastatură.
Exemplu: n=3=> S=2-4+6=4 */
#include <iostream>
using namespace std;
int main()
{
long int s=0;int n,i,semn=1;
cout << "n=";cin>>n;
for(i=1;i<=n;i++)
{
s=s+semn*(2*i);
semn=-semn;
}
cout<<s;
return 0;
}
/*13. Se citește un vector cu n elemente. Să se calculeze produsul elementelor negative, impare,
divizibile cu 3, de pe poziții pare. */
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int i,n,a[100];long int p=1;
cout<<"n=";cin>>n;
cout<<"dati numerele"<<endl;
for(i=1;i<=n;i++)cin>>a[i];
cout<<endl;
for(i=1;i<=n;i++)
if(a[i]<0 && abs(a[i])%2==1 && abs(a[i]%3==0 && i%2==0)) { p=p*a[i];cout<<a[i]<<' ';}
cout<<endl<<p;
return 0;
}
/*14. Se citește o matrice pătratică de ordin n. Să se calculeze suma elementelor de pe diagonala
principală și produsul elementelor de sub diagonala principală */
#include <iostream>
using namespace std;
int main()
{
int n,a[100][100],i,j,p=1,s=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];
if(i==j)s=s+a[i][j];
if(j<i) p=p*a[i][j];
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
cout<<"s="<<s<<"p="<<p;
return 0;
}
/*15. Se citește un număr natural a. Să se creeze o matrice pătratică de ordin a care conține:
- cifra 4 pe diagonala principală;
- valoarea elementelor rămase în matrice, să conțină valoarea 1 */
#include <iostream>
using namespace std;
int main()
{
int a,x[100][100],i,j;
cout<<"a=";cin>>a;
for(i=1;i<=a;i++)
for(j=1;j<=a;j++)
if(i==j) x[i][j]=4;
else x[i][j]=1;
for(i=1;i<=a;i++)
{
for(j=1;j<=a;j++)
cout<<x[i][j]<<' ';
cout<<endl;
}
return 0;
}
/*16. Se citește o matrice cu n linii și m coloane, cu elemente numere întregi.
Să se interschimbe două coloane c1 și c2 (date de la tastatură), între ele.*/
#include <iostream>
using namespace std;
int main()
{
int n,m,a[100][100],i,j,c1,c2,aux;
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];
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
cout<<"c1=";cin>>c1;
cout<<"c2=";cin>>c2;
for(i=1;i<=n;i++)
{
aux=a[i][c1];
a[i][c1]=a[i][c2];
a[i][c2]=aux;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
return 0;
}
/*17. Să se scrie un program care să realizeze descompunerea unui număr în factori primi. */
#include <iostream>
using namespace std;
int main()
{
int n,d=2;
cout<<"n=";cin>>n;
while(n>1)
{
while(n%d==0)
{
cout<<n<<"|"<<d<<endl;
n=n/d;
}
d++;
}
cout<<1<<'|';
return 0;}
/*18. Se citește de la tastatură un șir de caractere. Să se afișeze vocalele din text.*/
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s[200];
cout<<"sirul=";cin.get(s,200);
for(int i=0;i<strlen(s);i++)
if(strchr("AEIOUaeiou",s[i])!=0) cout<<s[i]<<' ';
return 0;
}
/*19. Să se verifice dacă două numere citite de la tastaură sunt gemene (sunt ambele prime și
diferența lor în modul este 2).
Exemple: (9,11); (11,13).*/
#include <iostream>
using namespace std;
int prim(int n)
{
int i;
if(n<2) return 0;
for(i=2;i<=n/2;i++)
if(n%i==0) return 0;
return 1;
}
int main()
{
int n,m;
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
if(prim(n)&&prim(m)&&(n-m==2 || m-n==2)) cout<<"numere gemene";
else cout<<"nu sunt numere gemene";
return 0;
}
/*20. Se citește p număr natural, numărul p nu poate conține cifra 0. Să se construiască o matrice
pătratică care are pe diagonala principală cifra 0, deasupra diagonalei principale va avea cea mai mare cifră
a numărului p, iar sub diagonala principală va avea cea mai mică cifră a numărului p. Se vor folosi 3
subprograme, două vor fi pentru calcularea minimului respectiv maximului, iar cel de-al treilea pentru
crearea și afișarea matricei.
Ex: date de intrare:
p=6952374 n=5
date de ieșire:
0 9 9 9 9
2 0 9 9 9
2 2 0 9 9
2 2 2 0 9
2 2 2 2 0
*/
#include <iostream>
using namespace std;
int a[100][100],n; long int p;
int cif_min(long int p)
{
int min=10,u;
while(p!=0)
{
u=p%10;
if(u<min)min=u;
p=p/10;
}
return min;
}
int cif_max(long int p)
{
int max=0,u;
while(p!=0)
{
u=p%10;
if(u>max)max=u;
p=p/10;
}
return max;
}
void matrice(long int p)
{
int min=cif_min(p);
int max=cif_max(p);
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)a[i][j]=0;
else if(j<i)a[i][j]=min;
else a[i][j]=max;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
}
int main()
{
cout << "p=";cin>>p;
cout << "n=";cin>>n;
matrice(p);
return 0;
}