You are on page 1of 20

1.

Subprogramul sub, cu trei parametri, primete prin intermediul parametrilor:


vun tablou unidimensional cu cel mult 100de componente ce memoreaz numere
ntregi de cel mult 4cifre fiecare;
nun numr natural nenul mai mic sau egal cu 100ce reprezint numrul efectiv de
componente ale tabloului primit prin intermediul parametrului v;
aun numr ntreg cu cel mult 4cifre.
Subprogramul subreturneaz numrul componentelor tabloului primit prin intermediul
parametrului vale cror valori sunt strict mai mici dect valoarea parametrului a.
Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=20ale parametrilor, n urma
apelului, subprogramului subva returna valoarea 2.
a)Scriei definiia complet a subprogramului sub.
b)S se scrie un program C/C++care s citeasc de la tastatur un numr natural nenul
n(n100) i nnumere ntregi, fiecare avnd cel mult 4cifre, i care, folosind apeluri utile
ale subprogramului sub,s afieze pe ecran mesajul DAdac oricare dou dintre cele n
numere ntregi citite sunt distincte dou cte dou, sau mesajul NUn caz contrar.
Exemplu: pentru n=6i cele nnumere citite de la tastatur: 4718369813456se
va afia pe ecran mesajul DA
2. Un numr nse numete extraprim dac att el, ct i orice numr obinut prin
permutarea cifrelor lui n, sunt numere prime. De exemplu, numrul 113este un numr
extraprim deoarece 113, 311, 131sunt numere prime.
a) Scriei definiia complet a unui subprogram f, cu un parametru, subprogram care:
- primete prin intermediul parametrului aun numr natural cu cel mult 3cifre (a>1)
- returneaz suma tuturor exponenilor din descompunerea n factori primi a valorii
parametrului a.
Exemplu: pentru a=90subprogramul va returna valoarea 4, deoarece a=2*32*5i
1+2+1=4.
b) Scriei un program C/C++care citete de la tastatur un numr natural n, 2n999i,
folosind apeluri utile ale subprogramului f, verific dac neste un numr extraprim. n caz
afirmativ, programul afieaz pe ecran mesajul DA, n caz contrar afind mesajul NU.
3. Subprogramul cif, cu doi parametri, primete prin intermediul parametrului aun numr
natural cu cel mult 8cifre i prin intermediul parametrului bo cifr; subprogramul
returneaz numrul de apariii ale cifrei bn scrierea numrului a.
Exemplu: pentru a=125854i 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 ncu exact 8
cifre i care determin i afieaz pe ecran, folosind apeluri utile ale subprogramului cif,
cel mai mare 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.
Exemplu: dac n=21523531atunci se va afia pe ecran numrul 53211235, iar dac
n=12272351atunci se va afia pe ecran numrul 0. (6p.)
4. Subprogramul cif, cu doi parametri, primete prin intermediul parametrului aun numr
natural cu cel mult 8cifre i prin intermediul parametrului bo cifr; subprogramul
returneaz numrul de apariii ale cifrei bn scrierea numrului a.
Exemplu: pentru a=125854i 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 ncu 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. Exemplu: dac
n=21523531atunci se va afia pe ecran numrul 12355321, iar dac n=12272351
atunci se va afia pe ecran numrul 0. (6p.)
5. Subprogramul f, cu un parametru:
- primete prin intermediul parametrului aun numr natural cu cel mult 8cifre (a>1)
- returneaz cel mai mic divizor prim al valorii parametrului a.
Exemplu: pentru valoarea 45a 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 nnumere naturale de cel mult 8cifre 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 ecran, separate prin cte un spaiu, n ordine cresctoare a valorii lor. Dac nu
exist astfel de numere se va afia pe ecran mesajul NUEXISTA. Exemplu: pentru n=7,
irul: 1125, 2, 314, 101, 37, 225, 12pe ecran se va afia: 237101(6p.)
6. Se consider irul definit de relaia de recuren alturat:
a) Scriei definiia complet a unui subprogram sub, care primete prin intermediul
singurului su parametru nun numr natural de maximum 8cifre, i care returneaz cel
mai mare termen al irului fcare este mai mic sau cel mult egal cu n.
Exemplu: dac n=83atunci subprogramul va returna valoarea 80. (4p.)
b) Scriei un program C/C++care citete de la tastatur un numr natural s
(s10000000) i determin scrierea lui sca sum de termeni distinci ai irului dat folosind
apeluri utile ale subprogramului sub. Numerele astfel determinate se vor scrie pe ecran, pe
aceeai linie, separate prin cte un spaiu. I Exemplu: dac valoarea citit de la tastatur
este 63, se va afia: 40203(6p.)ce const
7. Subprogramul subprimete prin intermediul parametrilor:
ni mdou numere naturale (1<n<100,1<m<100)
ai bdou tablouri unidimensionale, fiecare avnd componente numere naturale de
maximum patru cifre, ordonate cresctor; tabloul aconine nnumere pare, iar tabloul b
conine mnumere impare. Subprogramul va afia pe ecran, n ordine cresctoare, separate
prin cte un spaiu, un ir format dintr-un numr maxim de elemente care aparin cel puin
unuia dintre tablouri, astfel nct orice dou elemente aflate pe poziii consecutive s fie de
paritate diferit. Exemplu: pentru n=5, m=3i tablourile a=(2,4,8,10,14)i
b=(3,5,11), subprogramul va afia 234581114sau 2345101114.
a) Scriei definiia complet a subprogramului sub, alegnd pentru rezolvare un algoritm
eficient din punctul de vedere al timpului de executare. (6p.)
b) Descriei succint, n limbaj natural, algoritmul pe baza cruia a fost scris subprogramul
de la punctul a), explicnd n ce const eficiena metodei utilizate. (4p.)
8. Scriei definiia complet a subprogramului subcu trei parametri: n(numr natural,
5<n30000), ai b; subprogramul furnizeaz prin intermediul parametrilor ai bcele
mai mari dou numere prime distincte mai mici dect n. Exemplu: dac n=28 la apelul

subprogramului se va furniza prin parametrul avaloarea 23i prin parametrul b


