0% found this document useful (0 votes)
48 views

Subrograme C++

The document contains C++ code examples demonstrating different ways to write functions to: - Find the greatest common divisor of two numbers - Find the least common multiple of two numbers - Decompose a number into the sum of Fibonacci numbers - Count the even and odd digits of a number - Convert a number from base 10 to another base

Uploaded by

Denisa Barar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views

Subrograme C++

The document contains C++ code examples demonstrating different ways to write functions to: - Find the greatest common divisor of two numbers - Find the least common multiple of two numbers - Decompose a number into the sum of Fibonacci numbers - Count the even and odd digits of a number - Convert a number from base 10 to another base

Uploaded by

Denisa Barar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Desc operand #include<iostream.h> int nr; int desc(long nr) { int d,k; for(d=2;nr!

=1;d++) { for(k=1;nr%d==0;k++) nr=nr/10; if(k>=1) { return d;

} } } main() { cout<<"nr="; cin>>nr; cout<<"desc="<<desc(nr); } Desc procedural

#include<iostream.h> using namespace std; //procedural void desc(int nr) { int d=0,k=0; for(d=2;nr!=1;d++) { for(k=1;nr%d==0;k++)

nr=nr/10; if(k>=1) cout<<d<<"^"<<k; } } int nr; main() { cout<<"nr="; cin>>nr; desc(nr); } Prim operand #include<iostream.h> using namespace std; void prim(int nr) { int ok=0,d; ok=1; for(d=2;d<=nr/2&&ok==1;d++) if(nr%d==0) ok=0; if(ok==1) cout<<"prim"; } int nr; main() { cout<<"nr="; cin>>nr; prim(nr); }

Prim procedural #include<iostream.h> using namespace std; //procedural int prim(int nr) { int ok=0,d; ok=1; for(d=2;d<=nr/2&&ok==1;d++) if(nr%d==0) ok=0; if(ok==1) return ok; } int nr; main() { cout<<"nr="; cin>>nr; cout<<prim(nr); } Descom nr operand #include<iostream.h> using namespace std; int divi(int nr) { int d; for(d=2;d<=nr;d++) if(nr%d==0) cout<<d<<" "; return 1; } int nr; main()

{ cout<<"nr="; cin>>nr; cout<<divi(nr); } desc procedural

#include<iostream.h> using namespace std; //procedural void divi(int nr) { int d; for(d=1;d<=nr;d++) if(nr%d==0) cout<<d<<" "; } int nr; main() { cout<<"nr="; cin>>nr; divi(nr); }

#include<iostream.h> //Sa se scrie o functie care sa verifice daca un doua numere intregi sunt prime gemene (sunt prime si diferenta in modul este egala cu 2). int prim(int nr) { int d; if(nr<=2) return 0; else

for(d=2;d<=nr/2;d++) if(nr%d==0) return 0; return 1; } int a,b; main() { cout<<"a"; cin>>a; cout<<"b"; cin>>b; if(a-b==2||b-a==2) if(prim(a)==1) if(prim(b)==1) cout<<"numere gemene"; } #include<iostream.h> //Sa se scrie o functie care sa afiseze suma cifrelor unui numar intreg dat ca parametru. int suma(int nr) { int s=0,u; while(nr!=0) { u=nr%10; s=s+u; nr=nr/10; } return s; } int a,s; main() {

cout<<"a"; cin>>a; s=suma(a); cout<<s; } #include<iostream.h> //Se citete un numr natural n. S se numere cte cifre pare i cte cifre impare are numrul. void cifre(int nr) { int cp=0,ci=0,u; while(nr!=0) { u=nr%10; if(u%2==0) cp++; else ci++; nr=nr/10; } cout<<"cp="<<cp<<endl; cout<<"ci="<<ci; } int a; main() { cout<<"a"; cin>>a; cifre(a); } /*Se citeste un numar natural n. Sa se descompuna in suma de numere fibonaccii. Indicatie: Definim functia max_f, care determina cel mai mare numar fibonacci mai mic sau egal cu un numar dat.

Functia primeste ca parametru transmis prin valoare numarul dat. Definim functia fibo, care apeleaza functia max_f si astfel determina max, cel mai mare numar fibonacci mai mic sau egal cu numarul dat, apoi scade din numarul dat, numarul max. Se reia algoritmul atata timp cat numarul dat este diferit de zero. Exemplu: pentru n=25 n=21+3+1 fibonacci 0 1 1 2 3 5 8 13 21 34...

*/ #include<iostream.h> int max_f(int nr) { int c1=0,c2=0,c3=0,i=0; c1=c2=1; c3=c1+c2; for(i=3;c3<=nr;i++) { c3=c1+c2; c1=c2; c2=c3;

} return c1; } void fibo(int nr) { while(nr!=0) { cout<<max_f(nr)<<endl; nr=nr-max_f(nr);

} } main() {

int a; cout<<"a="; cin>>a; fibo(a); }

/*Sa se scrie cate o functie care sa determine: cel mai mare divizor comun a doua numere intregi date ca parametri. cel mai mic multiplu comun a doua numere intregi date ca parametri

Indicatii: Pentru determinarea cmmdc se va folosi algoritmul lui Euclid prin impartiri repetate. Pentru determinarea cmmmc se va folosi relatia dintre cmmmc si cmmdc: cmmmc(a,b)=(a*b)/cmmdc(a,b)*/ #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 cmmmc(int a,int b) { cout<<(a*b)/cmmdc(a,b); } int x,y; main() { cout<<"x="; cin>>x;

cout<<"y"; cin>>y; cout<<"cmmdc"; cout<<cmmdc(x,y); cout<<endl; cout<<"cmmmc"; cmmmc(x,y); }

/*Se citeste un numar natural n in baza 10 si b un numr natural 2<=b<=9 reprezentand o baza de numeratie. Sa se transforme numarul n in baza b. Indicatie: Vom scrie o functie conv, de tip void, cu doi parametrii transmisi prin valoare, respectiv n si b. Rezultatul conversiei il vom memora intr-un tablou unidimensional t. In finalul functiei afisam continutul tabloului in ordinea inversa construirii lui. */ #include<iostream.h> void conv(int n,int b) { int p=1,nr=0; while(n) { nr=(n%b)*p+nr; p*=10; n/=b; } cout<<nr; } int n,b; int main() { cout<<"n= ";

cin>>n; cout<<"b= "; cin>>b; conv(n,b); }

You might also like