Sunteți pe pagina 1din 2

Nume i prenume

31.08.2015

Examen de corigen
Disciplina Informatic clasa a X-a

Punctajul total este de 10 puncte din care 1 punct din oficiu


Timpul de lucru este de 75 de minute

1. Scriei definiiile complete ale urmtoarelor subprograme, respectnd specificaiile indicate.


a) (1.2p) Subprogramul subnumr care primete ca parametri dou valori ntregi x i y i
returneaz de cte ori y se gsete printre cifrele numrului x.
Ex: pentru x=4125126 i y=12 se va afia 2.
b) (1.2p) Subprogramul divizori care primete ca parametru un numr natural x i returneaz
prin intermediul parametrului s suma divizorilor proprii impari ai lui x.
Ex: pentru x=135 se va afia 99.
c) (1.2p) Numim kpereche ntr-un vector o succesiune continu de k valori mrginite de dou
valori egale ntre ele. Scriei subprogramul kpereche care primete ca parametri un vector v
de numere ntregi, dimensiunea acestuia n, o valoare ntreag k (k<9) i returneaz prin
intermediul parametrului ct numrul de kperechi existente n vector.
Ex: pentru n=15 k=3

variabila ct va reine valoarea 3.


2. (0.6p) Se consider secvena de program de mai jos. tiind c n urma executrii acesteia s-a
afiat succesiunea de caractere *in$d$*es$t$r$*uc$t$*ib$*il$ stabilii care era irul de caractere
iniial?
char s[50],voc[]=aeiou;
gets(s);
for(int i=0;i<strlen(s);i++)
if(strchr(voc,s[i]))
cout<<*<<s[i];
else
cout<<s[i]<<&;
3. (1.2p) Se consider un text cu cel mult 100 de caractere, n care cuvintele sunt formate numai din
litere mari i mici ale alfabetului englez i sunt separate prin cte un spaiu. Textul reprezint
numele unei instituii sau organizaii. Scriei un program C++ care citete de la tastatur un text
de tipul precizat i construiete n memorie, apoi afieaz pe ecran un ir de caractere ce
reprezint acronimul corespunztor numelui citit. Acronimul este format din primul caracter al
fiecrui cuvnt care ncepe cu majuscul. De asemenea se va afia i cte vocale conine
acronimul obinut.
Ex: dac irul citit este Universitatea de Arte Plastice Bucureti se va obine UAPB.
Acronimul conine dou vocale.
4. Analizai subprogramul recursiv dat mai jos.
int f(int x)
{
int c;
if(x==0) return 0;
else
return x+f(x-1);
}

a) (0.8p) Scriei rezultatul obinut n urma apelurilor funciei cu


valorile indicate.
f(4)=
f(100)=
b) (0.6p) Rescriei subprogramul alturat, modificndu-l, astfel
nct s afieze produsul valorilor impare mai mici ca x.

5. (0.6p) Structura cu numele CARTE permite memorarea unui numr real reprezentnd preul unei
cri i a unui ir de caractere reprezentnd titlul crii (max 50 de caractere). Scriei o definiie a
structurii descrise mai sus i declarai o variabil de tip tablou unidimensional de tipul acestei
structuri. Apoi scriei o instruciune prin care s mrii cu 10 preul tuturor crilor al cror titlu
este mai lung de 20 de caractere.
6. (0.6p) Folosind metoda Divide et Impera scriei un subprogram care s calculeze suma numerelor
pare dintr-un interval [a,b], unde valorile a i b sunt considerate globale n program.