valoarea 19.
9. a) Scriei doar antetul funciei sumcare primete ca parametru un numr natural nenul x
cu maximum 9cifre i returneaz suma divizorilor numrului x.
Exemplu: sum(6)are valoarea 12(=1+2+3+6). (3p.)
b) S se scrie un program C/C++care citete de la tastatur un numr natural n
(0<n<25)i apoi nnumere naturale nenule cu maximum 9cifre fiecare. Programul
calculeaz, folosind apeluri ale funciei sum, i afieaz pe ecran cte numere prime conine
irul citit. Exemplu: pentru n=5i valorile 123971se va afia pe ecran valoarea 2
(n irul dat exist dou numere prime i anume 3i 7). (7p.)
10. Se consider subprogramul Pcare are doi parametri:
n,prin intermediul cruia primete un numr natural de cel mult 9cifre
c, prin intermediul cruia primete o cifr.
Subprogramul va furniza tot prin intermediul parametrului nnumrul obinut din nprin
eliminarea tuturor apriiilor cifrei c. Dac, dup eliminare, numrul nu mai conine nicio cifr
sau conine doar cifre 0, rezultatul returnat va fi 0.
a) Scriei doar antetul subprogramului P. (2p.)
b) Pe prima linie a fiierului text BAC.INse gsesc, separate prin cte un spaiu, mai multe
numere naturale de cel mult 9cifre fiecare. Scriei programul C/C++care citete numerele
din acest fiier, utiliznd apeluri ale subprogramului Pelimin toate cifrele impare din
fiecare dintre aceste numere i apoi scrie n fiierul text BAC.OUTnumerele astfel obinute,
separate prin cte un spaiu. Dac un numr din fiierul BAC.INnu conine nicio cifr par
nenul, acesta nu va mai aprea deloc n fiierul de ieire. (8p.)
Exemplu: dac fiierul BAC.INconine numerele 257381030451270356015,
atunci BAC.OUTva avea coninutul: 284260.
11. Scriei definiia complet a subprogramului multiplucare are 3parametri: a, prin
care primete un tablou unidimensional cu maximum 100de numere naturale mai mici
dect 1000, n, numrul efectiv de elemente ale tabloului i k, un numr natural (k9).
Subprogramul returneaz numrul de elemente din tablou care sunt multipli ai numrului k
i au ultima cifr egal cu k. Exemplu: dac n=6, a=(9,273,63,83,93,123), iar k=3,
subprogramul va returna valoarea 4.
12. Scriei definiia complet a subprogramului intervalcare are doi parametri ai n,
prin care primete un tablou unidimensional cu maximum 100de numere naturale mai mici
dect 1000i respectiv numrul efectiv de elemente din tabloul unidimensional.
Subprogramul returneaz numrul de elemente din tabloul unidimensional care aparin
intervalului nchis determinat de primul i respectiv ultimul element al tabloului. Exemplu:
dac tabloul are 6elemente i este de forma (12,27,6,8,9,2), subprogramul va returna
valoarea 5.
13. Scriei definiia complet a subprogramului countcare are doi parametri, ai n, prin
care primete un tablou unidimensional cu maximum 100de numere reale i respectiv
numrul efectiv de elemente din tablou. Subprogramul returneaz numrul de elemente din
tabloul acare sunt mai mari sau cel puin egale cu media aritmetic a tuturor elementelor
din tablou. Exemplu: dac tabloul are 6elemente i este de forma (12,7.5,6.5,3,
8.5,7.5), subprogramul va returna valoarea 4(deoarece media tuturor elementelor
este 7.5i numerele subliniate sunt cel puin egale cu aceast medie).

14. Subprogramul aranjareare doi parametri: aprin care primete un tablou


unidimensional cu maximum 100de numere reale nenule i n, numrul de elemente din
tablou. Subprogramul rearanjeaz elementele tabloului unidimensional astfel nct toate
valorile negative s se afle pe primele poziii, iar valorile pozitive n continuarea celor
negative. Ordinea n cadrul secvenei de elemente pozitive, respectiv n cadrul secvenei de
elemente negative, poate fi oricare. Tabloul modificat va fi furnizat tot prin intermediul
parametrului a. Exemplu: dac tabloul are 6elemente i este de forma (12,7.5,
6.5,3,8,7.5), dup apel, acesta ar putea fi: (7.5,3,8,12,6.5,7.5).
Scriei definiia complet a subprogramului aranjare.
15. Subprogramul nuleare doi parametri: a, prin care primete un tablou unidimensional
cu maximum 100de numere ntregi, cu cel mult 4cifre fiecare i n, numrul de elemente
din tablou. Subprogramul rearanjeaz elementele tabloului unidimensional astfel nct toate
valorile nule s se afle la sfritul tabloului. Ordinea n cadrul secvenei de elemente nenule
poate fi oricare. Tabloul modificat este furnizat tot prin parametrul a. Exemplu: dac n=6,
a=(12,0,0,3,8,0), dup apel, acesta ar putea fi: a=(12,3,8,0,0,0). Scriei
definiia complet a subprogramului nule.
16. Scriei definiia complet a unui subprogram i_primcare primete prin singurul su
parametru, n, un numr natural din intervalul [2,30000]i returneaz diferena minim
p2p1n care p1i p2sunt numere prime i p1np2.
Exemplu: dac n=20atunci i_prim(n)=4, valoare obinut pentru p1=19i p2=23
17. a) Scriei definiia complet a unui subprogram, nz, cu un parametru ntreg n
(0<n32000), care returneaz numrul zerourilor de la sfritul numrului n!.
b) Scriei programul C/C++care citete de la tastatur un numr natural k(0<k3) i
determin, folosind apeluri ale subprogramului nz, cel mai mic numr natural npentru care
n!are cel puin kzerouri la sfrit. Numrul determinat se afieaz pe ecran.
18. a) Scriei definiia complet a subprogramului shiftcare primete prin intermediul
parametrului no valoare natural nenul (n100), iar prin intermediul parametrului x,un
tablou unidimensional cu maximum 100 de componente. Fiecare component a acestui
tablou este un numr ntreg care are cel mult 4cifre. Subprogramul permut circular cu o
poziie spre stnga primele n elemente ale tabloului xi furnizeaz tabloul modificat tot prin
parametrul x. Exemplu: dac nainte de apel n=4i x=(1,2,3,4), dup apel
x=(2,3,4,1).
b) Scriei un program C/C++care citete de la tastatur o valoare natural nenul n
(n100), apoi cele nelemente ale unui tablou unidimensional x. Programul va inversa
ordinea elementelor tabloului xfolosind apeluri utile ale subprogramului shifti va afia
pe ecran, separate prin cte un spaiu, elementele tabloului rezultat n urma acestei
prelucrri. Exemplu: dac se citesc pentru nvaloarea 5, iar tabloul xeste (1,2,3,4,5)
programul va determina ca xs devin (5,4,3,2,1).
19. a) Scriei definiia complet a subprogramului pcare primete prin intermediul
parametrului nun numr natural nenul (n100), iar prin intermediul parametrului xun
tablou unidimensional cu ncomponente ntregi, de maximum patru cifre fiecare.
Subprogramul furnizeaz prin intermediul parametrului minivaloarea minim din tabloul x,
prin intermediul parametrului maxivaloarea maxim din x, iar prin intermediul parametrului
sumsuma elementelor din tabloul x.
b) Scriei un program C/C++care citete de la tastatur o valoare natural nenul n,

(3n100), apoi cele nelemente distincte ale unui tablou unidimensional x. Fiecare dintre
aceste elemente este un numr natural avnd cel mult patru cifre. Folosind apeluri utile ale
subprogramului p, programul calculeaz i afieaz pe ecran media aritmetic a
elementelor care ar rmne n tabloul xdac s-ar elimina valoarea minim i valoarea
maxim din tablou. Valoarea afiat va avea cel mult 3cifre dup virgul. Exemplu: dac
se citesc pentru nvaloarea 5, iar pentru tabloul xvalorile (1,9,4,8,5), programul va
afia una dintre valorile 5.667sau 5.666.
20. Subprogramul fprimete prin intermediul parametrului nun numr natural nenul
(1n9), iar prin intermediul parametrului a, un tablou unidimensional care conine nvalori
naturale, fiecare dintre acestea reprezentnd cte o cifr a unui numr. Astfel, a0
reprezint cifra unitilor numrului, a1cifra zecilor etc. Subprogramul furnizeaz prin
parametrul ko valoare natural egal cu numrul obinut din cifrele pare reinute n tabloul
asau valoarea 1dac n tablou nu exist nicio cifr par. Scriei definiia complet a
subprogramului f. Exemple: dac subprogramul se apeleaz pentru n=6i pentru taboul a
avnd valorile (2,3,5,6,4,1), parametrul kva furniza valoarea 462. Dac
subprogramul se apeleaz pentru n=4i pentru areinnd valorile (0,0,1,1), kva
furniza valoarea 0. Dac subprogramul se apeleaz pentru n=3i pentru areinnd
valorile (3,7,1), kva furniza valoarea 1.
21. a) Scriei definiia complet a subprogramului sterge, care primete prin cei 4
parametri v,n,i,j:
- v, un tablou unidimensional cu maximum 100de elemente ntregi din intervalul [
1000,1000]
- n, un numr natural reprezentnd numrul de elemente din tabloul v
- ii jdou valori naturale cu 1ijn
i elimin din tabloul velementele vi,vi+1,,vjactualiznd valoarea parametrului n.
Tabloul modificat este furnizat tot prin parametrul v.
b) Fiierul text NUMERE.INconine pe prima linie un numr natural nenul n(1n100) i
pe urmtoarea linie nnumere ntregi din intervalul [1000;1000], separate prin cte un
spaiu. Scriei un program C/C++care citete din fiierul NUMERE.INnumrul natural n,
construiete n memorie un tablou unidimensional vcu cele nnumere ntregi aflate pe
linia a doua n fiier i utilizeaz apeluri utile ale subprogramului stergepentru a elimina
din tablou un numr minim de elemente astfel nct s nu existe dou elemente alturate cu
aceeai valoare. Elementele tabloului obinut se afieaz pe ecran, separate prin cte un
spaiu. Exemplu: Dac fiierul NUMERE.INare coninutul:
12
101022199999151515atunci se afieaz 10219915.
22. Scriei definia complet a subprogramului nrealcu doi parametri xi y, numere
naturale din intervalul [1;1000]ce returneaz un numr real cu proprietatea c partea sa
ntreag este egal cu x, iar numrul format din zecimalele sale, n aceeai ordine, este
egal cu y. Exemplu: pentru x=12i y=543, subprogramul returneaz valoarea 12.543.
23. a) Scriei definiia complet a unui subprogram primul, care
- primete prin singurul su parametru, a, o valoare natural din intervalul [2,10000]
- returneaz o valoare natural reprezentnd cel mai mic divizor al numrului amai mare
strict dect 1.
b) Fiierul text NUMERE.INconine pe prima linie un numr natural nenul (1n100)i
pe urmtoarea linie nnumere naturale din intervalul [2,10000]separate prin cte un
spaiu. Un numr natural nse numete aproape prim dac este egal cu produsul a dou

