Professional Documents
Culture Documents
(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.
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.
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
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.