Documente Academic
Documente Profesional
Documente Cultură
00:15:30
Unitate: 2 din 27
În timpul activităților noastre zilnice, fiecare dintre noi se confruntă cu procesul de rezolvare a
diferitelor probleme comune și de luare a deciziilor. Pe ce drum să mergem la serviciu, ce să
mâncăm la micul dejun sau la prânz, ce telefon mobil să cumpărăm, când să facem renovarea
apartamentului... Acestea sunt doar câteva dintre situațiile care ne impun o anumită analiză și
reflexii pentru a rezolva o problemă concretă. Desigur, conceptul de problemă trebuie să fie
înțeles condiționat, ca o situație, o obligație, un obstacol sau o întrebare la care trebuie găsit un
răspuns. Viața noastră de zi cu zi este plină de astfel de situații.
Indiferent dacă este vorba de o situație din viața de zi cu zi sau de probleme legate de scrierea
programelor de calculator, rezolvarea lor necesită implementarea unei serii de etape, care, unite,
se pot numi algoritm.
Ce este un algoritm
Sunt mari șanse să fi auzit până acum de multe ori cuvântul algoritm în diferite situații. Algoritmul
este definit ca o procedură descrisă corect pentru rezolvarea unei probleme, cel mai adesea
probleme în matematică sau programarea pe calculator.
Notă
Istoria algoritmilor
Algoritmii nu sunt nicio noutate, având în vedere că au fost cu 3500 de ani înainte de noua eră, babilonienii
antici aveau algoritmi pentru calcularea rădăcinii pătrate. Cuvântul algoritm (engl. algorithm) a fost creat
ca rezultat al latinizării numelui omului de știință și matematicianului persan, Al-Khwarizmi, care în anul
825 a scris o carte care se ocupa de calcule folosind numerele hindi.
Algoritmii nu se limitează la calculatoare, ci pot fi aplicați în orice situație care necesită o anumită
analiză cu scopul de a găsi o soluție. De exemplu, toate acele situații comune din viața reală,
enumerate la începutul acestei lecții, pot candida la crearea de algoritmi. Astfel, noi toţi, complet
inconștient, creăm diferiţi algoritmi care ne permit să rezolvăm situațiile zilnice în care suntem. Iată
câteva dintre aceste situații:
Vedem prognoza meteo, dacă este anunțată ploaia, luăm umbrela; dacă ploaia nu este prevăzută, nu
luăm umbrela.
Se amestecă 300 g de făină, 3 ouă, 100 ml apă minerală și 400 ml lapte; amestecaţi; încălziți tigaia,
turnați și distribuiți uniform amestecul; se coace la aproximativ 2-3 minute pe ambele părți; adăugați
umplutura pe care o doriți.
Se toarnă 2 dl de apă în ceainic și se pune pe aragaz; aprindeţi aragazul și așteptați să fiarbă; luaţi
vasul de pe aragaz și adăugaţi ceai.
Acestea au fost doar câteva dintre situațiile a căror rezolvare ne cere să creăm algoritmi interni.
Etapele din care sunt compuse instrucțiunile prezentate, combinate, alcătuiesc procedura sau, cu
alte cuvinte, algoritmul care descrie modul concret de rezolvare a unei situații. Într-un mod identic
funcționează şi algoritmii calculatorului.
Notă
De ce prezentăm algoritmii?
Până acum, probabil v-ați întrebat care este motivul prezentării algoritmilor în cadrul acestei prezentări
introductive despre elementele de bază ale programării. Motivul este foarte simplu. Scrierea unui cod de
calculator este doar una dintre etapele de creare a unui program. Înainte de a începe efectiv să scrie codul
sursă ales, programatorii efectuează o serie de acțiuni de pregătire, cu scopul de a defini cât mai precis
etapele care vor fi implementate pentru a scrie un program de calitate și funcțional. Produsul acestor etape
este tocmai algoritmul sau mai mulţi algoritmi, care sunt apoi utilizaţi ca bază sau, mai bine zis, ca
instrucțiuni pentru scrierea codului sursă.
Orice programator bun vă va spune că munca de scriere a algoritmilor este mai importantă sau, cel puțin, la
fel de importantă ca şi munca de scriere concretă a codului sursă al unui program. Tocmai din acest motiv,
există oameni care se ocupă de știința informaticii, a căror muncă este compusă în exclusivitate din
scrierea algoritmilor.
Acestea au fost doar câteva dintre problemele care pot apărea atunci când se scriu programe de
calculator. Chiar și aplicațiile foarte simple de nivel înalt, create folosind diferite instrumente
grafice, care la nivelul lor de aplicare nu necesită crearea niciunui algoritm, se bazează în fundal pe
un număr mare de algoritmi deja scrişi. Dacă programul este creat într-un limbaj de nivel scăzut
sau înalt, în procesul de traducere a codului sursă al unui astfel de limbaj în limbaj mașină,
compilatorul, interpretorul sau asamblorul folosesc intensiv diferiţi algoritmi.
Imaginea 2.1 încearcă să ilustreze relația dintre algoritm, codul sursă cu care este scris programul
și calculatorul pe care se execută un astfel de program.
1. prezentarea prin cuvinte, vorbire, în limba engleză sau într-o altă limbă
2. prezentarea prin desenarea unei diagrame de flux (engl. flowchart)
3. prezentarea printr-un pseudocod
4. prezentarea unui cod al unui limbaj de programare.
La începutul acestei lecții, au fost deja definiți câţiva algoritmi, utilizând prima metodă menţionată,
respectiv utilizând una dintre limbile naturale. Deși acest tip de definire și prezentare a algoritmilor
este foarte bun în situațiile care necesită o comunicare orală sau opțională, atunci când este vorba
de programarea pe calculator, pentru prezentarea algoritmilor se recurge cel mai adesea la
utilizarea a 2, 3 sau 4 metode. Având în vedere că dvs. sunteți acum la începutul învăţării
programării și încă nu cunoașteți niciun limbaj de programare, continuarea acestei prezentări
introductive va fi dedicată prezentării algoritmilor utilizând o diagramă de flux și un pseudocod.
Aceste două metode de vizualizare a algoritmilor reprezintă un instrument excelent pentru
înțelegerea programării de bază și permit începătorilor să dezvolte o logică de programare chiar
înainte de a scrie o singură linie de cod pentru un limbaj de programare concret.
Da
Nu
Diagrama de flux
Diagrama de flux este una dintre modalitățile prin care etapele unui proces se pot prezenta grafic.
O astfel de reprezentare grafică ilustrează soluția completă a unei probleme, ajutând la
înțelegerea modului în care se rezolvă o astfel de problemă. Diagramele de flux nu sunt strict
legate de calculatoare și programare, ci au o aplicație mult mai largă.
Primele diagrame de flux au fost create în 1921 de către soţii Frank și Lillian Gilbreth, membri ai
Societății Americane de Ingineri Mecanici (engl. American Society of Mechanical Engineers, ASME).
Astfel, aceste diagrame au fost utilizate inițial pentru a descrie procesul de inginerie industrială.
Totuşi, de curând, diagramele de flux și-au găsit aplicația şi în alte ramuri ale științei, astfel că, în
1949 a fost înregistrată prima lor utilizare în descrierea funcționării programelor de calculator.
Astăzi, diagramele de flux sunt utilizate, în principal, în ingineria industrială, controlul calității,
economie și în informatică.
Diagramele de flux sunt compuse dintr-o serie de simboluri grafice, care reprezintă blocurile de
bază ale acestor diagrame. Prin interconectarea acestor simboluri într-o modalitate foarte simplă,
se poate ilustra fluxul unui proces (imaginea 2.2).
Imaginea 2.2 ilustrează exemplul unei diagrame de flux foarte simple, care prezintă procesul de
luare a unei decizii obișnuite, o decizie zilnică, menționată la începutul acestei lecții. Puteţi observa
că, odată cu formarea diagramei din imaginea 2.2., au fost folosite simboluri de diferite forme,
care sunt interconectate cu linii. Desigur, utilizarea simbolurilor prezentate nu este accidentală.
Simbolurile care pot fi folosite atunci când se creează o diagramă de flux sunt standardizate de
Institutul Național al Simbolurilor Americane (engl. American National Symbols Institute, ANSI) și
de Organizația Internațională pentru Standardizare (engl. The International Organizations for
Standardization, ISO). Cele mai importante simboluri ale diagramei de flux sunt ilustrate în tabelul
2.1.
Tabelul 2.1. Simboluri care sunt folosite la crearea unei diagrame de flux
Acum, când ştim principalele simboluri ale diagramei de bază, putem folosi cunoștințele
dobândite pentru a reprezenta niște algoritmi de bază. Primul algoritm pe care-l vom prezenta
utilizând diagrama fluxului va fi un algoritm pentru adăugarea a două numere. Acesta este unul
dintre cei mai simpli algoritmi de programare a calculatoarelor. Cu o limbă naturală, adică cu
cuvinte simple, un astfel de algoritm ar putea fi descris în felul următor:
colectează valorile primului și ale celui de-al doilea număr, fă adunarea unor astfel de numere,
arată suma obţinută utilizatorului sau transmite-o în continuare la procesare.
Un astfel de algoritm, formulat într-o limbă naturală, folosind o diagramă de flux, poate fi
reprezentat ca în imaginea 2.3.
Imaginea 2.3. Un algoritm pentru adunarea a două numere reprezentat printr-o diagramă de flux
Diagrama de flux din imaginea 2.3. începe cu un dreptunghi rotunjit sau cu așa-numitul
simbol terminal, care ilustrează începutul diagramei. În interiorul lui este postat un text simbolic
(START), care indică faptul că este vorba despre începutul diagramei.
După simbolul terminal, este indicat simbolul de intrare/ieșire, care, în această situație, este folosit
pentru a introduce valorile. În termeni simpli, pentru a se face adunarea, este necesar să se asigure
un colector. În acest moment, este total irelevant de unde provin astfel de valori, dat fiind faptul
că algoritmul este doar o vedere abstractizată a unei probleme concrete. În realitate, adică în
cadrul unui program de calculator, astfel de valori vor veni de obicei din partea utilizatorului sau
de la logica internă a aplicației înseşi. Cele două numere care urmează să fie adunate, adică cele
două colectoare, sunt reprezentate în cadrul diagramei cu literele x și y.
După introducerea datelor, se trece la procesarea lor și, de aceea, se utilizează simbolul diagramei
de flux care reprezintă operația. Adunarea este cu siguranță unul dintre candidații ideali pentru
marcarea cu simbolul operației. Operația constă din adunarea valorilor numerelor x și y. Suma
acestor două numere este stocată ca valoarea z.
După finalizarea operației de adunare, se foloseşte încă o dată simbolul intrare/ieșire, dar, de
această dată, în contextul ieșirii. Ca ieșire, diagrama de flux emite valoarea z, adică suma
numerelor x și y.
Diagrama de flux se încheie cu simbolul terminal cu textul END, prin care se marchează sfârșitul
diagramei de flux.
Încheiere
Tocmai ați putut vizualiza, pentru prima dată, fluxul unui algoritm simplu. Pentru a efectua o astfel
de activitate ne-au ajutat diagramele de flux. Așa cum s-a spus, diagrama de flux este doar una
dintre modalităţile de a articula algoritmi. De aceea, este foarte important să înțelegeți că
diagramele de flux nu sunt algoritmi. Ele sunt doar o parte a modului de a le prezenta. În
următoarea lecție va fi prezentată încă o modalitate de articulare a algoritmilor, care reprezintă
forma cea mai asemănătoare scrierii codului sursă al unui limbaj de programare. Este vorba de
pseudocod.