numere prime distincte. De exemplu, numrul 14este aproape prim pentru c este egal
cu produsul numerelor prime 2i 7. Scriei un program C/C++care determin, folosind
apeluri utile ale suprogramului 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. Exemplu:
dac fiierul NUMERE.INare coninutul:
6
100142187735
atunci se afieaz pe ecran DA77pentru c numrul 77este cel cel mai mare dintre
numerele aproape prime din fiier 14=7*2,21=7*3,77=7*11,35=7*5).
24. Scriei definiia complet a subprogramului multipli, cu trei parametri a,b,c
(ab), numere naturale din intervalul [1,10000]ce returneaz numrul numrul
multiplilor lui cdin intervalul [a;b]. Exemplu: pentru a=10, b=27,c=5subprogramul
returneaz valoarea 4.
25. Scriei definiia complet a subprogramului suma, care primete prin cei 4parametri,
v,n,i,j:
- v, un tablou unidimensional cu maximum 100de elemente ntregi din intervalul
[1000,1000], numerotate de la 1la n;
- n, un numr natural reprezentnd numrul de elemente din tabloul v;
- ii j, dou valori naturale cu 1ij100
i returneaz suma elementelor v1,vi1,vj+1,,,vndin tabloul v.
26. Scriei definiia complet a subprogramului sumacare primete ca parametru un tablou
unidimensional xcu cel mult 100de elemente, numere reale, un numr natural nce
reprezint numrul efectiv de elemente ale tabloului x(n100), i un numr natural m
(nm). Subprogramul returneaz suma obinut din cele mai mici melemente ale tabloului
x.
27. Scriei definiia complet a subprogramului nr_primcare are ca parametru un numr
natural xi returneaz cel mai mic numr prim, strict mai mare dect x.
Exemplu: pentru x=25subprogramul returneaz numrul 29, iar pentru x=17valoarea
returnat va fi 19.
28. Subprogramul sum3primete prin parametrul xun tablou unidimensional, cu cel mult
100de elemente, numere ntregi cu cel mult 4cifre fiecare, iar prin parametrul nun
numr natural ce reprezint numrul efectiv de elemente ale tabloului x(n100). Scriei
definiia complet a subprogramului sum3care returneaz suma elementelor tabloului care
sunt divizibile cu 3. Dac tabloul nu conine nicio valoare divizibil cu 3, subprogramul va
returna 0.
29. a) Subprogramul maxprimete ca parametru un tablou unidimensional xcu cel mult
100de elemente numere ntregi, care sunt, n ordine, termenii unei progresii aritmetice i
un numr natural n, care reprezint dimensiunea tabloului. Scriei definiia complet a
subprogramului maxcare returneaz cel mai mare termen al progresiei aritmetice. Alegei
un algoritm de rezolvare eficient din punct de vedere al timpului de executare.
b) Explicai n limbaj natural metoda utilizat justificnd eficiena acesteia.
c) Pe prima linie a fiierului numere.txtse afl un numr natural n(n100), iar pe
urmtoarele nlinii, cte nnumere ntregi cu cel mult 4cifre fiecare. Scriei programul
C/C++care citete din fiier datele existente, determin liniile din fiier pe care s-au

memorat n ordine termenii unei progresii aritmetice i afieaz pe ecran, folosind apeluri
ale subprogramului maxcel mai mare numr (diferit de cel situat pe prima linie) din fiier,
care n plus este termenul unei progresii aritmetice.
Exemplu: dac fiierul numere.txtare coninutul:
5
57319
97531
2581411
5040302010
1817161514
se va afia 50, deoarece progresiile aritmetice sunt:
(97531), (5040302010)i (1817161514)
30.a) Scriei definiia complet a unui subprogram sumcare primete prin parametrul x
un numr natural de cel mult 4cifre i returneaz suma divizorilor numrului x, diferii de 1
i 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 4cifre 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:
005714deoarece suma divizorilor lui 10este 7, suma divizorilor lui 2este 0, suma
divizorilor lui 33este 14, suma divizorilor lui 6este 5, suma divizorilor lui 11este 0.
31.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,
7
3691132033135442
pe ecran se va afia: 64220
c) Descriei succint n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 - 4 rnduri).
32.a) Scriei doar antetul subprogramului nrdiv, care primete prin intermediul
parametrului xun 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,
7
30105201407105
pe ecran se va afia: 2010
33. Scriei n limbajul C/C++definiia complet a subprogramul Delcare are doi parametri:
x, un numr ntreg de cel mult 9cifre, i y, un numr natural nenul de o cifr.
Subprogramul determin eliminarea tuturor cifrelor lui xmai mari strict dect yi
furnizeaz numrul obinut tot prin intermediul parametrului x. Dac toate cifrele lui xsunt
mai mari strict dect y, atunci xva primi valoarea 1.
Exemplu: dac x=37659i y=6, dup apel x=365, iar y=6.
34. 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.
35. Se consider subprogramul pr, care primete prin intermediul parametrului aun numr
natural nenul cu cel mult 9cifre i returneaz 1dac numrul este prim i 0n caz
contrar.
a) Scriei numai antetul subprogramului 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 ni 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 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).
36. a) Scriei definiia complet a subprogramului sdivcare primete prin intermediul
parametrului yun 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).
37. Scriei un subprogram DIST, cu doi parametri, care primete prin intermediul
parametrului aun tablou unidimensional cu cel mult 100de elemente, numere naturale de
cel mult 4cifre fiecare, i prin intermediul parametrului nun numr natural nenul, n<100,
ce reprezint numrul de elemente din tablou. Subprogramul returneaz valoarea 1dac

