Sunteți pe pagina 1din 9

1.

Subprogramul cif, cu doi parametri, primete prin intermediul parametrului a un numr natural cu cel
mult 8 cifre i prin intermediul parametrului b o cifr; subprogramul returneaz numrul de apariii ale
cifrei b n scrierea numrului a.
Exemplu: pentru a=125854 i b=5, subprogramul va returna valoarea 2.
a) Scriei definiia complet a subprogramului cif. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n cu exact 8 cifre, fiecare cifr
fiind nenul, i care determin i afieaz pe ecran, folosind apeluri utile ale subprogramului cif, cel mai
mic numr palindrom ce poate fi obinut prin rearanjarea tuturor cifrelor numrului n. Dac nu se poate
obine un palindrom din toate cifrele numrului n, programul va afia pe ecran numrul 0. Un numr natural
este palindrom dac este egal cu numrul obinut prin scrierea cifrelor sale n ordine invers. (5p.)
Exemplu: dac n=21523531 atunci se va afia pe ecran numrul 12355321, iar dac n=12272351
atunci se va afia pe ecran numrul 0.

2. Subprogramul f, cu un parametru:
- primete prin intermediul parametrului a un numr natural cu cel mult 8 cifre (a>1)
- returneaz cel mai mic divizor prim al valorii parametrului a.
Exemplu: pentru valoarea 45 a parametrului a, subprogramul va returna valoarea 3 deoarece a=32*5,
iar cel mai mic divizor prim al su este 3.
a) Scriei definiia complet a subprogramului f. (4p.)
b) Scriei un program C/C++ care s citeasc de la tastatur un numr natural nenul n (n100) i apoi un
ir de n numere naturale de cel mult 8 cifre fiecare, toate numerele din ir fiind strict mai mari dect 1.
Folosind apeluri utile ale subprogramului f, programul va determina i va afia pe ecran toate numerele
prime din irul citit. Numerele determinate se vor afia pe o singur linie a ecranului, separate prin cte un
spaiu, n ordine cresctoare a valorii lor. Dac nu exist astfel de numere se va afia pe ecran mesajul NU
EXISTA. (5p.)
Exemplu: pentru n=7, irul: 1125, 2, 314, 101, 37, 225, 12 pe ecran se va afia: 2 37 101

3. Subprogramul sub, cu trei parametri, primete prin intermediul parametrului:


v un tablou unidimensional cu cel mult 100 de componente ce memoreaz numere ntregi cu cel
mult 4 cifre;
n un numr natural nenul mai mic sau egal cu 100 ce reprezint numrul efectiv de componente
ale tabloului primit prin intermediul parametrului v;
a un numr ntreg cu cel mult 4 cifre.
Subprogramul sub returneaz numrul componentelor tabloului primit prin intermediul parametrului v ale
cror valori sunt strict mai mici dect valoarea parametrului a.
Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=20 ale parametrilor, n urma apelului,
subprogramului sub va returna valoarea 2.
a) Scriei definiia complet a subprogramului sub. (4p.)
b) S se scrie un program C/C++ care s citeasc de la tastatur un numr natural nenul n (n100) i n
numere ntregi, fiecare avnd cel mult 4 cifre, i care, folosind apeluri utile ale subprogramului sub, s
afieze pe ecran mesajul DA dac oricare dou dintre cele n numere ntregi citite sunt distincte dou cte
dou, sau mesajul NU n caz contrar. (5p.)
Exemplu: pentru n=6 i cele n numere citite de la tastatur: 47 183 69 8 134 -56 se va afia pe
ecran mesajul DA
4. Subprogramul primul:
- primete prin singurul su parametru, a, o valoare natural din intervalul [2,10000]
- returneaz o valoare natural reprezentnd cel mai mic divizor al numrului a mai mare strict
dect 1.
a) Scriei definiia complet a subprogramului sub. (4p.)
b) Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n(1n100) i pe urmtoarea
linie n numere naturale din intervalul [2,10000] separate prin cte un spaiu. Un numr natural n se
numete aproape prim dac este egal cu produsul a dou numere prime distincte. De exemplu, numrul
14 este aproape prim pentru c este egal cu produsul numerelor prime 2 i 7. Scriei un program C/C++
care determin, folosind apeluri utile ale subprogramului primul, cel mai mare numr aproape prim de
pe linia a doua a fiierului NUMERE.IN. n cazul n care exist un astfel de numr se afieaz pe ecran
mesajul DA, urmat de numrul determinat, iar n caz contrar mesajul NU. (5p.)
Exemplu: dac fiierul NUMERE.IN are coninutul:
6
100 14 21 8 77 35
atunci se afieaz pe ecran DA 77 pentru c numrul 77 este cel mai mare dintre numerele aproape
prime din fiier (14=7*2,21=7*3,77=7*11, 35=7*5).

