Documente Academic
Documente Profesional
Documente Cultură
Descrierea algoritmilor.
Prin algoritm putem înţelege o succesiune finită de operaţii. Acesta presupune
executarea unor calcule într-o anumită ordine. Putem considera că un algoritm este o
secvenţă finită de propoziţii ale unui limbaj de descriere a algoritmilor. Fiecare propoziţie a
limbajului precizează o anumită regulă de calcul, aşa cum se va observa atunci când vom
prezenta limbajul Pseudocod.
Algoritmii pe care îi descriem ar trebui să fie cât mai generali ( să rezolve o clasă de
probleme de acelaşi tip), să dea rezultate într-un anumit timp (finit, adică să se termine
oricare ar fi datele de intrare) şi, de asemenea, să asigure unicitatea rezutatelor ori de câte
ori se dau aceleaşi date de intrare. Aceste trei caracteristici generalitate, finitudine şi
unicitate trebuie să ne preocupe ori de câte ori scriem un algoritm, indiferent de forma
(scheme logice sau limbaj Pseudocod) în care este prezentat acesta.
Schema logică este un mijloc de descriere a algoritmilor prin reprezentare grafică.
Regulile de calcul ale algoritmului sunt descrise prin blocuri (figuri geometrice)
reprezentând operaţiile (paşii) algoritmului, iar ordinea lor de aplicare (succesiunea
operaţiilor) este indicată prin săgeţi. Fiecărui tip de operaţie îi este consacrată o figură
geometrică (un bloc tip) în interiorul căreia se va înscrie operaţia din pasul respectiv.
Datele utilizate într-un algoritm pot fi variabile sau constante (îşi pot modifica valoarea sau
nu). În descrierea unui algoritm, intervin variabile care marchează atât datele cunoscute
iniţial, cât şi rezultatele dorite, precum şi alte rezultate intermediare necesare în rezolvarea
problemei.
Variabila defineşte o mărime care îşi poate schimba valoarea. Valorile pe care le
poate lua variabila aparţin unei mulţimi D pe care o vom numi domeniul variabilei. Prin
variabilă vom înţelege tripletul (nume, domeniul D, valoare).
În continuare vor fi descrise blocurile ce descriu în schema logică o anumită operaţie
(simbolurile acestora).
Blocurile delimitatoare (Start şi Stop) (figura 2.1.a şi 2.1.b) vor marca începutul
respectiv sfârşitul unui algoritm dat printr-o schemă logică. Descrierea unui algoritm prin
schemă logică va începe cu un singur bloc Start şi se va termina cu cel puţin un bloc Stop
(nu poate exista decât un singur început dar pot exista mai multe posibilităţi de terminare a
programului definit de algoritm).
Blocurile de intrare/ieşire (Citeşt şi Tipăreşte) (figura 2.1.c şi 2.1.d) indică
introducerea unor Date de intrare respectiv extragerea unor Rezultate finale. Ele permit
precizarea datelor iniţiale cunoscute în problemă şi tipărirea rezultatelor cerute de
problemă. Blocul Citeşte iniţializează variabilele din lista de intrare cu valori
corespunzătoare, iar blocul Tipăreşte va preciza rezultatele obţinute (la execuţia pe
calculator cere afişarea pe ecran a valorilor expresiilor din lista de ieşire).
Blocurile de atribuire (calcul) se utilizează în descrierea operaţiilor de atribuire (:=).
Printr-o astfel de operaţie, unei variabile var i se atribuie valoarea calculată a unei expresii
matematice expresie (figura 2.1.e).
Blocurile de decizie marchează punctele de ramificaţie ale algoritmului în etapa de
decizie. Ramificarea poate fi dublă (blocul logic, figura 2.1.f) sau triplă (blocul aritmetic,
figura 2.1.g). Blocul de decizie logic indică ramura pe care se va continua execuţia
algoritmului în funcţie de îndeplinirea (ramura Da) sau neîndeplinirea (ramura Nu) unei
condiţii. Condiţia care se va înscrie în blocul de decizie logic va fi o expresie logică a cărei
valoare poate fi una dintre valorile "adevărat" sau "fals". Blocul de decizie aritmetic va
hotarî ramura de continuare a algoritmului în funcţie de semnul valorii expresiei aritmetice
înscrise în acest bloc, care poate fi negativă, nulă sau pozitivă.
Blocurile de conectare marchează întreruperile săgeţilor de legătură dintre blocuri,
dacă din diverse motive s-au efectuat astfel de întreruperi (figura 1.h).
Limbajul Pseudocod.
Limbajul Pseudocod a fost conceput pentru descrierea algoritmilor. Limbajul
Pseudocod are două tipuri de propoziţii: standard (care au o structură fixă şi este formată
cu ajutorul unor cuvinte cheie), propoziţii nestandard (care descriu părţi ale algoritmului
încă incomplet elaborate, nefinisate, asupra cărora urmează să se revină) şi comentarii
(texte scrise între acolade utilizate pentru documentarea algoritmului). Propoziţiile
limbajului Pseudocod se vor executa în ordinea întâlnirii lor în text, asemenea oricărui text
al limbii române.
În descrierea algoritmilor se recomandă o scriere structurată prin utilizarea
următoarelor structuri : secvenţială (formată dintr-o succesiune de propoziţii simple),
alternativă (permite executarea anumitor ramuri în funcţie de anumite condiţii) repetitivă
(prin care putem execută aceleaşi propoziţii de mai multe ori).
Structura generală a unui algoritm descris în Pseudocod este:
Date Listă_variabile_de_intrare;
iar tipărirea rezultatelor prin
Rezultate Listă_expresii_de_ieşire;
O propoziţie des utilizată în efectuarea calculelor este aceea prin care unei variabile
i se atribuie valoarea unei expresii. Aceasta este de forma
[Fie]
Variabilă := Expresie;
în care cuvântul Fie poate lipsi.
Expresia din dreapta semnului de atribuire poate fi o expresie construită cu cele
patru operaţii: adunare, scădere, înmulţire şi împărţire (notate prin caracterele +,-, *,
respectiv /). Prin această instrucţiune o variabilă primeşte (i se asignează, i se atribuie, sau
este iniţializată) valoarea (calculată a) unei expresii.
Pentru descrierea unei structuri alternative avem trei posibilităţi: