Sunteți pe pagina 1din 2

1. Să se determine elementul minim dintr-un şir de numere, folosind un algoritm Divide et Impera.

2. Scrieţi un program care, folosind un algoritm Divide et Impera, determină cel mai mare divizor
comun a n numere naturale citite de la tastatură.
3. Se dă un număr natural x. Să se scrie un algoritm Divide et Impera care calculează partea întreagă a
radicalului lui x. Nu se va folosi funcţia sqrt.
4. Se citesc de la tastatură numele şi salariile celor n angajaţi ai unei firme. Scrieţi un program care
afişează salariul cel mai mic şi salariul cel mai mare din firmă, determinat cu ajutorul unui algoritm
Divide et Impera.
5. Se citeşte de la tastatură un şir neordonat de n numere naturale. Determinaţi prin metoda Divide et
Impera toate poziţiile pe care apare în şir o valoare dată x. Dacă numărul x nu se găseşte în şir,
programul va afişa mesajul Nu există.
6. Folosind metoda Divide et Impera, să se implementeze un algoritm recursiv de înmulţire a n numere
naturale date x1, x2, ..., xn.
7. Folosind un algoritm Divide et Impera, să se calculeze valoarea unui polinom P(x) într-un punct a.
De la tastatură se citesc gradul polinomului n, precum şi cei n coeficienţi.
8. Folosind metoda Divide et Impera, să se calculeze n!, unde valoarea lui n se citeşte de la tastatură.
9. Considerăm un şir de n numere întregi, ordonat crescător şi un număr întreg x. Scrieţi un algoritm
care împarte şirul dat în două subşiruri în aş fel încât toate elementele primului şir să fie mai mici sau
cel mult egale cu x, iar toate elementele celui de-al doilea şir să fie strict mai mari decât x.
10. Sa se verifice daca o valoare data x se găsește intr-un vector ordonat v cu n elemente numere întregi.
11. Se citește un vector cu n elemente numere naturale. Sa se calculeze suma elementelor vectorului
folosind Divide et Impera.
12. Se citește un vector cu n elemente numere naturale. Sa se determine elementul minim din vector
folosind Divide et Impera.
13. Scrieți o funcție minmax care sa determine elementul minim si maxim al unui tablou cu elemente
întregi folosind metoda Divide et Impera.
14. Se citește un număr real x. Sa se calculeze radical de ordinul 3 din x folosind un algoritm de tip
Divide et Impera.
15. Sa se rezolve ecuația x^3+x-1=0 pe intervalul [0,1] folosind metoda Divide et Impera.
16. Folosind metoda Divide et Impera, scrieți o funcție care sa determine daca un tablou cu elemente
întregi este ordonat crescător.
17. Se dau doua numere naturale a si b care satisfac condiția b-a<a<b, reprezentând dimensiunile unui
dreptunghi. Exista doua modalități de a descompune acest dreptunghi in doua pătrate si un
dreptunghi:
- doua pătrate de laturi a si respectiv b-a si un dreptunghi de laturi b-a si 2a-b
- doua pătrate de laturi a/2 si un dreptunghi de laturi b-a/2 si a
- Fiecare dreptunghi poate fi descompus mai departe in același mod pana când se obține un
dreptunghi care nu se mai poate descompune. Scrieri un program care determina un sir de
descompuneri in urma căruia să rezulte un număr minim de figuri care nu mai pot fi descompuse.
Se vor afișa la fiecare pas dimensiunile fisurilor rezultate, in ordinea in care apar.
18. Se citește de la tastatura un sir cu n elemente numere întregi. Se cere sa se găsească elementul aflat
pe o poziție k data in șirul ordonat, fără a efectua ordonarea.
19. Turnurile din Hanoi
20. Să se ordoneze un șir de numere întregi folosind metode de sortare Quick Sort.
21. Să se ordoneze un șir de numere întregi folosind metode de sortare prin interclasare.
22. Scrieti o functie care inverseaza un sir de caractere, folosind tehnica Divide Et Impera.
23. Scrieti un program prin care calculatorul sa ghiceasca din cat mai putine incercari un numar natural
[1..10000] la care va ganditi in prealabil. Atunci cand calculatorul propune un nr, ii raspundeti cu 1
daca nr este prea mare, cu -1 daca e prea mic si cu 0 daca a ghicit.

24. Se citesc numele si inaltimile a n persoane. Sa se afiseze persoanele avand inaltimea mai mare sau
egala cu un h citit. Sa se ordoneze crescator persoanele dupa inaltime. Sa se afiseze o persoana avand
o inaltime data. Daca nu exista o astfel de persoana se va afisa un mesaj.
25. Se citesc lungimea si latimea unui dreptunghi. Dreptunghiul se perpendicular pe latura mai mare in
doua. Apoi dreptunghiul astfel obtinut se taie in doua dupa latura mai mare si asa mai departe. Sa se
determine daca prin taieri succesive a dreptunghiurilor astfel obtinute se poate ajunge la un patrat cu
latura mai mare decat un epsilon citit.
26. Fie un vector cu n elemente. Se imparte vectorul in doua parti. In jumatatea din stanga, elementele se
vor micsora cu 1, iar elementele din jumatatea dreapta se maresc cu 1. Daca vectorul are numar
impar de elemente, elementul din mijloc ramane nemodificat. Se repeta operatiunea cu jumatatile de
vector, pana cand se ajunge la portiuni de vector cu un singur element. Sa se afiseze configuratia
finala a vectorului.
27. Se da un vector cu n numere intregi. Se imparte tabloul in 3 subgrupe, cat mai echilibrate ca
dimensiune, eliminandu-se in fiecare grup mijlocul sau mijloacele (pentru nr. par de elemente). Se
repeta procedeul pentru fiecare din cei 6 subvectori obtinuti. Procedeul se repeta de p ori. Sa se
afiseze vectorul obtinut dupa terminarea algoritmului.
28. Se considera un patrat format din 2n x 2n patratele unitare. Fiecare patratel trebuie codificat printr-un
sir de n cifre din multimea {1,2,3,4}, astfel:
-          toate codurile din patratul din stanga-sus (patrat cu latura egala cu jumatate din latura patratului
mare) au prima cifra egala cu 1; codurile din patratul din dreapta-sus au prima cifra 2; cele din
patratul din dreapta-jos au prima cifra 3 si cele din stanga-jos au prima cifra 4
-          oricare din cele 4 patrate definite anterior poate fi impartit in 4 subpatrate, a doua cifra a codurilor
fixandu-se 1,2,3 sau 4, dupa cum subpatratul este situat in stanga-sus, dreapta-sus, dreapta-jos sau
stanga-jos
-          operatiunea de divizare a subpatratelor in alte subpatrate se incheie cand s-a ajuns la un patrat cu
latura 1.
Realizati un program care scrie in fisierul careu.txt, pe linii, codurile corespunzatoare patratului de latura
2n, n citit de la tastatura.

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