5. Subprogramul max_cif primete prin parametrul x un tablou unidimensional, cu cel mult 100 de
elemente, numere ntregi cu cel mult 4 cifre fiecare, iar prin parametrul n un numr natural ce
reprezint numrul efectiv de elemente ale tabloului x (n100).
a) Scriei definiia complet a subprogramului max_cif care returneaz cel mai mare numr de trei cifre
al tabloului x. Dac tabloul nu conine nicio valoare de trei cifre, subprogramul va returna 0. (4p.)
b) n fiierul numere.txt se afl memorat pe prima linie un numr natural n (n100), iar pe
urmtoarele n linii, cte n numere ntregi desprite prin cte un spaiu. Scriei n limbajul C/C++, un
algoritm eficient din punct de vedere al gestionrii memoriei care citete din fiier datele existente i,
folosind apeluri utile ale subprogramului max_cif, determin i afieaz cel mai mare numr de trei cifre
memorat n fiier. Dac n fiier nu exist niciun numr de trei cifre se va afia 0. (5p.)
Exemplu: dac fiierul numere.txt are coninutul
5
112 333 1 18 345
-1 95 7 97 -12
45 -806 0 7 89
1 5 17 197 -102
45 -86 0 7 9
se va afia valoarea: 345

6. Subprogramul sum primete prin parametrul x un numr natural de cel mult 4 cifre i returneaz
suma divizorilor numrului x, diferii de 1 i de el nsui.
Exemplu: dac x=10 se va returna valoarea 7 (7=2+5).
a) Scriei definiia complet a subprogramului sum (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n (0<n<100), apoi n numere
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. (5p.)
Exemplu: dac n=5 i numerele citite sunt 10 2 33 6 11 valorile afiate pe ecran vor fi: 0 0 5 7 14
deoarece suma divizorilor lui 10 este 7, suma divizorilor lui 2 este 0, suma divizorilor lui 33 este 14,
suma divizorilor lui 6 este 5, suma divizorilor lui 11 este 0.
7. Subprogramul cifra primete prin intermediul parametrului a un numr natural cu cel mult 4 cifre 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. (4p.)
b) Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n15000), iar pe a doua linie a
fiierului se afl un ir de n numere naturale, desprite prin cte un spaiu, fiecare numr fiind format din
cel mult 4 cifre. Scriei un program C/C++ care citete numerele din fiier i afieaz pe ecran, folosind
apeluri utile la subprogramului cifra, cel mai mare numr care se poate forma cu ultimele cifre pare ale
fiecrui element, dac acestea exist. (5p.)
Exemplu: dac fiierul bac.in are coninutul:
7
369 113 2 0 33 1354 42
se va afia: 64220

