Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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:
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.
6. Testarea programului. Testarea se face pe mai multe seturi de date care s acopere cazurile posibile ce pot aprea.