Sunteți pe pagina 1din 7

Algoritmi

Noiuni introductive
Data 1-XII-2008
Clasa: a VIII-a
Disciplina: INFORMATICA-OPTIONAL
Profesor: Ghena Mihaela
ScoalaUngheni cu clasele a I-VIII-a
Jud Arges
1.Noiunea de algoritm.
Def. 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 a 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.
Rigurozitate. 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.

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