8. Se consider subprogramul pr, care primete prin intermediul parametrului a un numr natural nenul
cu cel mult 9 cifre i returneaz 1 dac numrul este prim i 0 n caz contrar.
a) S se scrie definiia complet a subprogramului pr. (4p.)
b) Considerm un numr natural nenul n99 cu cel mult 9 cifre. S se realizeze un program C/C++
care citete numrul n i care, folosind apeluri utile ale subprogramul pr, afieaz pe ecran, separate prin
cte un spaiu, doar valorile prime din irul numerelor obinute din n, prin eliminarea succesiv a ultimei
cifre, apoi a ultimelor dou cifre, apoi a ultimelor trei cifre etc., pn se obine un numr de dou cifre, ca n
exemplu. (5p.)
Exemplu: pentru n=193124 se obine irul de valori 19312,1931, 193, 19. din care se vor afia pe ecran
doar valorile 1931 193 19.

9. Subprogramul cif 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.
a) S se scrie definiia complet a subprogramului cif. (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n (0<n<25), apoi un ir de n
numere naturale nenule cu cel mult 9 cifre fiecare i care determin i afieaz pe ecran, separate prin
cte un spaiu, numerele din ir care au suma cifrelor maxim, folosind apeluri utile ale subprogramului
cif. (5p.)
Exemplu: dac pentru n=8 se citete irul de numere 274 56018 354 8219 293 287 932 634
atunci, pe ecran, se afieaz numerele 56018 8219.

10. Se consider subprogramul cmdiv care primete prin parametrii x i y dou valori ntregi pozitive
(0<x<100 i 0<y<100) i returneaz cel mai mare divizor comun al lor.
a) Scriei definiia complet a subprogramului cmdiv. (4p.)
b) Scriei un program C/C++ care citete de la tastatur trei numere naturale nenule distincte a, b i n,
cu cel mult 2 cifre fiecare i care construiete n memorie un tablou unidimensional ale crui elemente
memoreaz n ordine cresctoare, toate numerele naturale cuprinse n intervalul nchis determinat de a i
b, care nu au niciun divizor strict mai mare dect 1 comun cu n, folosind apeluri utile ale subprogramului
cmdiv. Intervalul nchis determinat de a i b este [a,b] dac a<b sau [b,a] dac ba. (5p.)
Exemplu:pentru a=60, b=32 i n=36 tabloul va conine: 35 37 41 43 47 49 53 55 59
11. Se consider subprogramul cmax care prin parametrul a primete un numr natural nenul mai mic
dect 30000, iar prin parametrul b furnizeaz cifra maxim din numrul a.
a) Scriei definiia complet subprogramului cmax. (4p.)
b) Fiierul bac.txt conine cel mult 1000 numere naturale nenule, mai mici dect 30000 fiecare,
separate prin cte un spaiu. Scriei programul C/C++ care citete din fiierul bac.txt toate numerele i
care determin cea mai mare cifr din scrierea lor folosind apeluri utile ale subprogramului cmax. Cifra
determinat se va afia pe ecran. (5p.)
Exemplu: dac fiierul bac.txt conine valorile: 23 12 64 12 72 345 67 23 71 634 atunci pe
ecran se afieaz 7.

12. Subprogramul dist, cu doi parametri, primete prin intermediul primului parametru a un numr
natural cu maximum 8 cifre i returneaz prin intermediul celui de-al doilea parametru b numrul
cifrelor distincte ale lui a.
Exemplu: dac a=1223712, atunci dup apelul subprogramului dist se obine b=4 (deorece cifrele
distincte ale parametrului de apel sunt 1, 2, 3, 7).
a) Scriei definiia complet a subprogramului dist. (4p.)
b) Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe a doua linie n
numere naturale, separate prin cte un spaiu, fiecare numr avnd maximum 8 cifre. Scriei un program
C/C++ care citete numerele din fiier i afieaz pe ecran, desprite prin cte un spaiu, numerele de pe
a doua linie a fiierului text date.in, ce au numr maxim de cifre distincte, folosind apeluri utile ale
subprogramului dist. (5p.)
Exemplu:fiierul date.in are coninutul:
6
16 1775 333 242477 123 55566
se vor afia numerele: 1775 242477 123

