Sunteți pe pagina 1din 4

Fi de lucru

Unitatea de nvare: Subprograme


implementate n C++
Aplicatii de laborator


Cu ct este mai dificil problema,
cu att mai mulumit vei fi cnd o vei rezolva


Realizati in C++ urmtoarele aplicaii:
A Ap pl li ic ca at ti ia a n nr r. .1 1. . Timp de lucru alocat:
10 min
Sa se scrie o functie care sa rezolve o ecuatie de gradul II, unde coeficientii
ecuatiei sunt dati ca parametri. Functia principala va citi coeficientii a doua ecuatii si va
afisa solutiile pentru fiecare ecuatie in parte.
A Ap pl li ic ca at ti ia a n nr r. .2 2. . Timp de lucru alocat:
15 min
Se citete o liter i un numr ntreg n. S se calculeze:
- pentru litera a S1=1
2
+3
2
+5
2
+...+(2n-1)
2
- pentru litera b S2=1+1*2+1*2*3+...+1*2*3...n

Indicaie: Definim funcia s1:
long s1(int n) // funcia s1 are un parametru transmis prin valoare
{int i; long s=0;
for(i=1; i<=n; i++)
s+=pow(2*i-1,2);
return s; // funcia s1returneaz valoarea calculat
}
A Ap pl li ic ca at ti ia a n nr r. .3 3. . Timp de lucru alocat:
15 min
Se citete un numr natural n. S se verifice i s se afieze dac este un numr
prim, atfel s se afieze descompunerea n factori primi.
Indicaie:
Definim funcia prim, care primete ca parametru transmis prin valoare numrul
n i returneaz 1 dac numrul este prin i 0 dc numrul nu este prim.
Definim funcia factori, funcie fr tip, care primeste ca parametru numrul n i
afieaz factorii primi i ordinul lor de multiplicitate.
A Ap pl li ic ca at ti ia a n nr r. .4 4. . Timp de lucru alocat:
10 min
Sa se scrie o functie care sa verifice daca un numar intreg este sau nu palindrom
(este egal cu rasturnatul sau).

A Ap pl li ic ca at ti ia a n nr r. .5 5. . Timp de lucru
alocat: 10 min
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).

Realizati in C++ urmtoarele aplicaii:
A Ap pl li ic ca at ti ia a n nr r. .6 6. . Timp de lucru
alocat: 10 min
Sa se scrie o functie care sa afiseze suma cifrelor unui numar intreg dat ca
parametru.

A Ap pl li ic ca at ti ia a n nr r. .7 7. . Timp de lucru
alocat: 15 min
Se citete un numr natural n. S se numere cte cifre pare i cte cifre impare are
numrul.

Indicaie:
Definim funcia cifre pentru numrarea cifrelor pare i impare, creia i
transmitem trei parammetrii:
n- numrul citit, parametru transmis prin valoare;
c_pare numrul cifrelor pare, parametru transmis prin referin, care va
transmite numarul cifrelor pare ale numrului, din funcie nspre programul
apelant.
c_imparenumrul cifrelor impare, parametru transmis prin referin, care
va transmite numrul cifrelor impare ale numrului, din funcie nspre
programul apelant.
Funcia cifre va returna programului principal numrul cifrelor pare i
numrul cifrelor impare, prin intermediul parametrilor transmii prin referin.

A Ap pl li ic ca at ti ia a n nr r. .8 8. . Timp de lucru alocat:
10 min
Se citeste un numar natural n. Sa se descompuna in suma de numere fibonaccii.
I ndicatie:
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...

A Ap pl li ic ca at ti ia a n nr r. .9 9. . Timp de lucru alocat:
15 min
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)

A Ap pl li ic ca at ti ia a n nr r. .1 10 0. . Timp de lucru
alocat: 15 min
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.
I ndicatie:
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>
int cmmdc(int n, int m)
{
while(n!=m)
{
if((n/m)>1)
n=n/m;
else
m=m/n;
}
return n;
}
int cmmmc(int n, int m)
{
int c,x=0;;
x=cmmdc(n,m);
c=(n*m)/x;
}
int main()
{
int n,m;
cin>>n;
cin>>m;
cout<<"cmmdc= "<<cmmdc(n,m)<<endl;
cout<<"cmmmc= "<<cmmmc(n,m);
}

#include<iostream.h>
int cmmdc(int a, int b)
{
int c;
while (b) {
c = a % b;
a = b;
b = c;
}
return a;
}
int cmmmc(int n, int m)
{
int c,x=0;;
x=cmmdc(n,m);
c=(n*m)/x;
}
int main()
{
int n,m;
cin>>n;
cin>>m;
cout<<"cmmdc= "<<cmmdc(n,m)<<endl;
cout<<"cmmmc= "<<cmmmc(n,m);
}

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