Sunteți pe pagina 1din 3

Subiecte pentru lucrare de laborator

la tema: Recursivitate, 2018


LUCRAREA DE LABORATOR №
Tema: Recursivitate
1. Să se scrie o funcţie recursivă pentru a determina suma primilor n termeni ai şirului Fibonacci.
Şirul Fibonacci se defineşte astfel:
X0 = 0; X1 =1; Xn =Xn-1 + Xn-2 ( n  2).
2. Să se scrie o funcţie recursivă care verifică dacă un şir de caractere S conţine cel puţin o cifră.

3. Scrieţi o funcţie recursivă care calculează suma S(n) = 1 + 3 + 5 +...+ (2n-1).

4. Să se scrie o funcţie recursivă pentru a determina un element de lungime maximală dintr-un


tablou unidimensional cu n componente de tip String.
5. Se consideră un număr natural K. Să se scrie o funcţie recursivă pentru a determina cel mai
mic număr al şirului Fibonacci care î-l depăşeşte pe K.
Şirul Fibonacci se defineşte astfel: X0 = 0; X1 =1; Xn =Xn-1 + Xn-2 ( n  2).
6. Să se scrie o funcţie recursivă pentru a determina suma elementelor pare ale unui tablou
unidimensional cu n elemente reale.
7. Scrieţi o funcţie recursivă care calculează produsul P(n) = 1* 4*7*...* (3n-2).
8. Să se scrie o funcţie recursivă care cercetează existenţa unui caracter x într-un şir de
caractere S.
9. Să se scrie o funcţie recursivă pentru a determina produsul elementelor negative ale unui
tablou unidimensional cu n elemente reale.
10. Să se scrie o funcţie recursivă pentru a determina valoarea an, unde a-număr real pozitiv, n-
număr întreg.
11. Să se scrie o funcţie recursivă pentru a inversa un şir de caractere S.
12. Să se scrie o funcţie recursivă pentru a determina suma cifrelor unui număr natural k.
13. Să se scrie o funcţie recursivă pentru a determina produsul elementelor impare ale unui tablou
unidimensional cu n elemente reale.
14. Cuvintele cuv1 şi cuv2 sunt anagrame dacă ele sunt formate din aceleaşi litere dar puse în
altă ordine. De exemplu, SERENADA este anagramă pentru RESEDANA. Să se scrie o funcţie
recursivă care va verifica dacă cuvintele date cuv1 şi cuv2 sunt anagrame unul pentru altul.
15. Să se scrie o funcţie recursivă pentru a determina numărul de combinări conform relaţiilor:
m 1 nm 1
C 0n =1, C 1n = n, C m
n = Cn pentru 1<m<n.
m
16. Să se scrie o funcţie recursivă care returnează valoarea true dacă şirul de caractere S este
format numai din cifre.
17. Să se scrie o funcţie recursivă care afişează pe ecran elementele pozitive ale unui tablou
unidimensional cu n elemente reale.
18. Se consideră un tablou unidimensional A[1..n] cu elemente de tip Char. Elaboraţi un
subprogram recursiv care va afişa următoarea configuraţie:
a[n] a[n-1] a[n-2] … a[2] a[1]

a[n] a[n-1]
a[n]
a[1]
a[1] a[2]

a[1] a[2] a[3] … a[n-1] a[n]

1
19. Să se scrie o procedură recursivă care afişează pe ecran elementele impare ale unui tablou
unidimensional cu n elemente reale.

20. Să se scrie un program care determină cel mai mare divizor comun a trei numere întregi a, b
şi c, definind o funcţie recursivă pentru a determina cel mai mare divizor comun a două numere
întregi x şi y.
21. Se consideră un număr natural K. Să se scrie o funcţie recursivă pentru a determina cel mai
mic număr al şirului Fibonacci care î-l depăşeşte pe K.
Şirul Fibonacci se defineşte astfel: X0 = 0; X1 =1; Xn =Xn-1 + Xn-2 ( n  2).
22. Să se scrie o funcţie recursivă pentru a determina un element de lungime minimală dintr-un
tablou unidimensional cu n componente de tip String.
23. Scrieţi o funcţie recursivă care calculează suma S(n) = 2 + 5 + 8 +...+ (3n-1).
24. Se consideră un tablou unidimensional A[1..n] cu elemente de tip Char. Elaboraţi un
subprogram recursiv care va afişa următoarea configuraţie:
a[1] a[2] a[3] … a[n-1] a[n]

a[1] a[2]
a[1]
a[n]
a[n] a[n-1]

a[n] a[n-1] a[n-2] … a[2] a[1]
25. Găsiţi ce mai scurtă cale a calului pe tabla de şah de pe un câmp pe altul.
26. Se consideră o matrice binară T[1..n, 1..m]. Să se compună un program recursiv care va
determina numărul de “insuliţe” formate din elementele egale cu 1. Dacă două cifre de 1 sunt
vecine pe linie sau coloană, atunci aparţin aceleiaşi “insuliţe”.
De exemplu, în matricea
0 1 0 1 1 0

1 0 0 0 1 0

0 1 1 0 1 1

1 1 1 0 1 0

0 1 0 0 1 0
avem patru “insuliţe”
27. Se consideră o bucată de material de dimensiunea N*1. Să se compună o procedură recursivă,
care va afişa toate modurile posibile de a tăia bucata de material, astfel încât fiecare parte să
aibă lungimea 1 sau 2, ştiind că lungimea N este exprimată printr-un număr natural. De
exemplu, pentru N=3, va afişa:
111
12
21
28. Se consideră matricea A[1..n, 1..m] cu elemente numere naturale, precum şi numărul liniei L şi
numărul coloanei C a unui element al ei. Să ne imaginăm că peste acest element curge vopsea
care se prelinge peste elementul vecin dacă valoarea acestuia nu depăşeşte valoarea
elementului deja vopsit. Prelingerea are loc în direcţie verticală şi orizontală, dar nu ţi pe
diagonală. Alcătuiţi o procedură recursivă care ar determina elementele vopsite pornind de la
elementul iniţial (L,C). Rezultatul vopsirii să fie extras, marcând elementele vopsirii cu
caracterul ’*’.
29. Se dă o fotografie specificată printr-o matrice pătratică care conţine 0 şi 1(0 pentru punctele
albe, 1 pentru punctele negre). Se consideră fondul alb, obiectele negre, iar dacă două puncte
2
negre sunt vecine pe linie, coloană sau diagonală, atunci aparţin aceluiaşi obiect. Să se
compună un program recursiv care va număra câte obiecte distincte apar în fotografie.
Scrieţi o procedură recursivă care pentru a căuta un cuvânt într-un vector de cuvinte, care sunt
puse în ordine alfabetică.

Metoda reluării (backtracking)


31. Implementaţi recursiv un program care aşează pe o tablă de şah cu n2 pătrate, n regine astfel
încât să nu existe două care nu se ameninţă. Să se genereze toate configuraţiile.
32. Problema săriturii calului. Să se realizeze un program care tipăreşte drumul parcurs de un
cal pe o tablă de şah de dimensiunea m*n pentru a parcurge toate poziţiile tablei fără a trece de
două ori printr-o poziţie.
33. Problema celor n regine. Să se scrie un program care să determine poziţiile pe tabla de şah de
dimensiunea n*n c n regine, astfel încât ele să nu se poată captura.(În şah, o regină capturează
orice piesă care se găseşte pe linia, pe coloana sau pe una din cele două diagonale ce trece prin
poziţia ocupată de regină).

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