13. Se consider subprogramul pal, care primete prin intermediul primului parametru a un numr
natural, cu minimum 2 cifre i maximum 8 cifre, i furnizeaz prin intermediul celui de-al doilea
parametru, b, cel mai apropiat numr de valoarea lui a, care este palindrom. n cazul n care exist
dou astfel de numere, subprogramul va returna numrul mai mic. Un numr natural x este palindrom
dac este egal cu numrul obinut prin scrierea cifrelor lui x n ordine invers.
Exemplu: dac a=16, atunci dup apel b=11; dac a=126, atunci dup apel b=121; dac a=33, atunci
dup apel b=33.
a) Scriei definitia complet a subprogramului pal. (4p.)
b) Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe a doua linie n
numere naturale nenule, separate prin cte un spaiu, fiecare numr avnd minimum 2 cifre i maximum 8
cifre. Scriei un program C/C++ care citete toate numerele din fiierul text date.in i afieaz pe ecran,
desprite prin cte un spaiu, pentru fiecare dintre cele n numere, cel mai apropiat numr palindrom,
folosind apeluri utile ale subprogramului pal. (5p.)
Exemplu: dac fiierul date.in are coninutul:
4
16 1775 333 190
se vor afia numerele: 11 1771 333 191
14. Se consider subprogramul cifre, care primete prin intermediul primului parametru, a, un numr
natural cu maximum 8 cifre nenule i returneaz, prin intermediul celui de-al doilea parametrul b, cel mai
mic numr care se poate forma cu toate cifrele distincte ale lui a.
a) Scriei definiia complet a subprogramului cifre. (4p.)
b) Se consider fiierul text date.in ce conine pe prima linie un numr natural nenul n (n100), iar pe
a doua linie n numere naturale, separate prin cte un spaiu, fiecare numr avnd maximum 8 cifre
nenule. Scriei un program C/C++ care citete toate numerele din fiierul text date.in i afieaz pe
ecran, desprite prin cte un spaiu, numerele situate pe a doua linie a fiierului, formate numai din cifre
distincte ordonate strict cresctor, folosind apeluri utile ale subprogramului cifre. n cazul n care nu
exist niciun astfel de numr se va afia valoarea 0. (5p.)
Exemplu: dac fiierul date.in are coninutul:
6
16 175 333 242477 321 269
se vor afia numerele: 16 269

15. Se consider subprogramul numar, care:


primete prin intermediul parametrului, x, un numr natural nenul de cel mult 4 cifre;
furnizeaz prin intermediul parametrului nrp numrul de numere prime mai mici sau egale cu x.
a) Scriei definiia complet a subprogramului numar. (4p.)
b) Scriei declarrile de date i programul principal C/C++ n care se citesc de la tastatur dou numere
naturale nenule de cel mult 4 cifre, a i b, i prin apeluri utile al subprogramului numar, se verific dac
intervalul determinat de a i b conine cel puin un numr prim. Programul va afia pe ecran n caz
afirmativ mesajul DA, iar n caz contrar mesajul NU. Prin intervalul determinat de a i b se nelege
intervalul [a,b] dac a<b i [b,a] n caz contrar. (5p.)

16. Subprogramul verif primete prin singurul su parametru, x, un numr natural nenul cu cel mult 9
cifre i returneaz valoarea 1 dac numrul conine cel puin o secven de 3 cifre impare alturate i 0
n caz contrar.
Exemplu: dac x=7325972 se va returna valoarea 1.
a) Scriei definiia complet a subprogramului verif. (4p.)
b) Fiierul text date.txt conine pe prima linie un numr natural nenul n cu cel mult 4 cifre i pe fiecare
dintre urmtoarele n linii cte un numr naturale, cu exact 6 cifre. Scriei un program C/C++ care citete
numerele din fiierul date.txt i le afieaz pe ecran, separate prin cte un spaiu, numai pe acelea
care au primele trei cifre impare. Se vor utiliza apeluri utile ale subprogramului verif. Dac nu exist
niciun numr cu aceast proprietate, se va afia pe ecran mesajul nu. (5p.)
Exemplu: dac fiierul date.txt are coninutul:
3
133579
345796
973314
se afieaz: 133579 973314
17. Subprogram sfx primete prin singurul su parametru, x, un numr natural din intervalul
[100,2000000000] i returneaz valoarea 1 dac ultimele trei cifre ale numrului sunt n ordine
strict descresctoare sau valoarea 0 n caz contrar.
Exemplu: dac x=24973 se va returna valoarea 1.
a) Scriei definiia complet a subprogramului sfx. (4p.)
b) Fiierul text date.in conine cel mult 10000 de numere naturale de exact 6 cifre fiecare, separate
prin cte un spaiu. Scriei un program C/C++ care citete toate numerele din fiier, determin i afieaz
pe ecran cte dintre aceste numere au toate cifrele n ordine strict descresctoare. Programul va folosi
apeluri utile ale subprogramului sfx. (5p.)
Exemplu: dac fiierul date.in conine:
236543
865210
976532
se afieaz: 2