toate elementele tabloului asunt distincte i dac diferena absolut a oricror dou
elemente vecine din tablou este diferit de 1, altfel returnnd valoarea 0.
38. Scriei definiia complet a unui subprogram P, cu trei parametri, care primete prin
intermediul primului parametru, a, un tablou unidimensional de cel mult 100de numere
ntregi, cu cel mult 4cifre fiecare, prin intermediul celui de-al doilea parametru, n, numrul
efectiv de elemente ale tabloului, iar prin parametrul k, un numr natural (k<101) i
returneaz cea mai mare sum cu ktermeni care se poate obine adunnd kelemente ale
tabloului. Exemplu: dac n=6i k=4, iar irul este format din elementele (5,2,5,4,
1,3), atunci la apel se va returna 17
39. Scriei definiia complet a unui subprogram Pcu doi parametri, care primete prin
intermediul primului parametru, n, un numr natural nenul (1n100) i prin intermediul
celui de-al doilea parametru, a, un tablou unidimensional cu elementele numerotate de la 1
la n, numere ntregi de cel mult 4cifre fiecare. Subprogramul returneaz suma tuturor
numerelor impare aflate pe poziii pare din tablou.
Exemplu: dac n=6, iar irul aeste format din elementele (3,12,7,1,4,3), atunci la
apel se va returna 4.
40. Scriei definiia complet a unui subprogram P, cu doi parametri, ai b, numere
naturale cu cel mult 4cifre fiecare, care afieaz pe ecran, separate prin cte un spaiu,
numerele aflate n intervalul nchis determinat de valorile ai b, care sunt ptratele unor
numere prime. Exemplu: pentru a=40i b=1se vor afia valorile: 4925(nu neaprat
n aceast ordine).
41. a) Scriei n limbajul C/C++doar antetul subprogramului cifre, care prin intermediul
parametrului nrprimete un numr natural de cel mult 9cifre i furnizeaz prin
intermediul parametrilor nci scnumrul 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 n
se gsete cel puin o cifr care s fie media aritmetic a celorlalte cifre din componena lui
n.Programul afieaz pe ecran mesajul DAn caz afirmativ i mesajul NUn caz contrar.
Exemplu: pentru n=27989programul va afia mesajul DA, deoarece n scrierea lui n
apare cifra 7care este media aritmetic a celorlalte cifre din scrierea lui n:
7=(2+9+8+9)/4. Pentru n=7351se va afia mesajul NU.
42. a) Scriei n limbajul C/C++doar antetul unui subprogram cif,care primete prin
intermediul primului parametru, nr, un numr natural cu cel mult 9cifre 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 274
560183548219293287932634atunci, pe ecran, se afieaz numerele 56018
8219.
43. 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++, doar antetul subprogramului cmax.
b) Fiierul bac.txtconine cel mult 1000numere naturale nenule, mai mici dect 30000
fiecare, 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: 2312641272345672371
634atunci pe ecran se afieaz 767.
44. Se consider subprogramul divxycare primete prin parametrii xi ydou valori
ntregi pozitive (0<x<1000i 0<y<1000) i returneaz valoarea 1dac yeste divizor al
lui xsau xeste divizor al lui yi returneaz valoarea 0n caz contrar.
a) Scriei definiia complet a subprogramului divxy.
b) Scriei un program C/C++care citete de la tastatur trei numere naturale nenule a, b
i n, cu cel mult 3cifre fiecare i care afieaz pe ecran toi divizorii lui ndin intervalul
nchis determinat de ai bfolosind apeluri utile ale subprogramului divxy. Intervalul
nchis determinat de ai beste [a,b]dac a<bsau [b,a]dac ba. Numerele
afiate sunt separate prin cte un spaiu. Dac nu exist niciun astfel de numr se afieaz
mesajul NUEXISTA. Exemplu: pentru a=85, b=10i n=40se afieaz: 102040(nu
neaprat n aceast ordine).
45. Se consider subprogramul dist2, care primete prin intermediul parametrilor xa, ya
i respectiv xb,yb, coordonatele carteziene ntregi (abscis, ordonat) pentru dou
puncte din plan, Ai respectiv B. Subprogramul returneaz ptratul distanei dintre cele
dou puncte.
a) Scriei n limbajul C/C++definiia complet a subprogramului dist2.
b) Scriei un program C/C++care citete de la tastatur 8valori ntregi reprezentnd
coordonatele carteziene pentru patrupuncte din plan i afieaz mesajul Dadac cele
patru puncte pot fi vrfurile unui ptrat, iar n caz contrar afieaz mesajul Nu,folosind
apeluri utile ale subprogramului dist2. Exemplu: dac coordonatele punctelor sunt cele
alturate
00
30
33
03
atunci se va afia mesajul Da
46. Subprogramul mult, cu doi parametri, primete prin intermediul primului parametru, n,
un numr natural nenul cu maximum trei cifre i prin intermediul celui de-al doilea
parametru, a, un tablou unidimensional avnd ncomponente numere naturale cu cel mult
8cifre fiecare. Subprogramul returneaz valoarea truedac cele ncomponente ale lui a
pot forma o mulime i returneaz falsen caz contrar.
a) Scriei definiia complet a subprogramului mult.
b) Fiierul text date.inconine cel mult 400de numere naturale avnd maximum 8cifre
fiecare. Scriei un program C/C++care, folosind apeluri utile ale subprogramului mult,
afieaz pe ecran valoarea maxim k, astfel nct primele knumere succesive din fiier s
poat forma o mulime. Exemplu: dac fiierul date.inconine
16178318210
atunci se va afia 4(deoarece primele patru numere din fiier pot forma o mulime i
acesta este cardinalul maxim posibil n condiiile impuse de enunul problemei)
47. Se consider subprogramul cmmdc, care primete prin intermediul a doi parametri, ai
b, dou numere naturale nenule, cu maximum 8cifre fiecare, i returneaz cel mai mare
divizor comun al valorilor parametrilor ai b.
a) Scriei definiia complet a subprogramului cmmdc.

b) Scriei un program Pascalcare citete de la tastatur un numr natural n(n<300), i,


cu ajutorul subprogramului cmmdc, determin numrul perechilor de valori naturale (a,b),
1<a<b<n, cu proprietatea c ai bnu au niciun divizor comun n afar de 1. Numrul
obinut se va afia pe ecran. Exemplu: dac se citete n=6, atunci se va afia 6(deoarece
perechile (2,3), (2,5), (3,4), (3,5), (4,5), (5,6)satisfac condiiile din enun).
48. Se consider subprogramul inv, care primete prin intermediul primului parametru a
un numr natural, cu minimum dou cifre i maximum 8cifre, i furnizeaz prin intermediul
celui de-al doilea parametru, b, valoarea numrului natural format cu aceleai cifre ca i a,
considerate n ordine invers. De exemplu, pentru a=3805, dup apel bva avea valoarea
5083., iar dac a=3800, dup apel bva avea valoarea 83.
a) Scriei definitia complet a subprogramului inv.
b) Scriei un program C/C++care citete de la tastatur un numr natural nde minimum
dou i maximum 8cifre i afieaz pe ecran un numr palindrom cu valoarea cea mai
apropiat de valoarea lui ncitit. n cazul n care exist dou astfel de numere, se va afia
cel mai mic dintre ele. Se vor folosi apeluri utile ale subprogramului inv. Spunem c un
numr natural xeste palindrom dac numrul format din cifrele lui xconsiderate de la
stnga ctre dreapta este acelai cu numrul format din cifrele lui xconsiderate de la
dreapta ctre stnga.
Exemplu: dac n=16, atunci se afieaz valoarea 11, dac n=126, atunci se afieaz
121, iar dac a=33, atunci se afieaz 33.
49. Se consider subprogramul cifre, care primete prin intermediul primului parametru,
a, un numr natural cu maximum 8cifre 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.
b) Se consider fiierul text date.ince conine pe prima linie un numr natural nenul n
(n100), iar pe a doua linie nnumere naturale, separate prin cte un spaiu, fiecare numr
avnd maximum 8cifre nenule. Scriei un program C/C++care citete toate numerele din
fiierul text date.ini afieaz pe ecran, desprite prin cte un spaiu, numerele
situatepe 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.
Exemplu: dac fiierul date.inare coninutul alturat, 6
16175333242477321269atunci se vor afia numerele: 16269
50.Se consider subprogramele
prim, care primete prin intermediul unicului su parametrului xun numr natural nenul
de cel mult 4cifre i returneaz valoarea 1dac xeste un numr prim i 0n caz
contrar;
numar, care primete prin intermediul parametrului xun numr natural nenul de cel mult
4cifre i furnizeaz prin intermediul parametrului nrpnumrul de numere prime mai mici
dect x.
a) Scriei numai antetul subprogramului primi definiia complet a subprogramului
numar.
b) Scriei un programul C/C++n care se citesc de la tastatur dou numere naturale
nenule de cel mult 4cifre, ai b(a<b), i, prin apeluri utile ale subprogramului numar,
se verific dac intervalul nchis [a,b]conine cel puin un numr prim. Progr. va afia pe
ecran, n caz afirmativ, mesajul DA, iar n caz contrar, mesajul NU.
51. Se consider subprogramul multiplu, cu doi parametri, care:

