V10 S3 P4

Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (n≤100) şi apoi
cele n elemente, numere naturale cu cel mult 4 cifre fiecare, ale unui tablou unidimensional
a. Programul determină şi afişează pe prima linie a ecranului suma celor n elemente ale
tabloului, pe a doua linie a ecranului suma primelor n-1 elemente şi aşa mai departe astfel
încât pe linia n-1 se va afişa suma primelor două elemente, iar pe linia n primul element al
tabloului.

Exemplu: dacă n=4, iar tabloul are elementele a=(1,2,3,4) programul
va afişa valorile alăturate.

10
6
3
1

V9 S3 P3

Se consideră definite două subprograme:
– Subprogramul s1, cu 3 parametri, care primeşte prin intermediul parametrului a un tablou
unidimensional cu exact 100 de elemente, numerotate de la 0 la 99, numere întregi de cel
mult 4 cifre fiecare, iar prin intermediul parametrilor p şi q (0≤p<q<100) poziţiile a două
elemente ale tabloului. Subprogramul furnizează prin intermediul parametrului p poziţia
primului element par (dacă există), şi prin intermediul parametrului q poziţia ultimului
element impar (dacă există), din secvenţa ap,ap+1, …, aq. Dacă această secvenţă nu
conţine niciun element par subprogramul va furniza prin intermediul lui p valoarea -1, iar
dacă nu conţine niciun element impar, va furniza prin intermediul lui q valoarea -1.

– Subprogramul s2, cu doi parametri, a şi b, două numere întregi cu cel mult 4 cifre fiecare;
subprogramul interschimbă valorile a două variabile transmise prin intermediul parametrilor
a şi b.
a) Scrieţi numai antetul subprogramului s2.

b) Scrieţi definiţia completă a subprogramului s1.

c) Scrieţi un program C/C++ care:
– citeşte de la tastatură un număr natural nenul n (0≤n<100), apoi cele n elemente ale unui
şir a. Fiecare dintre aceste elemente este un număr întreg cu cel mult 4 cifre şi cel puţin un
element al şirului este par;
– determină rearanjarea elementelor şirului astfel încât toate valorile pare să fie plasate la
sfârşitul şirului a, folosind apeluri utile ale subprogramelor s1 şi s2;
– scrie elementele şirului rezultat în urma acestei transformări pe o singură linie a fişierului
text BAC.TXT, separate prin câte un spaţiu.

Exemplu: pentru n=5 şi a=(2,3,4,7,5) fişierul ar putea avea conţinutul:
7 5 3 4 2.

Punctul a)

Punctul b)

Punctul c)

V8 S3 P3

Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (n≤50) şi care
afişează pe prima linie a fişierului BAC.TXT primele n numere pare, pe a doua linie primele
n-1 numere pare, …, pe linia n primul număr par. Numerele vor fi afişate pe fiecare linie în
ordine crescătoare şi vor fi separate prin câte un spaţiu. (10p.)

Exemplu: dacă n=3 fişierul BAC.TXT va avea conţinutul alăturat.
0 2 4
0 2
0

V7 S3 P3

Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (0<n≤100) şi cele
3*n elemente ale tabloului unidimensional v, numere naturale cu cel mult patru cifre fiecare.
Tabloul este împărţit în trei zone, cu câte n elemente fiecare: prima zonă conţine primele n
elemente din tablou, a doua zonă conţine următoarele n elemente din tablou, restul
elementelor fiind în zona a treia. Programul va interschimba elementele zonei unu cu
elementele zonei trei şi va afişa pe ecran toate elementele tabloului, astfel transformat,
separate prin câte un spaţiu.

De exemplu, pentru n=3 şi v=(1 2 3 4 5 6 7 8 9), se va afişa pe ecran :
7 8 9 4 5 6 1 2 3

V6 S3 P3

Se consideră definite următoarele subprograme:
– s1, cu doi parametri: a, b două numere întregi cu cel mult 4 cifre fiecare; subprogramul
interschimbă valorile a două variabile transmise prin intermediul parametrilor a şi b.
– s2, cu trei parametri: a, un tablou unidimensional cu exact 100 de elemente, numere
întregi cu cel mult 4 cifre fiecare, p, un număr natural (p≤100), q, un număr natural
(q≤100). Subprogramul caută primul element divizibil cu 5 în secvenţa ap,ap+1, …, aq,
şi returnează poziţia acestuia, dacă există un astfel de element, sau valoarea -1 în caz
contrar.
a) Scrieţi numai antetul subprogramului s1.

b) Scrieţi definiţia completă a subprogramului s2.

c) Scrieţi programul C/C++ care citeşte de la tastatură o valoare naturală n (0<n≤100) şi
apoi un tablou unidimensional a, cu n elemente, numere întregi cu cel mult 4 cifre fiecare.
Programul determină, folosind apeluri utile ale subprogramului s2, primul element divizibil
cu 5 (dacă există) şi ultimul element divizibil cu 5 (dacă există) al tabloului a, interschimbă
valorile elementelor găsite, folosind apelul subprogramului s1, şi apoi scrie pe prima linie a
fişierului text BAC.TXT elementele tabloului a, astfel transformat, separate prin câte un
spaţiu, sau valoarea 0 dacă tabloul conţine mai puţin de două elemente divizibile cu 5.

Exemplu: pentru n=7 şi tabloul a=(6,10,4,15,2,5,8), programul va scrie în fişier:
6 5 4 15 2 10 8

Punctul a)

Punctul b)

Punctul c)