18. Se consider subprogramul CMMDC care primete prin cei doi parametri, x i y, dou numere
naturale (1x10000, 1y10000) i returneaz cel mai mare divizor comun al lor.
a) Scriei definiia complet a subprogramului CMMDC. (4p.)
b) Fiierul text NUMERE.IN conine, pe fiecare linie, cte dou numere naturale nenule mai mici sau egale
dect 10000, desprite printr-un spaiu, reprezentnd numitorul i numrtorul cte unei fracii. Scriei un
program C/C++ care, pentru fiecare linie k din fiierul NUMERE.IN, citete numitorul i numrtorul
fraciei de pe aceast linie i scrie n fiierul text NUMERE.OUT , tot pe linia k, numitorul i numitorul acestei
fracii, adus la forma ireductibil, ca n exemplu. Se vor utiliza apeluri utile ale subprogramului CMMDC.(5p.)
Exemplu: dac fiierul NUMERE.IN are coninutul:
12 14
11 12
2 2
4 8
atunci fiierul NUMERE.OUT va avea urmtorul coninut:
6 7
11 12
1 1
1 2

19. Subprogramul par primete prin singurul su parametru, n, un numr natural nenul cu cel mult 4
cifre i returneaz valoarea 1 dac n conine cel puin o cifr par, sau returneaz valoarea 0 n caz
contrar.
Exemplu: pentru n=723 subprogramul va returna valoarea 1.
a) Scriei definiia complet a subprogramului par. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural nenul n cu cel mult 9 cifre,
apoi un ir de n numere naturale, cu exact 8 cifre fiecare, i afieaz pe ecran, numrul de valori din irul
citit care au cel puin o cifr par printre primele 4 poziii, considerate de la stnga spre dreapta. Se vor
utiliza apeluri utile ale subprogramului par.(5p.)
Exemplu: dac n=3, iar irul citit este 12386406, 37152073, 73543157 se va afia 2 (numerele
12386406 i 73543157 respect condiia cerut).
20. Subprogramul ordonare primete prin parametrul x un tablou unidimensional cu cel mult 100 de
elemente numere reale, iar prin parametrul n un numr ntreg ce reprezint numrul efectiv de
elemente ale tabloului x. Subprogramul ordoneaz cresctor elementele tabloului i furnizeaz tabloul
ordonat tot prin parametrul x.
a) Scriei complet a subprogramului ordonare (4p.)
b) Scriei un program C/C++ care citete de la tastatur dou numere naturale, n i m (1n100 i
mn), i apoi un ir de n numere reale distincte. Folosind apeluri utile ale subprogramului ordonare,
programul afieaz pe prima linie a ecranului, cele mai mari m elemente din irul citit (n ordine cresctoare
a valorilor lor), iar pe a doua linie de ecran, cele mai mici m elemente din ir (n ordine descresctoare a
valorilor lor). Numerele afiate pe aceeai linie vor fi separate prin cte un spaiu. (5p.)
Exemplu : dac n=9, m=3, iar irul este (14.2, 60, -7.5, -22, 33.8, 80, 4, 10, 3) se va afia:
33.8 60 80
3 -7.5 -22