primete prin intermediul parametrilor ai kdou numere ntregi de cel mult 4cifre;
returneaz cel mai mic multiplu al lui kmai mare sau egal cu a.
a) Scriei numai antetul subprogramului multiplu.
b) Scriei declarrile de date i programul principal C/C++care citete de la tastatur trei
numere naturale nenule x, y, z, de cel mult 4cifre fiecare, (xy), i care, prin apeluri utile
ale subprogramului multiplu, verific dac intervalul [x,y]conine cel puin un multiplu
al lui z. Programul va afia pe ecran, n caz afirmativ, mesajul DA, iar n caz contrar mesajul
NU.
52. Se consider subprogramul divizor, care:
primete prin intermediul parametrului aun numr natural strict mai mare dect 1, de cel
mult 4cifre;
furnizeaz prin intermediul parametrului dcel mai mare divizor al lui astrict mai mic
dect a.
a) Scriei numai antetul subprogramului divizor.
b) Scriei declarrile de date i programul principal C/C++care citete de la tastatur un
numr natural nenul x, de cel mult 4cifre i, prin apeluri utile ale subprogramului divizor,
verific dac xeste numr prim. Programul va afia pe ecran n caz afirmativ mesajul DA,
iar n caz contrar mesajul NU.
53. Se consider subprogramul radical, care:
primete prin intermediul parametrului a, un numr natural nenul de cel mult 4cifre;
furnizeaz prin intermediul parametrului xcel mai mare numr natural cu proprietatea c
x2este mai mic sau egal cu a; de exemplu, dac a=20, subprogramul va furniza prin x
valoarea 4.
a) Scriei numai antetul subprogramului radical.
b) Scriei declarrile de date i programul principal C/C++care citete de la tastatur un
numr natural nenul de cel mult 4cifre, n, i prin apeluri utile ale subprogramului radical,
verific dac neste ptrat perfect. Programul va afia pe ecran n caz afirmativ mesajul DA,
iar n caz contrar mesajul NU.
54. Subprogramul cifraprimete prin parametrul xun numr real nenul pozitiv i
furnizeaz prin parametrul yvaloarea cifrei unitilor prii ntregi a lui x.
Exemplu: dac x=34.567, dup apel y=4.
a) Scriei definiia complet a subprogramului cifra.
b) Scriei un program C/C++care citete de la tastatur dou numere reale cu cel mult
dou zecimale, numere reprezentnd mediile semestriale obinute de un elev. Programul
stabilete, folosind apeluri utile ale subprogramului cifra, dac cele dou medii citite se
afl n aceeai categorie de medii sau nu. Precizm c orice medie, n funcie de intervalul
n care se ncadreaz, face parte din una dintre categoriile: [3,3.99], [4,4.99],
[5,5.99], [6,6.99], [7,7.99], [8,8.99]sau [9,10]. n cazul n care ambele medii
fac parte din aceeai categorie, programul va afia mesajul Da, altfel va afia mesajul Nu.
55. Scriei definiia complet a unui subprogram fibocu doi parametri, ni v, care
primete prin intermediul parametrului nun numr natural (1<n<30) i returneaz prin
intermediul parametrului v un tablou unidimensional care conine primii ntermeni impari ai
irului lui Fibonacci (amintim c irul lui Fibonacci este: 1,1,2,3,5,8,13,21,).
56. Subprogramul verifprimete prin singurul su parametru, x, un numr natural nenul
cu cel mult 9cifre i returneaz valoarea 1dac numrul conine cel puin o secven de 3
cifre impare alturate i 0n caz contrar.

Exemplu: dac x=7325972se va returna valoarea 1.


a) Scriei definiia complet a subprogramului verif. (6p.)
b) Scriei un program C/C++care citete de la tastatur un numr natural nenul ncu
exact 6cifre i, folosind apeluri utile ale subprogramului verif, verific dac nare
primele trei cifre impare. Programul afieaz pe ecran mesajul Dan caz afirmativ i
mesajul Nun caz contrar.
57. Subprogramul divizprimete prin intermediul parametrului nun numr natural nenul
(2n200), iar prin intermediul parametrului a, un tablou unidimensional care conine n
valori naturale nenule, fiecare dintre acestea avnd cel mult patru cifre. Elementele tabloului
sunt numerotate de la 1la n. Subprogramul returneaz o valoare egal cu numrul de
perechi (ai,aj), 1i<jn, n care aieste divizor al lui aj, sau ajeste divizor al lui
ai. Scriei definiia complet a subprogramului diviz, n limbajul C/C++. Exemplu: pentru
n=5i a=(4,8,3,9,4)subprogramul returneaz valoarea 4.
58. Subprogramul sfxprimete prin singurul su parametru, x, un numr natural din
intervalul [100,2000000000]i returneaz valoarea 1dac ultimele trei cifre ale
numrului sunt n ordine strict descresctoare sau valoarea 0n caz contrar.
Exemplu: dac x=24973se va returna valoarea 1.
a) Scriei definiia complet a subprogramului sfx.
b) Scriei un program C/C++care citete de la tastatur un numr natural nformat din
exact 6cifre i verific, utiliznd apeluri ale subprogramului sfx, dac acest numr are
toate cifrele n ordine strict descresctoare. Programul va afia mesajul Dan caz afirmativ
i mesajul Nun caz contrar.
Exemplu: dac n=756543se va afia Nu, iar dac n=976532se va afia Da.
59. S se scrie n limbajul C/C++definiia complet a subprogramului calcul, care
primete prin intermediul parametrului nun numr natural nenul (1n10000), iar prin
intermediul parametrului a, un tablou unidimensional care conine nvalori naturale, fiecare
dintre aceste valori avnd cel mult 9cifre. Subprogramul returneaz cel mai mare divizor
comun al elementelor tabloului a. Exemplu: n urma apelului, pentru n=5i tabloul
unidimensional (12,36,48,6,60)se va returna 6.
60. S se scrie n limbajul C/C++definiia complet a subprogramului calcul, care
primete prin intermediul parametrului nun numr natural nenul (1n10000), iar prin
intermediul parametrului a, un tablou unidimensional care conine nvalori naturale, fiecare
dintre aceste valori avnd cel mult 9cifre. Subprogramul returneaz numrul de numere
prime din tablou. Exemplu: pentru n=5i tabloul unidimensional (12,37,43,6,71)n
urma apelului se va returna 3.
61. a) S se scrie definiia complet a subprogramului calcul, care primete prin
intermediul celor doi parametri ai si dou numere ntregi, ni k(1n100000000i
1k9), i returneaz cifra de rang ka numrului n. Rangul unei cifre este numrul su
de ordine, numerotnd cifrele de la dreapta la stnga; cifra unitilor avnd rangul 1. Dac
numrul keste mai mare dect numrul de cifre ale lui n, atunci funcia return. valoarea
1. Exemplu: dac n=9243i k=3, n urma apelului se va returna 2.
b) Scriei un program C/C++care citete de la tastatur un numr natural ncu cel mult 8
cifre. Programul va verifica, utiliznd apeluri ale subprogramului calcul, dac orice cifr a
lui nare rangul cifrei mai mare sau egal cu valoarea cifrei respective i va afia mesajul Da
n caz afirmativ i mesajul Nun caz contrar.
Exemplu : pentru n=4160se va afia Nu.

