Subiectul nr. 1 Se citesc n (maxim 30) elemente reale, sa se retina elementele o singura data folosind un sir ajutator.
#include
#include
void main()
{clrscr();
int i,n;
float a,v[30];
cout<>n;
for(i=1;i>a; v[i]=a;}
for(i=1;i<=n;i++)
cout<<v[i]< (2,7,-5,4)
#include
#include
#include
void main()
{ clrscr();
int max,min,n,i,j,v[30],k;
cout<>n;
for(i=1;i<=n;i++)
{cout<<"v["<<i<>v[i];}
for(i=1;i<=n;i++) cout<<v[i]<<" ";
cout<<endl;
max=v[1];
for(i=2;imax)
{j=i; max=v[i];}
min=v[1];
for(i=2;i<=n;i++)
if(v[i]<min)
{k=i; min=v[i];}
v[j]=min;
v[k]=max;
for(i=1;i<=n;i++) cout<<v[i]<<" ";
getch();}
Subiectul nr. 3 Sa se scrie un program care elimina dintr-o matrice data o linie data.
#include
#include
void citire(int a[10][10], int&n,int&m)
{int i,j;
cout<>n;
cout<>m;
cout<<"elementele:"<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];}}
void afisare (int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" "; cout<<endl;}}
void scadere(int a[10][10], int &n,int m, int &l)
{int i,j;
for(i=l;i<=n;i++)
for(j=1;j<=m;j++)
a[i][j]=a[i+1][j];
n–;}
void main()
{clrscr();
int a[10][10],n,m,l;
citire(a,n,m);
afisare(a,n,m); cout<<endl;
cout<>l;
scadere(a,n,m,l);
afisare(a,n,m);
getch();}
Subiectul nr. 4 Se dă un număr natural nenul care are maxim 9 cifre. Scrieti un program care să afiseze media aritmetică a cifrelor sale.
#include
#include
#include
int n,i; float ma,s;
void main()
{clrscr();
cout<>n;
i=0; s=0;
while(n!=0)
{s=n%10+s; i=i+1; n=n/10;}
ma=s/i;
cout<<ma;
getch();}
Subiectul nr. 5 Se citeste un numar intreg n. Sa se transforme numarul din baza 10 in baza 2 retinand cifrele intr-un vector.
#include
#include
void main()
{ clrscr();
int n10, nq,i,j,v[100];
cout<>n10;
i=1;
while (n10!=0)
{nq=n10%2; v[i]=nq; i=i+1;
n10=n10/2;}
for(j=i;j>=1;j–) {cout<<endl;cout<<v[j];}
getch();}
Subiectul nr. 6 Se citesc 2 multimi de numere intregi cu cel mult 20 elemente. Să se afiseze reuniunea lor.
# include
#include
int a[20],b[20],r[20],nr,na,nb,i,j,sw;
void citire(int c[20],int &n)
{ cout<>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<>c[i];
sw=0;
for(j=1;j<i;j++)
if (c[j]==c[i])
sw=1;
if (sw==1) i=i-1;
}
}
void afisare(int c[20], int n)
{for (i=1;i<=n;i++)
cout<<c[i]<<" ";
}
void reuniune()
{
for(i=1;i<=na;i++)
r[i]=a[i];
nr=na;
for(i=1;i<=nb;i++)
{ sw=0;
for(j=i;j<=na;j++)
if (b[i]==a[j]) sw=1;
if (sw==0)
{ nr=nr+1;
r[nr]=b[i];
}
}
}
void main()
{clrscr();
cout<<" multimea a:\n";
citire(a,na);
cout<<" multimea b:\n";
citire(b,nb);
reuniune();
cout<<"multimea r reuniunea:\n";
afisare(r,nr);
getch();
}
Subiectul nr.7. Sa se scrie un program care interschimba intr-o matrice data doua coloane date.
#include
#include
int a[10][10],m,n,c1,c2;
void citire(int a[10][10],int &n,int &m)
{int i,j;
cout<>n;
cout<>m;
cout<<"elementele:" ;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];};}
void afisare(int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
void schimbare(int a[10][10] ,int m ,int c1,int c2)
{int i,aux;
for(i=1;i<=m;i++)
{aux=a[i][c1];
a[i][c1]=a[i][c2];
a[i][c2]=aux;}}
void main()
{citire(a,n,m);
afisare(a,n,m);
cout<>c1;
cout<>c2;
schimbare(a,m,c1,c2);
afisare(a,n,m);
getch();}
Subiectul nr. 8 Sa se citeasca o matrice patratice de n*n numere intregi . Sa se calculeze elementul maxim de pe diagonala principala.
#include
#include
int a[10][10],m,n,c1,c2;
void citire(int a[10][10],int &n)
{int i,j;
cout<>n;
cout<<"elementele:\n" ;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];}
}
void afisare(int a[10][10], int n)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
}
void main()
{int max,i;
clrscr();
citire(a,n);
afisare(a,n);
max=a[1][1];
for(i=2;imax) max=a[i][i];
cout<<"maximul de pe diaginala principala este:"<<max;
getch();
}
Subiectul nr. 9 Sa se scrie un program care interschimba intr-o matrice data doua linii date.
#include
#include
int a[10][10],m,n,l1,l2;
void citire(int a[10][10],int &n,int &m)
{int i,j;
cout<>n;
cout<>m;
cout<<"elementele:" ;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];};}
void afisare(int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
void schimbare(int a[10][10] ,int m ,int l1,int l2)
{int j,aux;
for(j=1;j<=m;j++)
{aux=a[l1][j];
a[l1][j]=a[l2][j];
a[l2][j]=aux;}}
void main()
{citire(a,n,m);
afisare(a,n,m);
cout<>l1;
cout<>l2;
schimbare(a,m,l1,l2);
afisare(a,n,m);
getch();}
Subiectul nr. 10 Sa se afiseze toate numerele prime cuprinse in intervalul [a,b], unde a,b sunt numere naturale, a<b.
Ex: Pentru a=2, b=11 se afiseaza 2, 3, 5, 7, 11.
#include
#include
#include
void main()
{clrscr();
int i,x,j,a,b;
cout<>a;
cout<>b;
if (a==1) a=a+1;
for(j=a; j<=b; j++)
{x=1;
i=2;
while((i<=sqrt(j))& (x))
{if (j%i==0)
x=0;
else
i=i+1;
}
if (x==1)
cout<<j<<" ";}
getch();
}
Subiectul nr. 11 Se citesc, pe rand, cifrele unui număr natural (cu cel mult 9 cifre). Sa se reconstituie numarul intr-o variabila de tip long.
#include
#include
#include
void main()
{clrscr();
int m,i, v[30]; float n;
n=0;
cout<>m;
for(i=1; i<=m; i++)
{cout<<"v["<<i<>v[i];}
for(i=1;i<=m;i++)
n=n*10+v[i];
cout<<n;
getch();
}
Subiectul nr. 12 Se citeste un sir de n numere reale. Sa se sorteze crescator, afisandu-se sirul initial, sirul sortat si din nou sirul initial.
#include
#include
int a[50],v[50],n;
void citire()
{ int i;
cout<>n;
for (i=0;i<n;i++)
{cout<<"a["<<i<>a[i];
v[i]=a[i];
}
}
void afisare()
{ int i;
cout<<"(";
for (i=0;i<n;i++)
cout<<a[i]<<",";
cout<<"\b)";
}
void afisare1()
{ int i;
cout<<"(";
for (i=0;i<n;i++)
cout<<v[i]<<",";
cout<<"\b)";
}
void ordonare()
{ int aux,i,j;
for (i=0;i<n-1;i++)
for (j=i+1;ja[j])
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
void main()
{ clrscr();
citire();
cout<<"sirul initial:";
afisare();
ordonare();
cout<<"\n sirul ordonat:";
afisare();
cout<<"\n sirul initial:";
afisare1();
getch();
}
Subiectul nr. 13 Se citesc doua multimi de numere intregi, cu cel mult 20 de elemente, sa se afiseze intersectia lor.
# include
# include
int a[20],b[20],c[20],n,na,nb,i,j,sw;
void citire(int c[20],int &n)
{ cout<>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<>c[i];
sw=0;
for(j=1;j<i;j++)
if (c[j]==c[i])
sw=1;
if (sw==1) i=i-1;
}
}
void afisare(int c[20], int n)
{for (i=1;i<=n;i++)
cout<<c[i]<<" ";
}
void intersectia()
{
for(i=1;i<=na;i++)
{for(j=1;j<=nb;j++)
if (a[i]==b[j]) cout<<a[i]<<",";}
}
void main()
{clrscr();
cout<<"multimea a:";
citire(a,na);
cout<<"multimea b:";
citire(b,nb);
intersectia();
getch();
}
Subiectul nr. 14 Sa se scrie un program care elimina dintr-o matrice data o coloana data.
#include
#include
int a[10][10],m,n,c;
void citire(int a[10][10],int &n,int &m)
{int i,j;
cout<>n;
cout<>m;
cout<<"elementele:" ;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];};}
void afisare(int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
void scadere(int a[10][10] ,int n,int &m,int c)
{int i,j;
for(i=1;i<=n;i++)
for(j=c;j<=m;j++)
a[i][j]=a[i][j+1];
m–;}
void main()
{citire(a,n,m);
afisare(a,n,m);
cout<>c;
scadere(a,n,m,c);
afisare(a,n,m);
getch();}
Subiectul nr. 15 Se citeste o matrice patratica cu n*n elemente. Sa se calculeze elementul maxim de pe diagonala secundara.
#include
#include
int a[10][10],m,n,c1,c2;
void citire(int a[10][10],int &n)
{int i,j;
cout<>n;
cout<<"elementele:\n" ;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];}
}
void afisare(int a[10][10], int n)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;}
}
void main()
{int max,i;
clrscr();
citire(a,n);
afisare(a,n);
max=a[1][n];
for(i=2;imax) max=a[i][n+1-i];
cout<<"maximul de pe diagonala secundara este:"<<max;
getch();
}
Subiectul nr. 16 Sa se scrie un program care insereaza intr-o matrice data o linie data cu elemente 0.
#include
#include
int a[10][10],m,n,l;
void citire(int a[10][10],int &n,int &m)
{int i,j;
cout<>n;
cout<>m;
cout<<"elementele:" ;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];};}
void afisare(int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<=l;i–)
for(j=1;j<=m;j++)
a[1+i][j]=a[i][j];
for(j=1;j<=m;j++)
a[l][j]=0;n++;}
void main()
{citire(a,n,m);
afisare(a,n,m);
cout<>l;
adaugare(a,n,m,l);
afisare(a,n,m);
getch();}
Subiectul nr. 17 Se citeste un sir de numere intregi sortate strict crescator si un numar intreg nr. Sa se afle daca numarul citit se afla in sir fara a parcurge tot sirul.
#include
#include
#define max 30
int a[max],n,nr;
void afisare();
void citire()
{ int i;
cout<>n;
cout<<"elementele in ordine crescatoare:\n";
for (i=1;i<=n;i++)
{cout<<"a["<<i<>a[i];
}
cout<>nr;
}
void afisare()
{ int i;
cout<<"(";
for (i=1;i<=n;i++)
cout<<a[i]<<",";
cout<<"\b)"<<endl;
}
void cautare()
{ int mij,st,dr,sw;
st=1; dr=n; sw=0;
do
{ mij=(st+dr)/2;
if (a[mij]==nr) sw=1 ;
else if (a[mij]<nr)
st=mij+1;
else dr=mij-1;
}while ((st<=dr) && (sw==0));
if (sw==1) cout<<"nr exista pe pozitia "<<mij;
else cout<<"nr nu exista";
}
void main()
{
clrscr();
citire();
cautare();
getch();
}
Subiectul nr. 18 Sa se scrie un program care insereaza intr-o matrice data o coloana data cu elemente 0.
#include
#include
int a[10][10],m,n,c;
void citire(int a[10][10],int &n,int &m)
{int i,j;
cout<>n;
cout<>m;
cout<<"elementele:" ;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{cout<<"a["<<i<<"]["<<j<>a[i][j];};}
void afisare(int a[10][10], int n, int m)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}}
void adaugare(int a[10][10] ,int n,int &m,int c)
{int i,j;
for(i=1;i=m;j–)
a[i][j+1]=a[i][j];
for(i=1;i<=n;i++)
a[i][c]=0;m++;}
void main()
{citire(a,n,m);
afisare(a,n,m);
cout<>c;
adaugare(a,n,m,c);
afisare(a,n,m);
getch();}
Subiectul nr. 19 Se citeste un numar natural n diferit de zero. Sa se scrie toate tripletele de numere naturale (a, b, c) pitagoreice (a2+b2=c2) mai mici decat n, nenule.
# include
# include
long n,a,b,c;
void main()
{ clrscr();
cout<>n;
for(a=1;a<n;a++)
for(b=a;b<n;b++)
for(c=a;c<n;c++)
if (a*a+b*b==c*c)
cout<<"("<<a<<","<<b<<","<<c<<")\n";
getch();
}
Subiectul nr. 20 Se citeste un numar natural n. Sa se verifice daca este palindrom.
# include
#include
void main()
{unsigned long a,n,inv;
clrscr();
cout<>n;
a=n;
inv=0;
while(a)
{inv=inv*10+a%10;
a/=10;
}
cout<<n;
if(n==inv)
cout<<" este palindrom";
else cout<<" nu este palindrom";
getch();
}
Subiectul nr. 21 Se citeste un vector cu n componente numere naturale. Sa se afiseze cmmdc al celor n numere.
Ex : pentru n=5 si numerele 36, 42, 120, 54, 66 , se afiseaza cmmdc=6.
# include
# include
unsigned int n;
int i, cm,a[30];
unsigned int cmmdc(unsigned int x, unsigned int y)
{ while (x!=y)
if (x>y) x=x-y;
else y=y-x;
return x;
}
void citire()
{ int i;
cout<>n;
for (i=0;i<n;i++)
{cout<<"a["<<i<>a[i];
}
}
void afisare()
{ int i;
cout<<"(";
for (i=0;i<n;i++)
cout<<a[i]<<",";
cout<<"\b)";
}
void main()
{
citire();
cout<<"nr sunt:";
afisare();
cm=a[1];
for (i=2;i<n;i++)
cm=cmmdc(cm,a[i]);
cout<<"\n cmmdc al nr este:"<<cm;
getch();
}
Subiectul nr. 22 Se citesc doua multimi de numere intregi, cu cel mult 20 de elemente, sa se afiseze produsul cartezian al lor.
# include
# include
int a[20],b[20],c[20],n,na,nb,i,j,sw;
void citire(int c[20],int &n)
{ cout<>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<>c[i];
sw=0;
for(j=1;j<i;j++)
if (c[j]==c[i])
sw=1;
if (sw==1) i=i-1;
}
}
void afisare(int c[20], int n)
{for (i=1;i<=n;i++)
cout<<c[i]<<" ";
}
void prod_cart()
{
for(i=1;i<=na;i++)
for(j=1;j<=nb;j++)
cout<<"("<<a[i]<<","<<b[j]<<"),";
}
void main()
{clrscr();
cout<<"multimea a:\n";
citire(a,na);
cout<<"multimea b:\n";
citire(b,nb);
prod_cart();
getch();
}
Subiectul nr. 23 Se citesc doua multimi de numere intregi, cu cel mult 20 de elemente, sa se afiseze diferenta lor.
# include
#include
int a[20],b[20],d[20],nd,na,nb,i,j,sw;
void citire(int c[20],int &n)
{ cout<>n;
for(i=1;i<=n;i++)
{cout<<"a["<<i<>c[i];
sw=0;
for(j=1;j<i;j++)
if (c[j]==c[i])
sw=1;
if (sw==1) i=i-1;
}
}
void afisare(int c[20], int n)
{for (i=1;i<=n;i++)
cout<<c[i]<<" ";
}
void diferenta()
{
for(i=1;i<=na;i++)
{sw=0;
for(j=1;j<=nb;j++)
if (b[j]==a[i]) sw=1;
if (sw==0)
{ nd=nd+1;
d[nd]=a[i];
}
}
}
void main()
{clrscr();
cout<<" multimea a:\n";
citire(a,na);
cout<<" multimea b:\n";
citire(b,nb);
diferenta();
cout<<"multimea d diferenta:\n";
afisare(d,nd);
getch();
}
Subiectul nr. 24 Se citeste un numar natural n. Sa se verifice daca este un numar perfect, adica daca este egal cu suma divizorilor sai afara lui insusi (ex : 6=1+2+3).
# include
# include
int n,d,s;
void main()
{ clrscr();
cout<>n;
s=0;
for (d=1;d<=n/2;d++)
if (n%d==0) s=s+d;
if (n==s) cout<<"nr este perfect";
else cout<<"nr nu e perfect";
getch();
}
Subiectul nr. 25 Se citesc n numere. Sa se afiseze acele numere a caror suma a cifrelor este egala cu numarul de ordine la citire.
# include
# include
int suma (unsigned int n)
{ int s=0;
while (n)
{s+=n%10;
n/=10;
}
return s;
}
void main()
{ int i,n;
unsigned int x;
clrscr();
cout<>n;
for(i=1;i<=n;i++)
{cout<>x;
if (i==suma(x))
cout<<"suma cifrelor lui:"<<x<<"="<<i<<"\n";
}
getch();
}