21. Subprogramul dcp:


- primete prin parametrii a i b dou valori naturale din intervalul [1;30000]
- returneaz o valoare natural reprezentnd cel mai mare numr care este att divizor al lui a ct i divizor
al lui b i care se scrie ca un produs de factori primi diferii, sau valoarea 1 dac nu exist un astfel de
divizor.
Exemplu: dac a=100 i b=120, subprogramul returneaz valoarea 10.
a) Scriei definiia complet a subprogramului dcp (4p.)
b) Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (1n100) i pe
urmtoarea linie n numere naturale din intervalul [1;30000], separate prin cte un spaiu. Scriei un
program C/C++ care citete toate numerele din fiierul NUMERE.IN i determin, folosind apeluri ale
subprogramului dcp, cel mai mare numr care este divizor al fiecruia dintre cele n numere situate pe linia
a doua n fiier i are proprietatea c este un produs de numere prime distincte. Programul afieaz pe
ecran numrul cu proprietatea cerut, iar dac nu exist un astfel de numr afieaz mesajul nu exista.
(5p.)
Exemplu: dac fiierul NUMERE.IN are coninutul:
5
60 72 600 24 48
atunci se afieaz 6.

22. Funcia verif primete prin intermediul a trei parametri, notai a, b i c, trei valori naturale
nenule, fiecare de maximum patru cifre. Funcia returneaz valoarea 1 dac cele trei valori pot
constitui laturile unui triunghi i valoarea 0 n caz contrar.
a) Scriei definiia complet a funciei verif. (4p.)
b) Scriei un program C/C++ care citete de la tastatur ase valori naturale nenule, apoi verific,
utiliznd apeluri utile ale funciei verif, dac primele trei numere citite pot constitui laturile unui triunghi i
dac ultimele trei numere citite pot constitui laturile unui triunghi; n caz afirmativ, programul afieaz pe
ecran mesajul congruente dac cele dou triunghiuri sunt congruente sau mesajul necongruente
dac cele dou triunghiuri nu sunt congruente; dac cel puin unul dintre cele dou triplete de valori nu pot
constitui laturile unui triunghi, programul va afia pe ecran mesajul nu. (5p.)
23. Tabloul unidimensional V, declarat global, memoreaz exact 50 de numere ntregi: V1, V2,...,V50.
Subprogramul Calcul primete prin intermediul parametrului k un numr natural nenul (k50) i
furnizeaz prin intermediul parametrului S suma tuturor elementelor pozitive, din tabloul V, cu indici mai
mari sau egali cu k.
a) Scriei definiia complet a subprogramului Calcul. (4p.)
b) Scriei un program n limbajul C/C++ care citete de la tastatur cele 50 de componente ntregi ale
tabloului V i dou numere naturale nenule x i y (x<y50). Programul afieaz suma elementelor
pozitive din tablou, cu indici cuprini ntre x i y inclusiv, folosind apeluri utile la subprogramul Calcul.
(5p.)

24. Se consider subprogramul divxy care primete prin parametrii x i y dou valori ntregi pozitive
(0<x<1000 i 0<y<1000) i returneaz valoarea 1 dac y este divizor al lui x i 0 n caz contrar.
a) Scriei definiia complet a subprogramului divxy. (4p.)
b) Scriei un program C/C++ care citete de la tastatur trei numere naturale nenule a, b i n, cu cel mult
3 cifre fiecare i care construiete n memorie un tablou unidimensional ale crui elemente memoreaz n
ordine cresctoare, toi divizorii lui n din intervalul nchis determinat de a i b folosind apeluri utile ale
subprogramului divxy. Intervalul nchis determinat de a i b este [a,b] dac a<b sau [b,a] dac
ba. (5p.)
Exemplu: pentru a=65, b=11 i n=140 tabloul va conine: 14 20 28 35

