Sunteți pe pagina 1din 2

RECAPITULARE FUNCTII SEM 1

1. (Var 49)Se consider subprogramul cmaxcare prin parametrul aprimete un numr natural nenul mai mic
dect 30000, iar prin parametrul bfurnizeaz cifra maxim din numrul a.
a) Scriei, folosind limbajul C/C++, subprogramul cmax.
b) Fiierul bac.txtconine cel mult 1000numere naturale nenule, mai mici dect 30000fiecare, separate prin
cte un spaiu. Scriei programul C/C++care citete din fiierul bac.txttoate numerele i care determin cea
mai mare cifr din scrierea lor i cel mai mic dintre numerele care conin aceast cifr, folosind apeluri utile ale
subprogramului cmax. Cifra i numrul determinate se vor afia pe ecran, separate printr-un spaiu.
Exemplu: dac fiierul bac.txtconine valorile: 2312641272345672371634atunci pe ecran se
afieaz 767.

2. (Var 48)Se consider subprogramul cmdivcare primete prin parametrii xi ydou valori ntregi pozitive
(0<x<100i 0<y<100) i returneaz cel mai mare divizor comun al lor.
a) Scriei definiia complet a subprogramului cmdiv.
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (1n100) i determin, utiliznd
apeluri ale subprogramului cmdiv, numrul fraciilor ireductibile de forma x/n cu xnumr natural (1xn). Numrul
obinut va fi afiat pe ecran.
Exemplu: pentru n=6se afieaz 2, deoarece, dintre fraciile 1/6, 2/6, 3/6, 4/6, 5/6, 6/6 doar dou sunt ireductibile
1/6 i 5/6.

3. (var 47)a) Scriei n limbajul C/C++ un subprogram cif, care primete prin intermediul primului
parametru, nr, un numr natural cu cel mult 9 cifre i furnizeaz prin intermediul celui de-al doilea
parametru, s, suma cifrelor din scrierea lui nr.
b) Scriei programul C/C++care citete de la tastatur un numr natural n(0<n<25), apoi un ir de nnumere
naturale nenule cu cel mult 9cifre fiecare i care afieaz pe ecran, separate prin cte un spaiu, numerele din ir
care au suma cifrelor maxim, folosind apeluri utile ale subprogramului cif.
Exemplu: dac pentru n=8se citete irul de numere 274560183548219293287932634atunci, pe
ecran, se afieaz numerele 560188219.

4. (var 46)a) Scriei n limbajul C/C++doar antetul subprogramului cifre, care prin intermediul parametrului
nr primete un numr natural de cel mult 9 cifre i furnizeaz prin intermediul parametrilor nc i sc
numrul de cifre i respectiv suma cifrelor din scrierea lui nr.
b) Scriei programul C/C++care citete de la tastatur un numr natural n(10n109) i verific, folosind apeluri
utile ale subprogramului cifre, dac n scrierea n baza 10a lui nse gsete cel puin o cifr care s fie media
aritmetic a celorlalte cifre din componena lui n.Programul afieaz pe ecran mesajul DA n caz afirmativ i
mesajul NUn caz contrar.
Exemplu: pentru n=27989 programul va afia mesajul DA, deoarece n scrierea lui n apare cifra 7 care este
media aritmetic a celorlalte cifre din scrierea lui n: 7=(2+9+8+9)/4. Pentru n=7351se va afia mesajul NU.

5. (var 40)a) Scriei definiia complet a subprogramului sdivcare primete prin intermediul parametrului y
un numr natural cu cel mult 6cifre i returneaz suma tuturor divizorilor numrului y.
b) Scriei un program C/C++care citete de la tastatur un numr natural n(n<10000)i care, folosind apeluri
ale subprogramului sdivverific dac suma divizorilor lui neste un numr prim. n caz afirmativ, programul va
afia pe ecran mesajul Dai n caz contrar va afia mesajul NU.
Exemplu: dac n=206, atunci programul va afia: NU(1+2+103+206=312, iar 312nu este un numr prim).

