Sunteți pe pagina 1din 64

1. Se citete n, numr natural.

S se verifice dac numrul


este palindrom.

#include<iostream.h>

void main()

{ int n,m,inv;

cout<<"n="; cin>>n;

inv=0;

m=n;

while (n!=0)

{inv=inv*10+n%10;

n=n/10;

if( inv==m)

cout<<" este palindrom";

else cout<<"nu este palindrom";

}
2. Se citete n, numr natural. S se verifice dac
numrul este perfect.

#include<iostream.h>

void main()

{ int n,s,i;

cout<<"n="; cin>>n;

s=0;

for (i=1;i<=n/2;i++)

if( n%i==0)

s=s+i;

if(s==n)

cout<<" este perfect";

else cout<<"nu este perfect";

3. Se citete n, numr natural. S se verifice dac


numrul este prim i, n caz contrar, s se afieze
divizorii acestuia.

#include<iostream.h>

2
void main()

{ int n,p,i;

cout<<"n="; cin>>n;

p=1;

for (i=2;i<=n/2;i++)

if( n%i==0)

p=0;

if((p==1)||(n==2))

cout<<" este prim";

else

cout<<"nu este prim si are divizorii: ";

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

if (n%i==0)

cout<<i<<" ";

3
4. S se afieze toate numerele prime mai mici dect o
valoare citit de la tastatur.

#include<iostream.h>

void main()

{ int n,p,i,ok;

cout<<"n="; cin>>n;

if (n==2)

cout<<n;

else

{cout<<2<<" ";

for (p=3;p<=n;p++)

ok=1;

for (i=2;i<=p/2;i++)

if( p%i==0)

ok=0;

if (ok==1)

4
cout<<p<<" ";

5. Se d un vector X cu n elemente. S se afieze


numrul valorilor prime.

#include<iostream.h>

int n,j,nr,x[20];

int prim(int m)

{ int ok,i;

ok=1;

for (i=2;i<=m/2;i++)

if( m%i==0)

ok=0;

return ok;

void main()

5
cout<<"n="; cin>>n;

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

cout<<"x["<<j<<"]=";

cin>>x[j];

nr=0;

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

if( prim(x[j])==1)

nr=nr+1;

cout<<nr;

6. Se d un vector X cu n elemente. S se nlocuiasc


fiecare element cu media aritmetica a celorlalte n-1
elemente.

#include<iostream.h>

void main()

{ int n,j;

6
float s,x[20];

cout<<"n="; cin>>n;

s=0;

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

cout<<"x["<<j<<"]=";

cin>>x[j];

s=s+x[j];

cout<<endl;

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

x[j]=(s-x[j])/(n-1);cout<<x[j]<<" ";

cout<<endl;

7. Se da un vector x cu n elemente. Sa se elimine elementele


nule.

7
#include <iostream.h>

#include <conio.h>

int x[20],a[20],n,i,j,k;

void main()

cout<<"n=";

cin>>n;

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

cout<<"x["<<i<<"]=";

cin>>x[i];

cout<<"Sirul initial este"<<endl;

for(i=1;i<=n;i++) cout<<x[i]<<" ";

k=0;

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

if(x[i]!=0)

8
{

k++;

a[k]=x[i];

cout<<"Sirul fara elemente nule este:"<<endl;

for(i=1;i<=k;i++)

cout<<a[i]<<" ";

getch();

8. Se d un vector X cu n elemente. S se insereze pe


poziia k dat, o valoare a, citit de la tastatur.

#include<iostream.h>

void main()

{ int n,j,i,k,a,x[20];

cout<<"n="; cin>>n;

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

{cout<<"x["<<i<<"]=";

cin>>x[i];

9
}

cout<<"a="; cin>>a;

cout<<"k="; cin>>k;

for (j=n;j>=k;j--)

x[j+1]=x[j];

n=n+1;

x[k]=a;

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

cout<<x[i]<<" ";

cout<<endl;

9. Se d un vector X cu n elemente. S se genereze un


alt vector Y care conine elementele pare din vectorul
X.

#include<iostream.h>

void main()

{ int n,j,i,x[20],y[20];

cout<<"n="; cin>>n;

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

{cout<<"x["<<i<<"]=";

cin>>x[i];

j=0;

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

if(x[i]%2==0)

j=j+1;

y[j]=x[i];

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

cout<<y[i]<<" ";

cout<<endl;

10. Se d un vector X cu n elemente. S se ordoneze


descresctor elementele vectorului.

#include<iostream.h>

11
void main()

{ int n,j,i,aux,x[20];

cout<<"n="; cin>>n;

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

{cout<<"x["<<i<<"]=";

cin>>x[i];

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

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

if(x[i]<x[j])

aux=x[i];

x[i]=x[j];

x[j]=aux;

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

cout<<x[i]<<" ";

12
cout<<endl;

11. Se d un vector X cu n elemente. S se ordoneze


cresctor elementele vectorului.

#include<iostream.h>

void main()

{ int n,j,i,aux,x[20];

cout<<"n="; cin>>n;

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

{cout<<"x["<<i<<"]=";

cin>>x[i];

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

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

if(x[i]>x[j])

aux=x[i];

x[i]=x[j];

13
x[j]=aux;

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

cout<<x[i]<<" ";

cout<<endl;

12. Se d un vector X cu n elemente. S se tearg


elementul de pe poziia.

#include<iostream.h>

void main()

{ int n,j,i,k,x[20];

cout<<"n="; cin>>n;

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

{cout<<"x["<<i<<"]=";

cin>>x[i];

cout<<"k="; cin>>k;

for (i=k;i<=n-1;i++)

14
x[i]=x[i+1];

n=n-1;

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

cout<<x[i]<<" ";

cout<<endl;

13. Se d un vector X cu n elemente. Testai dac o


valoare a, introdus de la tastatur, se gsete n
vector. n caz afirmativ, precizai poziiile pe care se
afl.

#include<iostream.h>

void main()

{ int n,j,i,a,x[20];

cout<<"n="; cin>>n;

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

{cout<<"x["<<i<<"]=";

cin>>x[i];

cout<<"a="; cin>>a;

15
j=0;

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

if(x[i]==a)

j=1;

cout<<i<<" ";

if(j==0)

cout<<"nu exista in vector valoarea cautata";

cout<<endl;

14. Se d un vector X cu n elemente. S se afieze


maximul valorilor negative.

#include<iostream.h>

void main()

{ int n,i,j,max,x[20];

cout<<"n="; cin>>n;

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

16
{

cout<<"x["<<i<<"]=";

cin>>x[i];

i=1;

while((i<=n) && (x[i]>=0))

i=i+1;

if (i>n)

cout<<"nu exista elemente negative in vector";

else

j=i;

max=x[j];

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

if((x[i]<0) && (x[i]>max))

max=x[i];

cout<<"maximul valorilor negative max= "<<max;

17
}

cout<<endl;

15. Se d un vector X cu n elemente. S se afieze


numerele perfecte din vector.

#include<iostream.h>

int perfect(int nr)

int s,i;

s=0;

for(i=1;i<=nr/2;i++)

if (nr%i==0)

s=s+i;

if(s==nr)

return 1;

else

return 0;

18
void main()

{ int n,i,j,x[20];

cout<<"n="; cin>>n;

cout<<" exemplu de numere perfecte: 6, 28"<<endl;

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

cout<<"x["<<i<<"]=";

cin>>x[i];

j=0;

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

if(perfect(x[i])==1)

cout<<"numar perfect= "<<x[i]<<endl;

j=1;

if(j==0)

19
cout<<" nu exista numere perfecte in vector";

cout<<endl;

16. Se d un vector X cu n elemente. S se calculeze cel


mai mare divizor comun al elementelor vectorului.

#include<iostream.h>

int cmmdc(int a,int b)

while(a!=b)

if(a>b)

a=a-b;

else

b=b-a;

return a;

void main()

{ int n,i,c,x[20];

cout<<"n="; cin>>n;

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

cout<<"x["<<i<<"]=";

cin>>x[i];

c=cmmdc(x[1],x[2]);

for(i=3;i<=n;i++)

c=cmmdc(c,x[i]);

cout<<"c.m.m.d.c. al elementelor vectorului = "<<c;

cout<<endl;

17. Se d o matrice A ptratic cu nxn elemente. S se


afieze maximul elementelor i poziiile pe care apare
n matrice.

#include<iostream.h>

void main()

{ int n,i,j,max,x[20][20];

cout<<"n="; cin>>n;

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

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

cout<<"x["<<i<<"]["<<j<<"]=";

cin>>x[i][j];

cout<<" maximul este pe pozitiile:";

max=x[1][1];

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

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

if (x[i][j]>max)

max=x[i][j];

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

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

if(x[i][j]==max)

cout<<"("<<i<<","<<j<<") ";

cout<<endl;

22
}

18. Se d o matrice A ptratic cu nxn elemente. S se


afieze minimul elementelor i poziiile pe care apare
n matrice.

#include<iostream.h>

void main()

{ int n,i,j,min,x[20][20];

cout<<"n="; cin>>n;

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

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

cout<<"x["<<i<<"]["<<j<<"]=";

cin>>x[i][j];

cout<<" minimul este pe pozitiile :";

min=x[1][1];

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

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

23
if (x[i][j]<min)

min=x[i][j];

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

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

if(x[i][j]==min)

cout<<"("<<i<<","<<j<<") ";

cout<<endl;

19. Se d o matrice A ptratic cu nxn elemente. S se


afieze media aritmetic a elementelor pozitive.

#include<iostream.h>

void main()

{ int n,i,j,nr,x[20][20];

float ma;

cout<<"n="; cin>>n;

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

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

24
cout<<"x["<<i<<"]["<<j<<"]=";

cin>>x[i][j];

cout<<" media aritmetica a elementelor pozitive este:";

ma=0; nr=0;

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

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

if (x[i][j]>0)

ma=ma+x[i][j];nr=nr+1;

ma=ma/nr;

cout<<ma;

cout.precision(2);

cout<<endl;

20. Se d o matrice A ptratic cu nxn elemente. S se


interschimbe dou linii L1 i L2, date.

25
#include<iostream.h>

void main()

{ int n,i,j,aux,l1,l2,x[20][20];

cout<<"n="; cin>>n;

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

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

cout<<"x["<<i<<"]["<<j<<"]=";

cin>>x[i][j];

cout<<"l1=";cin>>l1;

cout<<"l2=";cin>>l2;

cout<<"matricea inainate de interschimbare:"<<endl;

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

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

cout<<x[i][j]<<" ";

26
cout<<endl;

cout<<"matricea dupa interschimbare:"<<endl;

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

aux=x[l1][j];

x[l1][j]=x[l2][j];

x[l2][j]=aux;

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

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

cout<<x[i][j]<<" ";

cout<<endl;

cout<<endl;

27
21. Se d un fiier text care conine numere naturale,
cte unul pe linie. S se formeze un alt fiier text care
s conin numerele pare din fiierul iniial.

#include<iostream.h>

#include<fstream.h>

void main()

{ int nr;

ifstream f("numere1.txt");

ofstream g("numere2.txt");

while(!f.eof())

f>>nr;

if (nr%2==0)

g<<nr<<endl;

f.close(); g.close();

cout<<endl;

28
22. S se scrie un program care determina recursiv cel
mai mare divizor comun dintre dou numere naturale
date a i b.

#include<iostream.h>

int cmmdc(int a,int b)

int c;

if (a==b) c=a;

else

if (a>b)

c=cmmdc(a-b,b);

else

c=cmmdc(a,b-a);

return c;

void main()

int a,b;

29
cout<<"a="; cin >>a;

cout<<"b="; cin>>b;

cout<<"cmmdc="<<cmmdc(a,b);

23. S se scrie un program care caut recursiv o


valoare dat ntr-un vector.

#include<iostream.h>

int a[100],n,i,x,ok;

void caut(int a[100],int n,int x)

if (n>=1)

if (a[n]==x)

ok=1;

else

caut(a,n-1,x);

void main()

30
cout<<"n="; cin >>n;

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

cout<<"a["<<i<<"]=";

cin>>a[i];

cout<<"valoarea cautata x="; cin>>x;

ok=0;

caut(a,n,x);

if(ok==1)

cout<<"exista";

else

cout<<"nu exista";

24. S se genereze toate permutrile elementelor unui


ir dat cu n elemente.

#include<iostream.h>

int st[20],x[100],n,k,as,ev,i;

31
void init()

st[k]=0;

int succesor()

if (st[k]<n)

{st[k]=st[k]+1;

return 1;

else return 0;

int valid()

if(k>1)

for (i=1;i<=k-1;i++)

if(st[k]==st[i])

32
return 0;

return 1;

int solutie()

if(k==n)

return 1;

else

return 0;

void tipar ()

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

cout<<x[st[i]];

cout<<" ";

void permutari()

33
{

k=1;

while (k>0)

as=1;ev=0;

while(as && !ev)

as=succesor();

if(as)

ev=valid();

if (as)

if(solutie())

tipar();

else

k++;

34
init();

else k--;

void main()

cout<<"n=";cin>>n;

cout<<endl;

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

cout<<"x["<<i<<"]=";

cin>>x[i];

permutari();

cout<<endl;

35
25. S se genereze toate aranjamentele elementelor
unui ir dat cu n elemente.

#include<iostream.h>

int st[20],x[100],n,p,k,as,ev,i;

void init()

st[k]=0;

int succesor()

if (st[k]<n)

{st[k]=st[k]+1;

return 1;

else return 0;

int valid()

36
if(k>1)

for (i=1;i<=k-1;i++)

if(st[k]==st[i])

return 0;

return 1;

int solutie()

if(k==p)

return 1;

else

return 0;

void tipar ()

for (i=1;i<=p;i++)

cout<<x[st[i]];

37
cout<<" ";

void aranjamente()

k=1;

while (k>0)

as=1;ev=0;

while(as && !ev)

as=succesor();

if(as)

ev=valid();

if (as)

if(solutie())

38
tipar();

else

k++;

init();

else k--;

void main()

cout<<"n=";cin>>n;

cout<<"p=";cin>>p;

cout<<endl;

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

cout<<"x["<<i<<"]=";

39
cin>>x[i];

aranjamente();

cout<<endl;

26. S se genereze toate combinrile elementelor unui


ir dat cu n elemente.

#include<iostream.h>

int st[20],x[100],n,p,k,as,ev,i;

void init()

if(k>1)

st[k]=st[k-1];

else

st[k]=0;

int succesor()

40
{

if (st[k]<n-p+k)

{st[k]=st[k]+1;

return 1;

else return 0;

int valid()

for(i=1;i<=k-1;i++)

if (st[k]==st[i])

return 0;

return 1;

int solutie()

if(k==p)

41
return 1;

else

return 0;

void tipar ()

for (i=1;i<=p;i++)

cout<<x[st[i]];

cout<<" ";

void combinari()

k=1;

while (k>0)

as=1;ev=0;

while(as && !ev)

42
{

as=succesor();

if(as)

ev=valid();

if (as)

if(solutie())

tipar();

else

k++;

init();

else k--;

void main()

43
{

cout<<"n=";cin>>n;

cout<<"p=";cin>>p;

cout<<endl;

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

cout<<"x["<<i<<"]=";

cin>>x[i];

combinari();

cout<<endl;

27. S se aranjeze n dame pe o tabl de ah de


dimensiuni nxn astfel nct s nu se atace.

#include<iostream.h>

#include<math.h>

typedef int stiva[100];

int n,k,ev,as;

44
stiva st;

void init ()

st[k]=0;

int succesor ()

if (st[k]<n)

st[k]=st[k]+1;

return 1;

else

return 0;

int valid ()

45
for (int i=1; i<=k-1; i++)

if ((st[k]==st[i]) || abs(st[k]-st[i])==abs(k-i))

return 0;

return 1;

int solutie ()

return k==n;

void tipar ()

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

cout<<st[i]<<" ";

cout<<endl;

void dame()

46
k=1;

while (k>0)

as=1;ev=0;

while(as && !ev)

as=succesor();

if(as)

ev=valid();

if (as)

if(solutie())

tipar();

else

k++;

init();

47
}

else k--;

void main()

cout<<"n=";cin>>n;

cout<<endl;

dame();

cout<<endl;

28. Se d o list simplu nlnuit cu elemente numere


ntregi. S se tearg elementul de pe prima poziie.

#include<iostream.h>

struct nod

{int info;

nod* adr_urm;

};

48
nod *p,*u,*aux;

void adaugare(nod* &p,int val)

nod *c;

if(!p)

{p=new nod;

p->info=val;

p->adr_urm=0;

u=p;}

else

{c=new nod;

u->adr_urm=c;

c->info=val;

c->adr_urm=0;

u=c;

49
void listare(nod *p)

nod *c;

c=p;

while(c)

cout<<c->info<<" ";

c=c->adr_urm;

cout<<endl;

void main()

int n,i,x;

cout<<"n="; cin>>n;

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

{ cout<<"dati o valoare ";cin>>x;

50
adaugare(p,x);

cout<<"lista initiala:"<<endl;

listare(p);

aux=p;

p=p->adr_urm;

delete aux;

cout<<"lista dupa stergere:"<<endl;

listare(p);

29. Se d o list simplu nlnuit cu elemente numere


ntregi. S se tearg elementul de pe ultima poziie.

#include<iostream.h>

struct nod

{int info;

nod* adr_urm;

};

nod *p,*u,*aux,*d;

51
void adaugare(nod* &p,int val)

nod *c;

if(!p)

{p=new nod;

p->info=val;

p->adr_urm=0;

u=p;}

else

{c=new nod;

u->adr_urm=c;

c->info=val;

c->adr_urm=0;

u=c;

void listare(nod *p)

52
{

nod *c;

c=p;

while(c)

cout<<c->info<<" ";

c=c->adr_urm;

cout<<endl;

void main()

int n,i,x;

cout<<"n="; cin>>n;

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

{ cout<<"dati o valoare ";cin>>x;

adaugare(p,x);

53
}

cout<<"lista initiala:"<<endl;

listare(p);

d=p;

while(d->adr_urm->adr_urm!=0)

d=d->adr_urm;

aux=d->adr_urm;

d->adr_urm=0;

delete aux;

cout<<"lista dupa stergere:"<<endl;

listare(p);

30. Creai un arbore binar cu chei ntregi. Parcurgei


n preordine arborele creat.

#include<iostream.h>

struct nod

54
int nr;

nod* st, *dr;

};

nod * c;

void preordine_vsd(nod *c)

if(c)

cout<<c->nr;

preordine_vsd(c->st);

preordine_vsd(c->dr);

void inordine_svd(nod *c)

if(c)

55
inordine_svd(c->st);

cout<<c->nr;

inordine_svd(c->dr);

void postordine_sdv(nod *c)

if(c)

postordine_sdv(c->st);

postordine_sdv(c->dr);

cout<<c->nr;

nod * arbore()

int n;

56
nod *c;

cout<<"n="; cin>>n;

if(n)

c=new nod;

c->nr=n;

c->st=arbore();

c->dr=arbore();

return c;

else return 0;

void main()

c=arbore();

cout<<"parcurgerea in preordine:"<<endl;

preordine_vsd(c);

57
}

31. Creai un arbore binar cu chei ntregi. Parcurgei


n inordine arborele creat.

#include<iostream.h>

struct nod

int nr;

nod* st, *dr;

};

nod * c;

void preordine_vsd(nod *c)

if(c)

cout<<c->nr;

preordine_vsd(c->st);

preordine_vsd(c->dr);

58
}

void inordine_svd(nod *c)

if(c)

inordine_svd(c->st);

cout<<c->nr;

inordine_svd(c->dr);

void postordine_sdv(nod *c)

if(c)

postordine_sdv(c->st);

postordine_sdv(c->dr);

cout<<c->nr;

59
}

nod * arbore()

int n;

nod *c;

cout<<"n="; cin>>n;

if(n)

c=new nod;

c->nr=n;

c->st=arbore();

c->dr=arbore();

return c;

else return 0;

60
void main()

c=arbore();

cout<<"parcurgerea in inordine:"<<endl;

inordine_svd(c);

32. Creai un arbore binar cu chei ntregi. Parcurgei


n postordine arborele creat.

#include<iostream.h>

struct nod

int nr;

nod* st, *dr;

};

nod * c;

void preordine_vsd(nod *c)

if(c)

61
{

cout<<c->nr;

preordine_vsd(c->st);

preordine_vsd(c->dr);

void inordine_svd(nod *c)

if(c)

inordine_svd(c->st);

cout<<c->nr;

inordine_svd(c->dr);

void postordine_sdv(nod *c)

62
if(c)

postordine_sdv(c->st);

postordine_sdv(c->dr);

cout<<c->nr;

nod * arbore()

int n;

nod *c;

cout<<"n="; cin>>n;

if(n)

c=new nod;

c->nr=n;

c->st=arbore();

63
c->dr=arbore();

return c;

else return 0;

void main()

c=arbore();

cout<<"parcurgerea in postordine:"<<endl;

postordine_sdv(c);

64

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