subprogram inlocuire cifre

Scrieţi definiţia completă a subprogramului numar, cu trei parametri, care primeşte prin intermediul parametrului n un număr natural format din cel mult 9 cifre, iar prin intermediul parametrilor c1 şi c2 câte o cifră nenulă. Subprogramul caută fiecare apariţie a cifrei c1 în n, şi dacă aceasta apare, o înlocuieşte cu c2. Subprogramul furnizează tot prin n numărul astfel obţinut. Dacă cifra c1 nu apare în n, atunci valoarea lui n rămâne nemodificată.

#include<iostream.h>
void numar( long & n,int c1,int c2)
{
int p=0,p1=1,c;
long nr=n;
while(nr)
{
p=p+1;
if(nr%10==c1)
{
p1=1;
for(int i=1;i<p;i++)
p1=p1*10;
cout<<p1<<endl;
c=n%p1;
cout<<“c=”<<c;
cout<<endl;
p1=p1*10;
n=n/p1;
n=n*10+c2;
p1=p1/10;
n=n*p1+c;
cout<<n<<endl;
}
nr=nr/10;
}
}
void main()
{
long n;
int c1,c2;
cin>>n>>c1>>c2;
numar(n,c1,c2);
cout<<n;
}

functie cmmdc

Să se determine cel mai mare divizor comun (c.m.m.d.c.)a doua numere întregi citite de la tastatura.

Cmmdc se va calcula folosind relatia:

cmmdc(a,b)=cmmdc(a-b, b), a>b
=cmmdc(a, b-a), b>a
=a, daca a=b,

#include<iostream.h>
int cmmdc(int a,int b)
{
if(a==b) return a;
else if(a>b) return cmmdc(a-b,b);
else return cmmdc(a,b-a);
}
void main()
{
int x,y;
cout<<“x=”;cin>>x;
cout<<“y=”;cin>>y;
cout<<“cmmdc este: “<<cmmdc(x,y);
}

numerele obtinute prin permutarea circulara a cifrelor lui n

Se citeste un numar natural n. Sa se afiseze numerele obtinute prin permutarea circulara a cifrelor lui n.

#include<iostream>

int Permutare(int n )
{
int i , p = 1;
int x = n;
while ( x > 9 )
{
x = x/10;
p = p * 10;
}
n = n%p*10 + x;
return n;
}

int NrCifre(int n )
{
int nr = 0;
while ( n )
{
nr++;
n /=10;
}
return nr;
}

void main()
{
int n;
cin >> n;
for ( int i = 1; i <= NrCifre(n);i++)
{
n = Permutare(n);
cout << n;
cout << ‘\n’;
}
}

toate perechile de elemente din vector care sunt formate din elemente prime intre ele

Se citeste un vector cu n elemente numere naturale. Sa se afiseze toate perechile de elemente din vector care sunt formate din elemente prime intre ele.

#include<iostream.h>

void citire(int a[100], int &n)
{ int i;
cin>>n;
for(i=1; i<=n; i++)
cin>>a[i];
}

int cmmdc(int x, int y)
{ while(x!=y)
if(x>y)
x=x-y;
else y=y-x;
return x;
}

void main()
{ int a[100], n, i , j;
citire(a,n);
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
if(cmmdc(a[i],a[j])==1)
cout<<a[i]<<” “<<a[j];
} {module orizontal600}

numerele care au proprietatea ca atat ele cat si rasturnatul lor sunt prime

Sa se afiseze toate numerele din intervalul [1000,99999] care au proprietatea ca atat ele cat si rasturnatul lor sunt prime.

#include<iostream.h>
#include<math.h>
long n,c,d,k;
int prim(long n)
{if(n==0 || n==1) return 0;
for(int i=2;i<=sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
long rasturnat(long n)
{d=0;
while(n!=0)
{c=n%10;
d=d*10+c;
n=n/10;
}
return d;
}
void main()
{for(long int x=1001;x<=99999;x++)
if(prim(x) && prim(rasturnat(x))) cout<<x<<endl;
}

{module orizontal600}

functie care sa afiseze toate patratele perfecte mai mici sau egale cu n

Sa se afiseze toate patratele perfecte mai mici sau egale cu n.

#include <iostream.h>
#include <math.h>
int n;
void numere_patrate_perfecte(int n)
{
int i,j;
cout<<“Numerele patrate perfecte mai mici sau egale decat “<<n<<” sunt “<<endl;
for(i=1;i<=n;i++)
if(sqrt(i)==floor(sqrt(i))) cout<<i<<” “;
}
void main()
{
cout<<“Dati n = “;cin>>n;
numere_patrate_perfecte(n);
}

{module orizontal600}

functie care sa afiseze toate numerele perfecte mai mici sau egale cu n

Sa se afiseze toate numerele perfecte mai mici sau egale cu n

#include <iostream.h>
#include <math.h>
int n;
void numere_perfecte(int n)
{
int i,j,suma;
cout<<“Numerele perfecte mai mici sau egale decat “<<n<<” sunt “<<endl;
for(i=6;i<=n;i++)
{
suma=0;
for(j=1;j<=i/2;j++)
if(i%j==0) suma=suma+j;
if(suma==i) cout<<i<<” “;
}
}
void main()
{
cout<<“Dati n = “;cin>>n;
numere_perfecte(n);
}

{module orizontal600}

functie care sa afiseze toate numerele prime mai mici sau egale cu n

Sa se afiseze toate numerele prime mai mici sau egale cu n

#include <iostream.h>
#include <math.h>
int n;

void numere_prime(int n)
{
int i,j,prim;
cout<<“Numerele prime mai mici sau egale decat “<<n<<” sunt “<<endl;
for(i=2;i<=n;i++)
{
prim=1;
for(j=2;j<=i/2;j++)
if(i%j==0) prim=0;
if(prim==1) cout<<i<<” “;
}
}

void main()
{
cout<<“Dati n = “;cin>>n;
numere_prime(n);
}

{module orizontal600}

functie:Citirea unei matrice-Afisarea elementelor din matrice

Sa se scrie cate o functie fara tip care sa efectueze:

Citirea unei matrice patratice

Afisarea elementelor din matrice

#include <iostream.h>
int a[10][10],n,m,s,p;

void citire(int a[10][10],int n)
{
int i,j;
cout<<“dati elem. matricii “<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
}

void afisare_matrice(int a[10][10],int n)
{
int i,j;
cout<<“matricea este “<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<” “;
cout<<endl;
}
}

void main()
{
cout<<“Dati numarul linii si de coloane n = “;cin>>n;
citire(a,n);
afisare_matrice(a,n);

functie care sa afiseze numarul in baza 2

Se considera un numar natural in baza 10. Se cere sa se scrie o functie care sa afiseze reprezentarea numarului dat in baza 2.Exemplu: Pentru n=10 reprezentarea numarului in baza 2 este 1010

#include <iostream.h>
int n;
void baza2(int n)
{
int i=1,j,x[30],cifre;
while(n!=0)
{
x[i]=n%2;
n=n/2;
i++;
}
cifre=i-1;
cout<<“Reprezentarea numarului in baza 2 este: “;
for(i=cifre;i>=1;i–) cou t<<x[i];
cout<<endl;
}
void main()
{
cout<<“Dati n = “;cin>>n;
baza2(n);
}

{module orizontal600}