rang 4321
cifr 4160
62. a) S se scrie definiia complet a subprogramului calcul,care primete prin
intermediul parametrului ntreg nun numr natural de cel mult 9cifre i returneaz
valoarea absolut a diferenei dintre numrul de cifre pare i numrul de cifre impare
coninute de n. Exemplu: dac n=92465, n urma apelului se va returna valoarea 1(2
cifre impare, 3cifre pare).
b) S se scrie n limbajul C/C++un program care citete de la tastatur un numr natural n
de cel mult 7cifre i, utiliznd apeluri ale subprogramului calcul, determin i afieaz
pe ecran cel mai mic numr natural m, mn, care are tot attea cifre pare cte cifre impare.
Exemple: dac se citete n=5513, atunci se afieaz m=5520, iar dac se citete n=311,
atunci se afieaz m=1001.
63. S se scrie n limbajul C/C++definiia complet a subprogramului calcul, care
primete prin parametrul nun numr natural nenul de cel mult 9cifre i furnizeaz prin
parametrul xnumrul obinut prin alturarea cifrelor pare ale lui nconsiderate de la
dreapta ctre stnga. Dac nnu conine nicio cifr par, xprimete valoarea 0.
Exemplu: n urma apelului calcul(9278,x), xprimete valoarea 82.
64. Un numr natural se numete palindrom dac numrul citit de la stnga la dreapta este
egal cu numrul citit de la dreapta la stnga.
a) Scriei definiia complet a subprogramului Palindromcare primete prin intermediul
parametrului nun numr natural de cel mult nou cifre i returneaz 1dac acesta este
palindrom i 0n caz contrar.
b) Fiierul text NUMERE.INconine cel mult 100000numere naturale de cel mult nou
cifre fiecare, numerele fiind desprite prin cte un spaiu. Cel puin unul dintre numere este
palindrom. Scriei programul C/C++care citete numerele din fiierul NUMERE.INi,
folosind apeluri utile ale subprogramului Palindromdetermin n mod eficient, din punct
de vedere al memoriei utilizate i al timpului de executare, care este cel mai mare numr
palindrom citit i de cte ori apare el n fiierul NUMERE.IN. Programul scrie n fiierul text
NUMERE.OUTnumrul astfel determinat precum i numrul de apariii ale acestuia, pe
rnduri diferite. Exemplu: dac NUMERE.INconine numerele: 23565786877887
7865786877887237868798798
atunci NUMERE.OUTva conine: 786873(peranduridiferite).
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul b, explicnd n
ce const eficiena ei (3 4 rnduri).
65. a) Scriei definiia complet a subprogramului Ecuatiecare primete prin parametrii a,
bi ctrei numere ntregi, a 0, de cel mult patru cifre fiecare, reprezentnd coeficienii
ecuaiei de gradul al II-lea: ax2 +bx+c=0. n funcie de soluiile ecuaiei subprogramul va
returna:
cea mai mare dintre soluii dac ecuaia are dou soluii reale distincte, dintre care cel
puin una pozitiv.
una dintre soluii dac ecuaia are dou soluii egale i pozitive.
32000n celelalte cazuri.
b) Se consider irul s:1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2,...
Pentru un numr natural k, 0<k10000, se cere s se determine valoarea elementului ce
se afl pe poziia kn irul s.
Exemplu: pentru k=5numrul cerut este 2. Scriei un program C/C++care citete de la
tastatur valoarea numrului natural ki, prin apeluri utile ale funciei Ecuatie, determin

valoarea elementului ce se afl pe poziia kn irul s, folosind un algoritm eficient din


punctul de vedere al spaiului de memorie alocat i al timpului de executare. Valoarea astfel
determinat se va scrie n fiierul text sir.out.
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul b, explicnd n
ce const eficiena ei (3 4 rnduri)
66. a) Scriei definiia complet a subprogramului Cautare, cu trei parametri, n, xi v,
care primete prin parametrul nun numr natural (1n1000), prin parametrul xun tablou
unidimensional format din ncomponente (numere ntregi de cel mult patru cifre fiecare: x1,
x2, , xn) memorate n ordine cresctoare i prin parametrul vun numr ntreg de cel
mult patru cifre, diferit de oricare dintre elementele tabloului unidimensional x.
Subprogramul va cuta, n mod eficient din punct de vedere al timpului de executare, poziia
pe care ar trebui inserat valoarea vn irul xastfel nct s se obin tot un ir ordonat i
returneaz aceast poziie.
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
c) Fiierul text sir.inconine cel mult 1000numere naturale de maximum patru cifre
fiecare, numerele fiind diferite dou cte dou i desprite prin cte un spaiu.
Scriei un program C/C++care citete numerele din fiierul sir.ini, folosind apeluri
utile ale subprogramului Cautare, construiete n memorie un tablou unidimensional care
va conine toate numerele din fiierul sir.inordonate cresctor. Programul scrie n
fiierul text sir.outirul obinut, cte 10elemente pe un rnd, elementele de pe acelai
rand fiind desprite printr-un singur spaiu.
Exemplu: dac fiierul sir.inconine numerele: 75635456085879865
38atunci dup executarea programului fiierul sir.outva conine:
4569885037865587
635
67. a) Scriei definiia complet a subprogramului Cifra, cu doi parametri, ni x, care primete
prin intermediul parametrului nun numr natural de cel mult nou cifre i furnizeaz prin
parametrul xcea mai mare cifr a numrului transmis prin parametrul n.
b) Scriei un program C/C++care citete de la tastatur un numr natural n,
n<1000000000, i afieaz pe ecran mesajul Dan cazul n care numrul citit este format
doar din cifre aparinnd mulimii {0,1,2,3,4}i afieaz mesajul Nun caz contrar.
68. a) Scriei definiia complet a funciei UltimaCifracare primete prin cei doi
parametri ai bcte un numr natural (0<a<1000000, 0<b<1000000), calculeaz n
mod eficient din punct de vedere al timpului de executare i returneaz ultima cifr a
numrului a^b(ala puterea b).
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri)
c) Fiierul text SIR.INconine pe prima sa linie un numr natural n(0<n<1001), iar pe
fiecare dintre urmtoarele nlinii cte o pereche de numere naturale, xiyi(1in,
xi30000, yi30000). Scriei programul C/C++care citete numerele din fiierul SIR.IN
i scrie n fiierul text SIR.OUTultima cifr expresiei:
x1^y1+x2^y2++xn^yn folosind apeluri ale funciei UltimaCifra.
Exemplu: dac fiierul SIR.INare coninutul alturat,
3
256
810
14589
atunci SIR.OUTva conine cifra 0.

