Sunteți pe pagina 1din 1

Nume…………………………………….

Test

1. Fie funcţia: (2p)


Function a(x:integer):integer;
Begin
If x<=1 then a:=x
Else a:=2*a(x-1)-a(x-2);
End;
a. Ce valoare va avea expresia: a(3)*a(40)…………………………………………..
b. Modificaţi funcţia astfel încât să eliminaţi recursivitatea
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
………………………………………………………………………………………………………………
2. Care din următoarele afirmaţii sunt false şi care sunt adevărate. Justificaţi răspunsul! (3p)
a. Subprogramele ce implementează metoda divide-et-impera sunt recursive.

………………………………………………………………………………………………………………
b. Parametrii transmişi prin referinţă pot fi constante

………………………………………………………………………………………………………………
c. Parametrii transmişi prin valoare nu pot fi modificaţi în interiorul subprogramului.

………………………………………………………………………………………………………………
d. Orice funcţie trebuie să aibă cel puţin un parametru

………………………………………………………………………………………………………………
e. Recursivitatea este o metodă de programare avansată

………………………………………………………………………………………………………………

f. Nici un tablou nu poate conţine mai mult de 32767 de elemente.

………………………………………………………………………………………………………………
3. Descrieţi succint metoda divide-et-impera. (1p)

4. Scrieţi un program care determină numărul de apeluri ale funcţiei de la punctul 1 pentru calcularea
valorii a(k), unde k se citeşte de la tastatură. (1.5p)

5. Scrieţi un subprogram care folosind metoda divide-et-impera determină numărul de vocale aflate
într-un şir de caractere transmis ca parametru. (1.5p)

S-ar putea să vă placă și