Un algoritm are următoarele proprietăți:
- Finitudine: trebuie să se termine după un număr limitat de pași. Dacă un algoritm ar avea un număr infinit de pași, atunci nu ar putea da o rezolvare pentru problema respectivă pentru că nu s-ar putea executa toate instrucțiunile.
- Generalitate: algoritmul trebuie să rezolve toate problemele de același tip.
- Claritate: algoritmul trebuie să fie descris clar fără ambiguități. La fiecare pas trebuie precizat exact ce trebuie făcut și care este următorul pas care se va realiza.
- Dacă o descriere a unei metode de rezolvare a unei probleme încalcă una dintre aceste proprietăți, atunci acea descriere nu poate fi considerată algoritm.
- Algoritmul poate fi aplicat de o persoană pentru executarea unei activități sau poate fi scris într-un limbaj special numit limbaj de programare, care poate fi înțeles și executat de computer.
Exemple de algoritmi: calculul mediei a două numere naturale
- Pasul 1: se citesc cele două numere a și b.
- Pasul 2: se calculează suma celor două numere.
- Pasul 3: se împarte suma celor două numere la 2.
- Pasul 4: se afișează rezultatul.
Algoritmul de mai sus este:
- Finit, pentru că are patru pași.
- General, pentru că funcționează pentru orice numere.
- Clar, pentru că la fiecare pas este descris clar ce trebuie făcut.
Pentru expresia: x+5=7
- Pasul 1: x+5=7.
- Pasul 2: x=7-5.
- Pasul 3: x=2.
Această descriere nu poate fi considerată algoritm pentru că un algoritm trebuie să rezolve toate problemele în care la x se adună un număr (a) și se obține un al doilea număr (b).
Pentru a descrie un astfel de algoritm, pașii sunt:
- Pasul 1: se citește a și b.
- Pasul 2: x=b-a.
- Pasul 3: se afișează x.
Pe lângă cele trei proprietăți (generalitate, claritate și finitudine), algoritmii mai trebuie să fie:
- Eficienți – adică trebuie să se termine după un număr mic de pași, folosind un minim de memorie. De exemplu, pentru a calcula prețul a 50 de înghețate știind că o înghețată costă 2 lei, se poate înmulți 2x50=100 sau aduna 2+2+2+2…+2 de 50 de ori. Prima variantă este mai eficientă.
- Implementabil - algoritmul trebuie să poată fi transcris într-un limbaj de programare.
Un algoritm trebuie să îndeplinească următoarele proprietăți pentru a fi considerat valid: finitudine, generalitate, claritate, eficiență și implementabilitate. Acestea asigură că algoritmul poate fi executat în mod eficient și fără ambiguități, oferind soluții precise pentru problemele adresate.
Atunci când elaborăm un algoritm trebuie să fim foarte atenți la formulări, astfel încât să fie asigurate proprietățile algoritmului. Să analizăm niște cazuri de formulări nepotrivite.
A. Dacă ninge, stau acasă sau merg la
teatru.
Se poate stabili ce va face cel care a
enunțat această frază?
Răspuns: Nu.
De ce?
În acest caz, „sau” induce ambiguitate,
nefiind clar ce acțiune trebuie întreprinsă
dacă este îndeplinită condiția enunțată.
Deci formularea este lipsită de claritate,
ambiguă.
O formulare clară ar fi fost: Dacă ninge sau
dacă sunt obosit, stau acasă. În acest caz
este evident ce acțiune voi întreprinde.
B. Scrieți numerele naturale pare
În cât timp veți reuși să o rezolvați?
Răspuns: Niciodată!
De ce?
Pentru că scriind numerele naturale în ordinea în care apar pe axa lor, înșiruirea acestora nu se va mai termina.
Concluzia este că această formulare a sarcinii este lipsită de finitudine.
O formulare corectă ar fi fost: Scrieți numerele naturale pare mai mici decât 1000.
În acest caz știam unde să ne oprim.
C. un vârf de cuțit de sare Cât înseamnă „un vârf de cuțit de sare”? Răspuns: Nu știm. De ce? Persoane diferite vor aprecia diferit această cantitate. Prin urmare, un produs rezultat urmând o rețetă ce conține această formulare diferă în funcție de cantitatea de sare cuprinsă în acel „vârf de cuțit”. Concluzia este că dacă gândim rețeta culinară ca pe un algoritm, atunci nu este îndeplinită proprietatea de unicitate a acestuia.
Test Quizz - Algoritmi
1. Ce este un algoritm?
2. Care dintre următoarele caracteristici definește un algoritm corect?
3. Ce trebuie să facem înainte de a încarca cu cerneală un stilou cu pompiță?
4. Cum poate fi clarificată propoziția „Trimiteți mașina Anei”?
5. Care dintre următoarele enunțuri posedă caracteristica finitudine?