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 recursive implementează întotdeauna recursivitatea directă.

………………………………………………………………………………………………………………
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 recursivitatea. (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 un algoritm recursiv determină numărul de vocale aflate într-un
şir de caractere transmis ca parametru. (1.5p)

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