25. Subprogramul P are 3 parametri: primete prin intermediul primului parametru, a, un tablou
unidimensional de cel mult 100 de numere ntregi, prin intermediul celui de al doilea parametru, k, un
numr natural (k<101) i furnizeaz prin intermediul celui de al treilea parametru al su, max, cea mai
mare dintre valorile a1, a2,..., ak din tablou.
Exemplu: pentru k=5 i tabloul a=(7,3,8,4,6,9), n urma apelului P(a,k,max)valoarea variabilei
max este 8.
a) Scriei definiia complet a subprogramului P (4p.)
b) S se scrie un program C/C++ care citete de la tastatur un numr natural n (n<101), apoi n
numere ntregi, avnd maximum 4 cifre fiecare i construiete n memorie i afieaz apoi pe ecran un
tablou unidimensional de n numere ntregi, cu proprietatea c valoarea termenului de pe poziia i
(i=1,2,,n) din acest tablou este egal cu cea mai mare dintre primele i valori din irul dat. Se vor folosi
apeluri utile ale subprogramului P. (5p.)
Exemplu: dac se citesc de la tastatur n=12 i valorile 4 6 3 7 8 1 6 2 7 9 10 8
se va afia pe ecran tabloul 4 6 6 7 8 8 8 8 8 9 10 10.

26. Se consider subprogramul nr cu doi parametri, care primete prin parametrul n un numr natural
cu maximum 8 cifre, i prin parametrul c o cifr zecimal. Subprogramul va returna numrul de apariii ale
cifrei c n scrierea numrului n.
Exemplu: dac n=15356, iar c=5, subprogramul va returna valoarea 2.
a) Scriei definiia complet a subprogramului nr. (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n, cu cel mult 8 cifre, i afieaz
pe ecran numrul de cifre distincte ale numrului n. Se vor folosi apeluri utile ale subprogramului nr. (5p.)
Exemplu: pentru n=15356 se va afia valoarea 4 deoarece numrul conine 4 cifre distincte i anume 1,
3, 5 i 6.
27. Se consider subprogramul P care primete ca parametri un numr natural n cu maximum 9 cifre i
o cifr c i care va elimina din numrul n toate apariiile cifrei c, furniznd tot prin parametrul n numrul
obinut.
a) Scriei definiia complet a subprogramului P. (4p.)
b) Pe prima linie a fiierului text BAC.IN se gsesc, separate prin cte un spaiu, mai multe numere
naturale de cel mult 9 cifre fiecare. Scriei un program C/C++ care citete numerele din acest fiier,
elimin toate cifrele impare din fiecare dintre aceste numere i apoi scrie n fiierul text BAC.OUT numerele
astfel obinute, separate prin cte un spaiu. Se vor folosi apeluri utile ale subprogramului P. Dac un
numr din fiierul BAC.IN nu conine nicio cifr par nenul, acesta nu va mai aprea deloc n fiierul de
ieire. (5p.)
Exemplu: dac fiierul BAC.IN conine numerele 25 7 38 130 45127 0 35 60 15, atunci BAC.OUT
va avea coninutul: 2 8 42 60.

28. Subprogramul cifrak are 2 parametri, n, prin care primete un numr natural cu maximum 9 cifre,
i k, prin care primete un numr natural (k9). Subprogramul returneaz numrul de cifre ale numrului n
care sunt egale cu valoarea k.
Exemplu: dac n=233433, iar k=3, subprogramul va returna valoarea 4.
a) Scriei definiia complet a subprogramului cifrak. (4p.)
b) n fiierul numere.txt sunt memorate mai multe numere naturale (maximum 1000 de numere cu
maximum 9 cifre fiecare). Fiecare linie a fiierului conine cte un numr. Scriei programul C/C++ care,
folosind apeluri ale subprogramului cifrak, afieaz pe ecran, separate prin cte un spaiu, toate
numerele din fiier care conin exact 3 cifre de 0. (5p.)
Exemplu: dac fiierul numere.txt conine
260070
39008
70009
se vor afia numerele 260070 70009.