Documente Academic
Documente Profesional
Documente Cultură
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ă.