Documente Academic
Documente Profesional
Documente Cultură
a) Scriei numai antetul unui subprogram sub, care primete prin intermediul parametrului n
un numr natural de maximum 8 cifre, i care returneaz cel mai mare termen al irului de
mai sus mai mic sau cel mult egal cu n.
Exemplu: dac n=83 atunci subprogramul va returna valoarea 80. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural s (s10000000)
i determin un ir de numere distincte a cror sum este egal cu s, folosind apeluri utile
ale subprogramului sub. Numerele determinate se vor scrie n fiierul Numere.txt, pe
prima linie a acestuia, separate prin cte un spaiu.
Exemplu: dac valoarea citit de la tastatur este 63, atunci fiierul Numere.txt va
conine valorile urmtoare, nu neaprat n aceast ordine: 40 20 3. (6p.)
3. Scriei un program C/C++ care citete de la tastatur un numr natural n (n100) i apoi
cele n elemente, numere naturale cu cel mult 4 cifre fiecare, ale unui tablou unidimensional
a. Programul determin i afieaz pe prima linie a ecranului suma celor n elemente ale
tabloului, pe a doua linie a ecranului suma primelor n-1 elemente i aa mai departe astfel
nct pe linia n-1 se va afia suma primelor dou elemente, iar pe linia n primul element al
tabloului.
10
Exemplu: dac n=4, iar tabloul are elementele a=(1,2,3,4) programul
6
va afia valorile alturate. (10p.)
3
1
4. Fiierul BAC.TXT conine pe prima linie un numr natural n (0<n1000000) i pe a doua
linie, separate prin cte un spaiu, n numere naturale nenule (cu cel mult 7 cifre fiecare)
ordonate cresctor.
a) Scriei un program C/C++ care citete toate numerele din fiier i, utiliznd un algoritm
eficient din punct de vedere al memoriei utilizate i al timpului de executare, determin
pentru fiecare numr citit de pe a doua linie a fiierului, cea mai mic valoare mai mare sau
egal cu acesta ce reprezint o putere a lui 2. Un numr natural x este putere a lui 2 dac
exist un numr natural k astfel nct x=2k.
Numerele astfel determinate vor fi scrise pe ecran, separate prin cte un spaiu.
Exemplu: dac fiierul are coninutul de mai jos
5
3 5 8 9 12
pe ecran se va afia:
4 8 8 16 16 (6p.)
b) Descriei succint, n limbaj natural, algoritmul pe baza cruia a fost scris programul de la
punctul a), explicnd n ce const eficiena metodei folosite. (4p.)
4. n fiierul numere.txt sunt memorate cel puin 4 i cel mult 90 de numere ntregi cu cel
mult patru cifre fiecare, separate prin cte un spaiu. Scriei un program C/C++ care
afieaz pe ecran patru numere aflate pe poziii consecutive n fiier, care sunt n ordine
strict cresctoare. Dac exist mai multe astfel de secvene programul afieaz una dintre
acestea, iar dac n fiier nu exist astfel de secvene se afieaz mesajul NU EXISTA.
Exemplu: dac fiierul numere.txt conine, n aceast ordine, numerele 60 12 15 25
110 45 25 se vor afia numerele 12 15 25 110. (6p.)
3. Scriei definiia complet a unui subprogram i_prim care primete prin singurul su
parametru, n, un numr natural din intervalul [2,30000] i returneaz diferena minim
p2-p1 n care p1 i p2 sunt numere prime i p1np2.
Exemplu: dac n=20 atunci i_prim(20)=4, valoare obinut pentru p1=19 i p2=23.
(10p.)
4. Fiierul text BAC.TXT conine pe prima linie dou numere naturale, n i k, separate de un
spaiu (3n10000, 2kn/2), iar pe a doua linie un ir de n numere naturale, x1, x2, ..., xn,
separate prin cte un spaiu, fiecare numr din acest ir avnd cel mult patru cifre.
a) Scriei un program C/C++ care citete numerele din fiier i determin, utiliznd o metod
eficient din punct de vedere al timpului de executare, cel mai mic indice i (1in-k+1)
pentru care suma termenilor xi, xi+1, ..., xi+k-1 este maxim. Programul afieaz valoarea lui
i pe ecran.
Exemplu: pentru fiirul alturat se afieaz 2, deoarece suma 8 3
maxim se obine pentru 9+4+7. (6p.) 2 9 4 7 5 2 9 9
3. Scriei programul C/C++ care citete de la tastatur dou numere naturale nenule n i k
(n100, k100) i afieaz pe ecran, n ordine descresctoare, cei mai mici k multipli
naturali nenuli ai numrului n. . Numerele afiate sunt separate prin cte un spaiu.
Exemplu: pentru n=6 i k=5 se afieaz 30 24 18 12 6. (6p.)
4. a) Scriei definiia complet a unui subprogram sterge, cu trei parametri, care:
- primete prin parametrii:
- v un tablou unidimensional cu maximum 100 de elemente ntregi din intervalul [-1000;1000]
- n o valoare natural reprezentnd numrul de elemente din tabloul v
- i o valoare natural cu 1in
- elimin din tabloul v elementul v[i]i actualizeaz valoarea lui n.
Tabloul modificat este furnizat tot prin parametrul v. (10p.)
b) Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (1n100) i pe
urmtoarea linie n numere ntregi din intervalul [-1000;1000], separate prin cte un spaiu.
Scriei un program C/C++ care citete din fiierul NUMERE.IN numrul natural n,
construiete n memorie un tablou unidimensional v cu cele n numere ntregi aflate pe linia a
doua n fiier i utilizeaz apeluri utile ale subprogramului sterge pentru 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.IN are coninutul:
12
10 10 2 2 19 9 9 9 9 15 15 15 atunci se afieaz 10 2 19 9 15. (6p.)
Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Folosind un algoritm de generare putem obine numere naturale de k cifre care au suma
cifrelor egal cu un numr natural s. Astfel, pentru valorile k=2 i s=6 se genereaz, n
ordine, numerele: 15, 24, 33, 42, 51, 60. Care va fi al treilea numr generat pentru k=4 i
s=5? (4p.)
a. 1301 b. 1022 c. 2201 d. 1031
1. Care dintre urmtoarele variante reprezint antetul corect al unui subprogram care primete
prin parametrii x i y dou numere ntregi i returneaz, prin parametrul m, cea mai mic
dintre cele dou valori x i y? (4p.)
a. int minim(int x,int y,int m)
b. void minim(int x,int y,int &m)
c. int minim(int x,int y)
d. void minim(int x,int y,int m)
1. ntr-un penar sunt opt creioane: trei sunt roii, dou albastre i trei negre. Dac scoatem din
penar cinci creioane, cte posibiliti exist ca cel puin dou dintre ele s fie roii? (4p.)
a. 6 b. 12 c. 15 d. 20
4. a) Scriei n limbajul C/C++ doar antetul unui subprogram cif, care primete prin
intermediul primului parametru, nr, un numr natural cu cel mult 9 cifre i furnizeaz prin
intermediul celui de-al doilea parametru, s, suma cifrelor din scrierea lui nr. (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n (0<n<25), apoi
un ir de n numere naturale nenule cu cel mult 9 cifre fiecare i care 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=8 se citete irul de numere 274 56018 354 8219 293 287
932 634 atunci, pe ecran, se afieaz numerele 56018 8219. (6p.)
4. Fiierul text bac.in conine pe prima linie un numr natural n (0<n<5000), iar pe a doua
linie, separate prin cte un spaiu, n numere naturale, formate din cel mult 4 cifre fiecare.
Scriei un program C/C++ care determin i scrie n fiierul bac.out toate numerele de pe
a doua linie a fiierului care apar o singur dat pe aceast linie. Numerele determinate se
vor afia n ordinea cresctoare a valorilor lor, separate prin cte un spaiu.
Exemplu: dac pe prima linie a fiierului bac.in se afl 10, iar pe linia a doua se gsesc
numerele 2 4548 568 4548 57 89 5974 2 89 32 atunci valorile cutate sunt 32 57
568 5974. (10p.)
4. Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (n<=100)
i apoi cele n numere naturale nenule, de maximum 4 cifre, reprezentnd elementele unui
tablou unidimensional v (cu indici de la 1 la n) i afieaz cte dintre elementele vi
(2in-1) sunt egale cu suma celor dou elemente vecine. n cazul n care nu exist
niciun astfel de element n tabloul v, se va afia valoarea 0.
Exemplu: dac n=7 i tabloul unidimensional v are 10 25 15 45 30 2 1
coninutul alturat, atunci se va afia valoarea 2
(deoarece 25=10+15, 45=15+30). (10p.)
1. Problema generrii tuturor codurilor formate din exact 4 cifre nenule, cu toate cifrele
distincte dou cte dou, este similar cu generarea tuturor: (4p.)
a. aranjamentelor de 9 elemente luate cte b. permutrilor elementelor unei mulimi cu
4 4 elemente
c. elementelor produsului cartezian d. submultimilor cu 4 elemente ale mulimii
AxAxAxA unde A este o mulime cu 9 {1,2,3,4,5,6,7,8,9}
elemente
3. Scriei n C/C++ definiia complet a subprogramului medie, care are doi parametri:
- n, prin care primete un numr natural (1n100) ;
- v, prin care primete un tablou unidimensional cu n elemente, fiecare element avnd cel
mult patru cifre.
Funcia returneaz media aritmetic a elementelor impare din tablou sau valoarea 0 dac, n
tablou, nu exist elemente impare. (10p.)
4. Fiierul text NUMERE.IN conine, pe mai multe linii, cel mult 30000 de numere naturale
nenule mai mici sau egale cu 500, numerele de pe fiecare linie fiind desprite prin cte un
spaiu.
a) Scriei programul C/C++ care afieaz pe ecran, n ordine cresctoare, toate numerele
care au aprut o singur dat n fiierul NUMERE.IN, desprite prin cte un spaiu.
Exemplu: dac fiierul NUMERE.IN conine numerele scrise alturat, se vor 2 23 34 3
afia valorile urmtoare: 3 4 5 6 34 . (6p.) 8 9 9 23
6 8 9 2
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul a) 4 5 23 9
(3 4 rnduri). (4p.)
3. Funcia verif primete prin intermediul a trei parametri, notai a, b i c, trei valori naturale
nenule, fiecare de maximum patru cifre. Funcia returneaz valoarea 1 dac cele trei valori
pot constitui laturile unui triunghi i valoarea 0 n caz contrar.
a) Scriei definiia complet a funciei verif. (5p.)
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
congruente dac cele dou triunghiuri sunt congruente sau mesajul necongruente dac
cele dou triunghiuri nu sunt congruente; dac cel puin unul dintre cele dou triplete de
valori nu pot constitui laturile unui triunghi, programul va afia pe ecran mesajul nu. (5p.)
4. Fiierul text BAC.DAT conine pe prima linie, separate printr-un spaiu, dou valori naturale n
i m (2n1000, 2m1000), pe a doua linie n valori ntregi, apoi pe urmtoarele m linii cte
dou valori, fiecare dintre aceste perechi determinnd un interval nchis (prin interval nchis
determinat de dou valori a i b se nelege intervalul [a,b], dac ab sau intervalul
[b,a], dac b<a). Valorile de pe a doua i de pe urmtoarele m linii sunt separate ntre ele
prin cte un spaiu i au cel mult 4 cifre fiecare.
Se cere determinarea i afiarea pe ecran a numrului de intervale, dintre cele citite din
fiier, care conin toate valorile aflate pe a doua linie a fiierului. Se va utiliza o metod
eficient din punct de vedere al timpului de executare i al memoriei utilizate.
Exemplu: dac fiierul BAC.DAT are coninutul 10 4
alturat, programul va afia: 2 8 3 -11 17 -8 3 14 5 0 -2
Explicaie: din cele patru intervale date pe liniile 3, 4, 5 -10 100
i 6, numai dou conin toate valorile de pe a doua -20 50
15 -80
linie a fiierului i anume [-20,50] i [-11,20].
20 -11
a) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)
b) Scriei un program C/C++ care s rezolve problema conform metodei descrise. (6p.)