69. Scriei definiia complet a unui subprogram scu trei parametri care primete prin
intermediul parametrului nun numr natural de maximum 9cifre, prin intermediul
parametrului co cifr i furnizeaz prin intermediul parametrului knumrul de cifre ale
numrului ncare aparin intervalului [c1,c+1].Exemplu: pentru n=1233i c=3,k
va avea valoarea 3, iar pentru n=650i c=3,kva avea valoarea 0.
70. a) Scriei doar antetul unui subprogram primcu doi parametri, care primete prin
intermediul parametrului nun numr natural cu cel mult patru cifre i returneaz prin
intermediului parametrului pvaloarea 1dac neste prim i 0n caz contrar.
b) Scriei un program C/C++care citete de la tastatur un numr natural n(3<n<10000)
i afieaz pe ecran, desprite prin cte un spaiu, primele nnumerele prime, folosind
apeluri utile ale subprogramului prim.
Exemplu: pentru n=4pe ecran vor fi afiate numerele 2357
71. Scriei definiia complet a subprogram max, cu trei parametri, a, b, c, care primete
prin intermediul parametrilor ai bdou numere reale cu exact dou cifre la partea
ntreag i exact dou zecimale fiecare. Subprogramul determin cel mai mare numr real
dintre urmtoarele patru valori: a, bi numerele reale obinute din ai bprin
interschimbarea prii ntregi cu partea fracionar n cadrul aceluiai numr. Aceast
valoare este furnizat prin intermediul parametrului real c.
Exemplu: dac a=33.17i b=15.40, cva avea valoarea 40.15(cea mai mare valoare
dintre 33.17, 15.40, 17.33i 40.15)
72. a) Scriei definiia complet a unui subprogram divicu doi parametri, care primete
prin intermediul parametrului nun numr natural nenul cu cel mult 6cifre i returneaz
prin intermediul parametrului dcel mai mic divizor propriu al lui nsau 0in cazul n care n
nu are niciun divizor propriu. De exemplu, pentru n=15, dva avea valoarea 3.
b) Scriei programul C/C++care citete de la tastatur un numr natural nenul n
(1<n<1000000)i afieaz pe ecran cel mai mare numar natural mai mic dect ncare l
divide pe n. Se vor folosi apeluri utile ale subprogramului divi.
Exemple: dac n=120, se afieaz pe ecran 60, iar dac n=43, se afieaz 1.
73. Scriei n C/C++definiia complet a subprogramului mediecare are doi parametri:
- n, prin care primete un numr natural (1n100) ;
- v, prin care primete un tablou unidimensional cu nelemente, numere naturale, fiecare
element avnd cel mult patru cifre.
Subprogramul returneaz media aritmetic a elementelor din tablou.
74. Fiierul text NUMERE.INconine, pe mai multe linii, cel mult 30000de numere
naturale nenule mai mici sau egale cu 500, numerele de pe fiecare linie fiind desprite prin
cte un spaiu. Fiierul conine cel puin dou numere distincte, fiecare avnd dou cifre.
a) Scriei programul C/C++care citete toate numerele din fiierul NUMERE.INi creeaz
fiierul text NUMERE.OUTcare s conin pe prima linie cel mai mare numr de dou cifre
din fiierul NUMERE.IN, i de cte ori apare el n acest fiier, iar pe a doua linie, cel mai mic
numr de dou cifre din fiierul NUMERE.INi de cte ori apare el n acest fiier. Alegei o
metod de rezolvare eficient din punct de vedere al memoriei utilizate i al timpului de
executare.
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul a), explicnd
n ce const eficiena ei (3 4 rnduri).
Exemplu: dac fiierul NUMERE.INare coninutul alturat:
2253343

688923
4543488
atunci fiierul NUMERE.OUTva avea urmtorul coninut:
882
342
75. Scriei n C/C++definiia complet a subprogramului sumacare are doi parametri:
- n, prin care primete un numr natural (1n100);
- v, prin care primete un tablou unidimensional cu nelemente, numere ntregi, fiecare
avnd exact trei cifre. Funcia returneaz suma elementelor din tablou care au prima cifr
egal cu ultima cifr.
76. Se consider subprogramul CMMMCcare primete prin cei doi parametri, xi y, dou
numere naturale (1x10000, 1y10000) i returneaz cel mai mic multiplu comun al lor.
a) Scriei numai antetul subprogramului CMMMC.
b) Fiierul text NUMERE.INconine, pe fiecare linie, cte dou numere naturale nenule mai
mici sau egale dect 10000, desprite printr-un spaiu. Scriei un program C/C++care,
pentru fiecare linie kdin fiierul NUMERE.IN, citete cele dou numere de pe aceast linie
i scrie n fiierul text NUMERE.OUT, tot pe linia k, cel mai mic multiplu comun al acestora,
ca n exemplu. Se vor utiliza apeluri utile ale subprogramului CMMMC. Exemplu: dac
fiierul NUMERE.INare coninutul alturat:
1214
1112
48
atunci fiierul NUMERE.OUTva avea urmtorul coninut:
84
132
8
77.Se consider subprogramul CMMDCcare primete prin cei doi parametri, xi y, dou
numere naturale (1x10000, 1y10000) i returneaz cel mai mare divizor comun al
lor.
a) Scriei numai antetul subprogramului CMMDC.
b) Fiierul text NUMERE.INconine, 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 kdin
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 numrtorul acestei fracii, adus la
forma ireductibil, ca n exemplu. Se vor utiliza apeluri apeluri utile ale subprogramului
CMMDC. Exemplu: dac fiierul NUMERE.INare coninutul alturat:
1214
1112
22
48
atunci fiierul NUMERE.OUTva avea urmtorul coninut:
67
1112
11
12
78.Scriei definiia complet a subprogramului numar, cu trei parametri, care primete
prin intermediul parametrului nun numr natural format din cel mult 9 cifre, iar prin
intermediul parametrilor c1i c2cte o cifr nenul; subprogramul retuneaz numrul

obinut prin nlocuirea n numrul primit prin parametrul na fiecrei apariii a cifrei c1cu
cifra c2. Dac c1nu apare n n, subprogramul returneaz valoarea n.
Exemplu: pentru n=12445, c1=4i c2=7valoarea returnat va fi 12775.
79. Scriei definiia complet a subprogramului reduce, cu doi parametri, care primete prin
intermediul parametrilor ai bdou numere naturale formate din cel mult 9cifre fiecare.
Funcia returneaz o valoare obinut din numrul aprin nsumarea acelor cifre diferite de
0ale numrului acare NU divid numrul b. Dac nu exist asemenea cifre, se va returna
valoarea 0.
Exemplu: pentru a=184465709i b=18, cifrele corespunztoare cerinei sunt 8, 4, 4, 5i
7, deci valoarea returnat va fi 28(28=8+4+4+5+7). Dac a=2402804i b=8000,
valoarea returnat va fi 0.
80. Scriei definiia complet a subprogramului numar, cu patru parametri, care primete
prin intermediul parametrului nun numr natural format din cel mult 9 cifre, iar prin
intermediul parametrilor c1i c2cte o cifr cu proprietatea c1<c2; subprogramul
furnizeaz prin intermediul celui de al patrulea parametru, x, o valoare obinut prin
eliminarea din numrul primit prin parametrul na fiecrei cifre cuprinse n intervalul nchis
[c1, c2]. Dac toate cifrele lui naparin acestui interval, valoarea furnizat prin xva fi 0.
Exemplu: pentru n=162448, c1=4i c2=7, valoarea furnizat prin xva fi 128.
81. Scriei definiia complet a subprogramului numar, cu trei parametri, care primete prin
intermediul parametrului nun numr natural format din cel mult 9 cifre, iar prin intermediul
parametrilor c1i c2cte o cifr nenul. Subprogramul caut prima apariie (de la stnga
spre dreapta) a cifrei c1n n, i dac aceasta apare, o nlocuiete cu c2, iar urmtoarele
cifre, dac exist, sunt nlocuite cu cte o cifr 0. Subprogramul furnizeaz tot prin n
numrul astfel obinut. Dac cifra c1nu apare n n, atunci valoarea lui nrmne
nemodificat. Exemplu: pentru n=162448, c1=4i c2=7valoarea furnizat prin nva fi
162700.
82. Funcia verifprimete prin intermediul parametrului nun numr natural format din
cel mult 9 cifre, i prin intermediul parametrului a, un numr natural nenul (2a9). Funcia
returneaz valoarea 1dac neste un numr format din cifre aparinnd intervalului nchis
[0,a]i valoarea 0n caz contrar.
a) Scriei definiia complet a funciei verif.
b) Spunem c npoate fi o reprezentare n baza b(1<b10), dac toate cifrele lui nsunt
strict mai mici dect b. Scriei un program care citete de la tastatur o valoare natural n
cu cel mult 9 cifre i, utiliznd apeluri ale funciei verif, afieaz pe ecran, n ordine
cresctoare, cu spaii ntre ele, toate valorile lui bpentru care valoarea citit nu poate fi o
reprezentare n baza b.
Exemplu: Pentru n=4101, se afieaz 234.
83. Subprogramul par primete prin singurul su parametru, n, un numr natural nenul cu
cel mult 8cifre i returneaz valoarea 1dac nconine cel puin o cifr par, sau
returneaz valoarea 0n caz contrar.
Exemplu: pentru n=723subprogramul va returna valoarea 1.
a) Scriei numai antetul subprogramului par.
b) Scriei un program C/C++care citete de la tastatur un numr natural nenul ncu cel
mult trei cifre, apoi un ir de nnumere naturale, cu cel puin dou i cel mult 8cifre
fiecare, i afieaz pe ecran numrul de valori din irul citit care au numai cifra unitilor
par, celelalte cifre fiind impare. Se vor utiliza apeluri utile ale subprogramului par.

