You are on page 1of 3

1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 ..

INFORMATICA

Tema 2. Algoritmi: caracteristici, reprezentare, implementare

Obiective
s recunoti un algoritm
s identifici caracteristicile algoritmilor
s identifici etapele algoritmilor

Fia de documentare 2.1. Etapele rezolvrii problemelor. Algoritmi.


Caracteristicile algoritmilor.

Algoritmi

Noiunea de algoritm este prezent azi n contexte diferite. Termenul algoritm


vine de la numele matematicianului persan Abu JaFar Mohamed ibn Musa al
Khowarizmi (circa 825 e.n.), care a scris o carte cunoscuta sub denumirea latina
de Liber algorithmi. Tot el a introdus denumirea de algebra n matematic.

n trecut, termenul de algoritm era folosit numai n domeniul matematicii, nsa


datorit dezvoltrii calculatoarelor, astzi gndirea algoritmic nu mai este un
instrument specific matematicii ci folosit n diverse domenii.

Prin algoritm nelegem o succesiune finit de operaii cunoscute care se


execut ntr-o succesiune logic bine stabilit astfel nct plecand de la un
set de date de intrare, s obtinem ntr-un interval de timp finit un set de date de
ieire.

Caracteristicile algoritmilor

Finitudine proprietatea algoritmilor de a furniza datele de ieire ntr-un


timp finit (adica dupa un numr finit de pai).

De exemplu, dac avem urmtoarea problem: Se citete un numr n natural.


S se efectueze operaia de extragere a radicalului i s se afieze rezultatul.
Aceast problem nu este un proces finit, deoarece nu s-a specificat precizia cu
care se va furniza rezultatul.

Claritatea - algoritmul trebuie s descrie operaiile clar i fr ambiguii.

2009 Giovanna Stanica


1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 .. INFORMATICA

Generalitatea proprietatea algoritmilor de a rezolva o intreag clas de


probleme de acelai fel.

De exemplu adunarea 2+8 este o problem care adun numai aceste dou
numere, ns dac elaboram o metod de rezolvare care va aduna a+b, unde a
i b pot avea orice valori ntregi, spunem ca am realizat un algoritm general.

Corectitudinea spunem c un algoritm este corect dac el furnizeaz n


mod corect datele de ieire pentru toate situaiile regsite n datele de intrare.

De exemplu, trebuie s evaluam expresia E=a/b+c. O succesiune de pai pentru


evaluarea expresiei este:

- se citete a, b, c
- se calculeaz a/b, apoi rezultatul se adun cu c.
- se atribuie lui E valoarea calculat
- se afieaz E

Acest algoritm NU furnizeaza rezultatul corect pentru toate valorile de intrare. n


cazul n care b=0, mprirea nu se poate efectua dar algoritmul nu verific acest
lucru.

Exist totui algoritmi care sunt coreci, clari, generali i furnizeaz soluia ntr-un
timp finit ns mai lung sau folosesc mai mult memorie dect ali algoritmi.
Aceasta nseamn c atunci cnd elaborm un algoritm, nu ne oprim la prima
soluie gsit. Vom ncerca s gasim algoritmi care s dea soluia ntr-un timp ct
mai scurt, cu ct mai puin memorie folosit. Cu alte cuvinte vom ncerca s
elaboram algoritmi eficieni.

Numim deci eficien - capacitatea algoritmului de a da o soluie la o


problema ntr-un timp de executie ct mai scurt, folosind ct mai puin memorie.

2009 Giovanna Stanica


1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 .. INFORMATICA

Etapele rezolvrii problemelor

Rezolvarea unei probleme este un proces complex, care are mai multe
etape.

1. Analiza problemei, pentru a stabili datele de intrare i de ieire.

2. Elaborarea unui algoritm de rezolvare a problemei.

3. Implementarea algoritmului ntr-un limbaj de programare.

4. Verificarea corectitudinii algoritmului implementat.

5. Analiza complexitatii algoritmului.

ETAPELEREZOLVRIIUNEIPROBLEME

Implementare
Analiza Elaborarea Verificare Analiza
nlimbaj de
problemei algoritmului corectitudine complexitii
programare

Toate aceste etape vor fi evidentiate pe algoritmii ce vor fi prezentai n fiele


de documentare urmtoare.

2009 Giovanna Stanica