6. (var 39)Se consider subprogramul pr, care primete prin intermediul parametrului a un numr natural
nenul cu cel mult 9cifre i returneaz 1dac numrul este prim i 0n caz contrar.
a) Scriei subprogramul pr.
b) Considerm un numr natural nenul n99cu cel mult 9cifre. Din nse obine un ir de valori prin eliminarea
succesiv a ultimei cifre, apoi a ultimelor dou cifre, apoi a ultimelor trei cifre etc., pn ce se obine un numr de
dou cifre, ca n exemplu. S se realizeze un program C/C++ care citete de la tastatur numrul n i care,
folosind apeluri utile ale subprogramului pr, afieaz pe ecran, separate prin cte un spaiu, doar valorile prime din
irul numerelor obinute din n, prin procedeul descris mai sus.
Exemplu: pentru n=193124se obine irul de valori 19312,1931, 193, 19. din care se vor afia pe ecran doar
valorile 193119319(nu neaprat n aceast ordine).
7. (var 38)Se consider subprogramul inter, cu doi parametri: xi y(numere ntregi formate din cel mult
patru cifre fiecare); subprogramul interschimb valorile a dou variabile transmise prin intermediul
parametrilor xi y.
a) Scriei n limbajul C/C++definiia complet a subprogramului inter.
b) Pe prima linie a fiierului bac.inse afl un numr natural nenul n1000, iar pe a doua linie a fiierului se afl
un ir de nnumere naturale nenule, desprite prin cte un spaiu, fiecare numr fiind format din cel mult 4cifre.
Scriei un program C/C++ care afieaz pe ecran, n ordine cresctoare, numerele aflate pe a doua linie a
fiierului. Numerele vor fi afiate pe o singur linie, iar ntre dou numere se va lsa un spaiu. Se vor folosi apeluri
utile ale subprogramului inter.

8. (var37)a) Scriei subprogramul nrdiv, care primete prin intermediul parametrului x un numr natural
nenul cu cel mult 4cifre, i returneaz numrul de divizori primi ai lui x.
b) Pe prima linie a fiierului bac.inse afl un numr natural nenul n(n1000), iar pe a doua linie a fiierului se
afl un ir format din nnumere naturale nenule, desprite prin cte un spaiu, fiecare numr fiind format din cel
mult 4cifre. Scriei un program C/C++care citete numerele din fiier i care afieaz pe ecran, folosind apeluri
utile ale subprogramului nrdiv, prima i ultima valoare din irul celor nnumere citite, care au un numr par de
divizori primi. Numerele afiate vor fi separate printr-un spaiu.
Exemplu: dac fiierul bac.inare coninutul alturat, pe ecran se va afia: 2010
7
30105201407105

9. (var 36)Subprogramul cifraprimete prin intermediul parametrului aun numr natural cu cel mult 4cifre
i returneaz ultima cifr par a sa. Dac numrul nu conine cifre pare, subprogramul returneaz valoarea
1. De exemplu, dac a=8345, subprogramul va returna 4.
a) S se scrie definiia complet a subprogramului cifra.
b) Pe prima linie a fiierului bac.inse afl un numr natural nenul n(n15000), iar pe a doua linie a fiierului
se afl un ir de nnumere naturale, desprite prin cte un spaiu, fiecare numr fiind format din cel mult 4cifre.
Scriei un program C/C++ care citete numerele din fiier i afieaz pe ecran, folosind apeluri utile ale
subprogramului cifra, cel mai mare numr care se poate forma cu ultimele cifre pare ale fiecrui element, dac
acestea exist. Alegei o metod de rezolvare eficient ca timp de executare. Dac toate numerele de pe a doua
linie a fiierului au numai cifre impare, programul va afia mesajul NUEXISTA.
Exemplu: dac fiierul bac.inare coninutul alturat, pe ecran se va afia: 64220
7
3691132033135442

10. (var 35)a) Scriei definiia complet a unui subprogram sum care primete prin parametrul x un numr
natural de cel mult 4cifre i returneaz suma divizorilor numrului x, diferii de 1i de el nsui.
Exemplu: dac x=10se va returna valoarea 7(7=2+5).
b) Scriei programul C/C++care citete de la tastatur un numr natural n(0<n<100), apoi nnumere naturale
(cu cel mult 4 cifre fiecare). Programul determin, folosind apeluri utile ale subprogramului sum, pentru fiecare
numr natural citit, suma divizorilor si proprii i afieaz pe ecran sumele determinate, n ordinea cresctoare a
valorilor lor, separate prin cte un spaiu.
Exemplu: dac n=5i numerele citite sunt 10233611valorile afiate pe ecran vor fi: 005714
deoarece suma divizorilor lui 10 este 7, suma divizorilor lui 2 este 0, suma divizorilor lui 33 este 14, suma
divizorilor lui 6este 5, suma divizorilor lui 11este 0.

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