Exemplu: dac n=4, iar irul citit este 7354, 123864, 51731, 570se va afia 2
(numerele 7354i 570respect condiia cerut).
84. Subprogramul ordonareprimete prin parametrul xun tablou unidimensional cu cel
mult 100de elemente numere reale, iar prin parametrul nun numr ntreg ce reprezint
numrul efectiv de elemente ale tabloului x. Subprogramul ordoneaz cresctor elementele
tabloului i furnizeaz, tot prin intermediul parametrului x, tabloul ordonat.
a) Scriei numai antetul acestui subprogram.
b) Scriei un program C/C++care citete de la tastatur dou numere naturale, ni m
(1n100i mn), i apoi un ir de nnumere 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 melemente din ir (n ordine descresctoare a valorilor lor). Numerele afiate
pe aceeai linie vor fi separate prin cte un spaiu.
Exemplu : dac n=9, m=3, iar irul este (14.2, 60, 7.5, 22, 33.8, 80, 4, 10, 3) se va
afia pe ecran: 33.86080
37.522
85. a) Scriei definiia complet a subprogramului dcm, cu doi parametri, care:
- primete prin parametrii ai bdou valori naturale din intervalul [1,30000]
- returneaz o valoare natural reprezentnd cel mai mare numr care este att divizor al
lui act i divizor al lui b.
Exemplu: dac a=100i b=120, subprogramul returneaz valoarea 20.
b) Scriei un program C/C++care citete de la tastatur dou numere naturale ai b,
numere din intervalul [1,30000]i determin, folosind apeluri utile ale subprogramului
dcm, cel mai mare numr care este divizor al fiecruia dintre numerele ai bi are
proprietatea c este un produs de dou sau mai multe numere prime distincte. Programul
afieaz pe ecran numrul cu proprietatea cerut, iar dac nu exist un astfel de numr,
afieaz mesajul nuexista.
Exemplu: dac a=60i b=72, atunci se afieaz 6
iar dac a=100i b=75, atunci se afieaz nuexista.
86. Scriei definiia complet a funciei f, care primete prin intermediul parametrului nun
numr natural nenul (2n200), iar prin intermediul parametrului aun tablou
unidimensional care conine nvalori ntregi, fiecare dintre aceste valori ntregi avnd cel
mult patru cifre. Funcia returneaz valoarea 1dac elementele tabloului formeaz un ir
cresctor, valoarea 2dac elementele tabloului formeaz un ir descresctor, valoarea 0
dac elementele tabloului formeaz un ir constant i valoarea 1n rest.
87. Funcia fprimete prin intermediul parametrului nun numr natural nenul (2n200),
iar prin intermediul parametrului aun tablou unidimensional care conine nvalori ntregi
nenule (fiecare dintre aceste valori ntregi avnd cel mult patru cifre).
Funcia returneaz valoarea 1dac numrul de valori negative din tabloul aeste strict
mai mare dect numrul de valori pozitive din tablou, valoarea 0dac numrul de valori
negative din aeste egal cu numrul de valori pozitive din tablou i valoarea 1dac
numrul de valori pozitive din tabloul aeste strict mai mare dect numrul de valori
negative din a. Scriei definiia complet a funciei f.
89. Funcia verifprimete prin intermediul a trei parametri, notai a, bi c, trei valori
naturale nenule, fiecare de maximum patru cifre. Funcia returneaz valoarea 1dac cele
trei valori pot constitui laturile unui triunghi i valoarea 0n caz contrar.
a) Scriei definiia complet a funciei verif.

b) Scriei un program C/C++care citete de la tastatur ase valori naturale nenule,


fiecare de maximum patru cifre, 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
congruentedac 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.
90. Tabloul unidimensional V, declarat global, memoreaz exact 50de numere ntregi:
V1, V2,...,V50. Subprogramul Calculprimete prin intermediul parametrului kun numr
natural nenul (k50) i furnizeaz prin intermediul parametrului Ssuma tuturor elementelor
pozitive, din tabloul V, cu indici mai mari sau egali cu ksau 0dac toate elementele
menionate sunt negative.
a) Scriei doar antetul subprogramului Calcul.
b) Scriei un program n limbajul C/C++care citete de la tastatur cele 50de
componente ntregi ale tabloului Vi dou numere naturale nenule xi y(x<y50).
Programul afieaz suma elementelor pozitive din tablou, cu indici cuprini ntre xi y
inclusiv, sau 0dac toate elementele menionate sunt negative, folosind apeluri utile la
subprogramul Calcul.
91. Scriei n limbajul C/C++definiia complet a subprogramului numar, cu exact doi
parametri, care primete prin intermediul parametrului xun numr natural nenul de cel mult
2cifre, i prin intermediul parametrului yun numr natural nenul de cel mult 9cifre.
Subprogramul returneaz cel mai mare numr natural zpentru care exist un numr
natural kastfel nct z=xki zy.Exemplu: pentru y=18i x=2subprogramul va
returna valoarea 16(=24<18).
92. Subprogramul Nrare un singur parametru, k, prin intermediul cruia primete un
numr natural de cel puin 3cifre i cel mult 9cifre, cu toate cifrele nenule. Subprogramul
furnizeaz tot prin intermediul parametrului k, valoarea obinut prin eliminarea primei i
ultimei cifre a numrului transmis la apel.
Exemplu: dac subprogramul primete prin intermediul parametrului kvaloarea 12438, n
urma apelului subprogramului Nr, kva primi valoarea 243.
Scriei, n limbajul C/C++, definiia complet a subprogramului Nr.
93. Scriei definiia complet a subprogramului divizor, cu trei parametri, prin care
primete 3numere naturale nenule cu cel mult 9cifre fiecare i returneaz numrul
divizorilor comuni tuturor celor 3numere.
Exemplu: dac numerele primite ca parametri sunt 24, 20i 12, subprogramul returneaz
valoarea 3(divizorii comuni sunt 1, 2i 4).

You might also like