marți, 29 ianuarie 2019

De ce algoritmi?

    Un prim "hop" când începi să  înveți informatică este noțiunea de algoritm,la început poate părea ceva abstract mai ales felul în care este reprezentat,în special pseudocod,dar nu este chiar așa.
    Algoritmii la fel cum îți poți da seama din nume sau poate chiar ai auzit de această sintagmă,este un "set de reguli" ce determină etape în rezolvarea unei anumite probleme.
O definiție mai riguroasă a noțiunii de algoritm se poate găsi aici.

Principal ce ar trebui să reți tu ca un neofit în acest domeniu numit generic informatică,este faptul că un algoritm descrie modul de rezolvare a unei probleme incluzând specific pași ce trebuie urmați înspre a ajunge la o soluție,foarte important aspect.

Deși descrierea pare simplă și poți spune "algoritmii sunt chiar banali",ar trebui să nu te pripești totuși,algoritmii în esență ca scop al lor sunt ușor de înțeles dar totuși adevărata problemă vine la implementare și chiar eficentizarea acestuia.
Așa că vom parcurge algoritmii în acest articol doar așa ca să stabilim o cunoaștere amicală.

1.Proprietăți ale unui algoritm

Un algoritm are anumite proprietăți fundamentale,pe care trebuie să le respectăm și ve-ți observa cu ușurință de ce și poate va fi clar de ce informatica este definită în esență ca știința ce rezolvă probleme cu ajutorul unui sistem de calcul.

 a) Finitudinea - orice algoritm(descriere a soluției unei probleme) trebuie să aibă un final ,este logic în primă fază deoarece nimic nu este infinit plus ca noi nu trăim infinit astfel nu putem aștepta chiar atât după o soluție.

b)Generalitate - ne dorim ca algoritmul nostru să rezolve o problemă și este bine când reușim să concepem un astfel de algoritm DAR ideal și chiar necesar ar fi ca algoritmul să rezolve o anumită sferă de probleme nu un caz particular a acesteia.

c)Determinismul - un algoritm trebuie să returneze un rezultat care este în concordanță cu cerința problemei,astfel să rezolve problema pentru toate cazurile posibile ale datelor de intrare.

d)Claritatea - algoritmul trebuie să fie descris clar și concis astfel să cunoaștem la orice operație executată ce operație urmează a fi executată,să știm ce și cum urmează a fi calculat/prelucrat.

2.Etape ale unui algoritm

Simplificat un algoritm cunoaște trei etape principale inițializarea datelor,prelucrarea acestor date,returnarea rezultatului.

Orice problemă deține anumite date,iar acestea trebuie identificate și inițializate conform cerinței problemei în cauză,ca o echivalare așa oarecum simplificată poți vedea un algoritm ca o "rețetă",are toate elementele unui algoritm.
Ca un exemplu de rețetă,o omletă să analizăm umpic această rețetă,avem următoarele elemente.

Enunțul problemei: Vreau să gătesc o omletă,voi avea nevoie de 4 ouă,ulei,sare,o tigaie,un aragaz(o sursă de căldură )
Datele problemei/inițializare: ouă-4 , ulei , sare , aragaz.
Rezultatul: omletă

Relativ ușor și intuitiv,dar hai să și creăm un algoritm pentru această problemă existențială 😁

Elemente necesare 4 ouă,ulei,sare,tigae,aragaz/plită
Dacă avem toate elementele necesare,continuăm,dacă nu procurăm elementele
Turnăm ulei în tigaie
Dacă aragazul/plita a fost pornită punem tigaia pe foc
Spargem ouăle și le turnăm în tigaie
Cât timp ouăle nu s-au făcut amestecăm sau adăugăm sare după preferință

Deși ce am descris mai sus este ceva relativ banal,aș vrea să fi atent la operatorii logici pe care i-am folosit aceștia sunt sau,și,dacă,cât timp . Acești operatori dau structura logică al algoritmului,de multe ori se pot face greșeli logice în descrierea unui algoritm sau chiar în implemetare fapt ce conduce la erori.

3.Date de intrare și ieșire

 Datele de intrare așa cum le spune și denumirea sunt datele pe care le introducem noi astfel încât după prelucrarea acestor date pe care le-am introdus vom obține date de ieșire care implicit ar trebui să fie rezultatul problemei noastre,ca un exemplu avem următoarea problemă:

Se introduce de la tastatură un șir de numere întregi pozitive până la întâlnirea unui număr negativ , să se afișeze elementul maxim din șir
Date de intrare: 1,1,2,3,8,5,0,45,10,-89
Date de ieșire: 45

Un element important al enunțului este faptul că oferă o "condiție de terminare" astfel algoritmul va respecta una dintre proprietăți și anume finitudinea.

4.De ce algoritmi?

    Deși poate a fost o introducere mai lungă pentru a oferi un răspuns,dacă ai citit cu atenție cel mai probabil ți-ai dat seama că este fundamental să deți aceste cunoștințe.
    Chiar și dacă pe viitor te pui și rezolvi probleme cu ajutorul calculatorului,deși programul implementat de tine este un succes,tu tot un algoritm ai folosit,ceea ce vreau să subliniez este faptul că noțiunea de algoritm este esențială în domeniul informaticii,este poate char una dintre pietrele pe care a fost fondată această știință atât de nelipsită în zilele noastre.
   Eu ce am explicat este doar un grăunte de informație , am încercat să te introduc puțin într-un aspect esențial pentru a putea păși mai departe în programare de exemplu.
    Pe acest blog voi posta în timp implementarea unor algoritmi clasici,care sper că te vor ajuta atât la școală/bacalaureat dar poate chiar să-ți pui fundația carierei tale ca viitor specialist IT.



Niciun comentariu:

Trimiteți un comentariu