You are on page 1of 7

Algoritmi

Noiuni introductive

1.Noiunea de algoritm.
Definiie: Prin algoritm se nelege o metod de soluionare a unei clase de probleme, reprezentat de o succesiune finit de operaii bine definite, numite instruciuni .

Primul algoritm se considera algoritmul lui Euclid (utilizat pentru determinarea celui mai mare divizor comun a doua numere naturale). Termenul de algoritm poate fi neles n sens larg nefiind neaprat legat de rezolvarea unei probleme cu caracter tiinific, ci doar pentru a descrie ntr-o manier ordonat activiti care constau n parcurgerea unei succesiuni de pai (cum este de exemplu utilizarea unui telefon public sau a unui bancomat).
n matematic exist o serie de algoritmi: cel al rezolvrii ecuaiei de gradul doi, algoritmul lui Eratostene (pentru generarea numerelor prime mai mici dect o anumita valoare), schema lui Horner (pentru determinarea ctului i restului mpririi unui polinom la un binom) etc.

Soluia problemei se obine prin execuia algoritmului. Algoritmul poate fi executat pe o main formal (n faza de proiectare i analiz) sau pe o main fizic (calculator) dup ce a fost codificat ntr-un limbaj de programare.

2. Caracteristicile unui algoritm

Generalitate. Un algoritm destinat rezolvrii unei probleme trebuie s permit obinerea rezultatului pentru orice date de intrare i nu numai pentru date particulare de intrare. Finitudine. Adic se termin dup un numr finit de pai, indiferent ct de muli. Claritate. Prelucrrile algoritmului trebuie specificate riguros, fr ambiguiti. n orice etap a execuiei algoritmului trebuie s se tie exact care este urmtoarea etap ce va executat. Eficien. Algoritmii pot fi efectiv utilizai doar dac folosesc resurse de calcul n volum acceptabil. Prin resurse de calcul se nelege volumul de memorie i timpul necesar pentru execuie.

Exemple 1. Nu orice problem poate rezolvat algoritmic.

a. Fiind dat un numr n s se determine toi divizorii si.


Pentru aceast problem se poate scrie un algoritm foarte uor. b. Fiind dat un numr n s se determine toi multiplii si.

Pentru aceast problem nu se poate scrie un algoritm deoarece nu cunoatem un criteriu de oprire a operaiilor.
2. Un algoritm trebuie s funcioneze pentru orice date de intrare. Fiind date numerele a, b, c s se afieze maximul dintre ele. O posibil soluie ar fi:

se compar a cu b i c i dac e mai mare se afieaz a, iar apoi


se compar b cu a i c i dac e mai mare se afieaz b, iar apoi se compar c cu b i a i dac e mai mare se afieaz c Algoritmul nu funcioneaz dac 2 valori sunt identice i de valoare maxim.

Exemple

3. Un algoritm trebuie sa se opreasc. Se consider urmtoarea secven de prelucrri: Pas 1. Atribuie variabilei x valoarea 1; Pas 2. Mreste valoarea lui x cu 2; Pas 3. Daca x este egal cu 100 atunci se oprete prelucrarea altfel se reia de la Pas 2. Este usor de observat ca x nu va lua niciodat valoarea 100, deci succesiunea de prelucrri nu se termin niciodat. Din acest motiv nu poate considerat un algoritm corect.
4. Prelucrrile dintr-un algoritm trebuie s fie neambigue. Consideram urmtoarea secven de prelucrri: Pas 1. Atribuie variabilei x valoarea 0; Pas 2. Fie se mrete x cu 1 fie se micoreaz x cu 1; Pas 3. Daca x aparine [-10; 10] se reia de la Pas 2, altfel se oprete algoritmul.

Exemple 5. Un algoritm trebuie s se opreasc dup un interval rezonabil de timp. Fiind dat un numr n se cere s se determine de cte ori a aprut o cifr c n reprezentarea tuturor numerelor naturale mai mici ca n. O rezolvare simpl ar fi s lum toate numere mai mici ca n i s vedem de cte ori apare cifra c n fiecare dinte ele. Soluia e simpl i pentru valori mici ale lui n algoritmul se termin ntr-un interval de timp rezonabil, dar pentru valori mari timpul de terminare al algoritmului crete nepermis de mult.

Paii realizrii unui algoritm


1. Citirea cu atenie a enunului problemei. 2. Identificarea datelor de intrare i a celor de ieire. 3. Rezolvarea propriu-zis a problemei pe cazuri particulare i reprezentative. n acest moment nu se ncearc scrierea programului ci doar determinarea metodei de rezolvare, generalizarea i nelegerea acesteia. 4. Descrierea n limbaj natural a soluiei problemei. Dac nu suntei capabili s descriei metoda folosit n limbaj natural e puin probabil s o putei face ntr-un limbaj de programare care e mai restrictiv dect limbajul natural. 5. Scrierea programului ntr-un limbaj de programare.

6. Testarea programului. Testarea se face pe mai multe seturi de date care s acopere cazurile posibile ce pot aprea.

You might also like