Sunteți pe pagina 1din 5

ALGORITMI I SCHEME LOGICE

1.1. Caracteristicile i structura algoritmilor


Definiie. Un algoritm reprezint o secven finite i ordonat de reguli clare, a caror parcurgere ne permite ca, pornind de la o mulime de date de intrare, s obinem n mod eficient rezultatele corecte ale problemei. Principalele caracteristici ale unui algoritm sunt: 1. 2. 3. 4. 5. Generalitatea Finititudinea Determinismul Unicitatea Claritatea/Precizia

1. Generalitatea - un algoritm nu trebuie conceput pentru o problem particular, ci pentru o clas general de probleme. Exemplu: Nu se va concepe un algoritm pentru rezolvarea ecuaiei particulare 5x2-2x=7, ci un algoritm pentru rezolvarea ecuaiei de gradul al doilea cu o necunoscut, ax2+bx+c=0, cu a,b,c,x, a0 a. sa se poata determina soluiile oricrei ecuaii de gradul II. 2. Finititudinea - operaiile trebuie astfel concepute nct algoritmul s se termine ntr-un numr finit de pai, cunoscut sau necunoscut. Exemplu: La determinarea celui mai mare divizor comun (CMMDC) dintre dou numere ntregi (A i B) se mparte A la B: A=BQ+R, apoi se continua mprirea mpritorului (B) la rest (R), pn cnd se obine un rest nul, caz n care CMMDC este ultimul mpritor (numr necunoscut de pai). 3. Determinismul - algoritmul trebuie s prevad modul de soluionare a tuturor situaiilor care pot aprea n rezolvarea problemei respective, ntr-o manier fr ambiguiti sau neclariti, lucru impus de caracterul de automat al calculatorului electronic. Exemplu: Elaborarea algoritmului pentru rezolvarea ecuaiei: ax2+ bx + c = 0, a,b,c,x. Analiza arat c exist patru situaii posibile care trebuie cuprinse n algoritm: 1. a 0, ecuaie de gradul II; 2. a = 0 i b 0, ecuaie de gradul I; 3. a = 0 i b = 0 i c 0, ecuaie imposibil; 4. a = 0 i b = 0 i c = 0, nedeterminare. Rmne s fie rezolvate fiecare din aceste situaii sau unele din ele s fie grupate n funcie de cerine. 4. Unicitatea - pentru aceleai date de intrare trebuie s se obin aceleai date de ieire n urma parcurgerii aceluiai algoritm.

5. Claritatea - descrierea cu exactitate i fr ambiguiti paii care trebuiesc parcuri n rezolvarea problemei.

Structura unui algoritm Dpdv structural, un algoritm cuprinde urmtoarele etape: Iniializarea rolul de a citi datele iniiale ce se vor prelucra Un algoritm are zero sau mai multe date iniiale sau date de intrare. Intrrile variabile crora trebuie s li se atribuie valori luate dintr-o mulime bine precizat, nainte ca execuia algoritmului s nceapa. Prelucrarea transformrile efective ale datelor iniiale cu scopul obinerii soluiilor finale. Prezentarea soluiei finale prezentarea,afiarea rezultatelor finale obinute n urma prelucrrilor specificate. Un algoritm are una sau mai multe ieiri. Ieirile variabile care i pstreaz rezultatele procesului de calcul realizat pentru a fi afiate sau memorate n forma dorit. Exemplu: Algoritmul rezolvarii ecuatiei de gradul I: ax+b = 0, a,b 1. 2. 3. 4. 5. 6. 7. Se citete a i b; Dac a 0 rezult ecuaie de gradul II, treci la pasul 3, altfel, dac a = 0, treci la pasul 6; Calculeaza: X = b/a; Scrie valoarea calculate pentru x; Algoritmul s-a terminat; Ecuatia nu are solutie; Treci la pasul 5.

1.2 Reprezentarea algoritmilor


a) Reprezentarea algoritmilor prin pseudocod Descrierea algoritmilor cu ajutorul schemelor logice se dovedete, n unele cazuri, greoaie, practica impunnd n ultima vreme descrierea lor printr-un text coerent, construit pe baza unor reguli. O astfel de descriere se numete metalimbaj (pseudocod). Exist multe variante de metalimbaje. Oricine poate crea un pseudocod propriu, perfect acceptabil, cu condiia ca el s conin structurile de baz, suficiente pentru a descrie orice algoritm. Evident c i la pseudocoduri se pune problema portabilitii, mai ales atunci cnd se lucreaz n echip. Cel mai avansat pseudocod universal a fost propus n anii 60 de Niklaus Wirth, pseudocod care ulterior a devenit limbajul de programare Pascal. Cuvinte cheie. Sunt mnemonice ale instruciunilor, unele fiind scrise n limba englez, pentru compatibilizare cu literatura de specialitate (de exemplu WHILE-DO, IF-THEN-ELSE).

Instruciuni. Instruciunile pot fi scrise liber, n sensul c o instruciune se poate scrie pe mai multe rnduri, iar un rnd poate conine mai multe instruciuni (separate prin ";" ). Instruciunil se mpart n declaraii (instruciuni neexecutabile) i instruciuni efective (executabile). O declaraie este format din cuvinte cheie (de exemplu NTREG, REAL, CARACTER etc.), urmat de un ir de variabile separate prin "," , variabile pentru care se indic faptul c au tipul ntreg, real, caracter etc. Masivele se declar prin tipul elementelor sale, urmat de o construcie care desemneaz numrul maxim de elemente pe fiecare dimensiune, sub forma [dz][d2]...[dn].

Exemple:
NTREG a, b, c; REAL vector[20]; NTREG matrice [10][15]; Instruciunile executabile ntr-un program scris n pseudocod pot fi: Instruciunea de citire are forma: CITETE(list_de_variabile). Exemple: CITETE(A,B); CITETE(xi); Instruciunea de scriere are forma: SCRIE(list_de_variabile). Exemple: SCRIE(A,B); SCRIE("VECTORUL ESTE ="); SCRIE(xi); Instruciunea de atribuire are forma: v=e, unde v este variabil, e este expresie, ambele de aceeai natur (numeric, logic sau caracter). Instruciunile de ramificare (IF-THEN-ELSE, IF-THEN, CASE-OF) i cele repetitive (WHILE-DO, DOUNTIL, DO-FOR)sunt prezentate mpreun cu structurile fundamentale. Observaii: Instruciunile corespund configuraiilor acceptate ntr-o schem logic structurat, deci sunt compatibile cu programarea structurat. Instruciunile acestui pseudocod se pot extinde la lucrul cu fiiere.

b) Reprezentarea prin schema logic


Practica programrii calculatoarelor dovedete cschema logic este forma cea mai utilizatde reprezentare a algoritmilor. Ea se dovedete util, n special, n iniierea n programare, deoarece ofer o

vizualizare mai bun, o redare expresiv i sintetic, uor de urmrit, a algoritmilor. S considerm un graf orientat n care arcele sunt etichetate cu anumite informaii formnd aa-zisele blocuri. n graf sunt admise urmtoarele blocuri: Blocul START este un arc etichetat cu cuvntul START, pentru care vrful iniial nu este pus explicit n eviden, deoarece n el nu pot sosi arce: START Blocul STOP este un arc etichetat cu cuvntul STOP, pentru care vrful final nu este pus explicit n eviden, deoarece din el nu pot pleca arce: STOP Blocul de citire este un arc etichetat cu informaia: citirea unor valori de pe suportul extern i nscrierea lor n locaii de memorie corespunztoare unor variabile. Citete list-devariabile Blocul de scriere este un arc etichetat cu informaia: nscrierea pe suportul extern a valorilor memorate n locaiile de memorie corespunztoare unor variabile: Scrie list-devariabile Blocul de atribuire este un arc etichetat cu informaia: evaluarea unei expresii e i nscrierea (atribuirea) rezultatului n locaia de memorie corespunztoare unei variabile v: v = e sau v e sau e v Blocul de ramificare (selecie) este o mulime de n arce care pleac din acelai vrf, arce etichetate cu predicatele C1, C2,...,Cn (predicat = condiie = expresie logic, care poate fi adevrat (1) sau fals (0)), care satisface relaiile: C1 C2 ... Cn = 1; Ci Cj = 0, () i j; i,j=1, n Relaiile exprim faptul c unul i numai unul din aceste predicate poate fi satisfcut (adevrat). c1
c2

...

cn

Pentru cazul n=2 se poate scrie, echivalent:

Nu c Definiie: Se numete schema logic un graf orientat n care: a) Exist un singur bloc START i un singur bloc STOP; c c

Da

b) Orice arc este etichetat cu una din urmtoarele informaii: START sau STOP; o citire sau o scriere; o atribuire; un predicat, n care caz extremitatea iniiala arc ului este extremitatea initial a unui bloc de ramificaie; c) Orice arc face parte din cel puin un drum care ncepe cu blocul START i se termin cu blocul STOP.

n practic, schemele logice alctuite conform regulilor enunate anterior pot lua forme foarte complicate, greu de urmrit, uneori chiar de cel care le-a conceput. De aceea s-a simit nevoia ca n construcia schemelor logice s se foloseasc numai anumite configuraii (structuri) i s se respecte reguli stricte, obinndu-se, astfel, scheme logice structurate. Definiie: Se numete subschem logic un graf orientat n care: a) Exist un unic vrf iniial (n care nu sosesc arce) i un vrf final (din care nu pleac arce); b) Oricare arc este etichetat cu una din urmtoarele informaii: START sau STOP; o citire sau o scriere; o atribuire; un predicat, n care caz extremitatea iniiala arc ului este extremitatea initial a unui bloc de ramificaie; c) Dac subschema conine blocul START (STOP), atunci extremitatea iniial (final) a blocului este chiar vrful iniial (final); d) Orice arc face parte din cel puin un drum ce unete vrful iniial cu cel final. n particular, o schema logic este o subschema logic n care vrful iniial este extremitatea initiala a blocului START, iar vrful final este extremitatea final a blocului STOP. Prin recuren, schema logic structurat(s.l.s.) se definete astfel: (I) Blocurile START, STOP, de intrare/ieire i de atribuire sunt s.l.s.; (II) Dac s1 i s2sunt s.l.s., atunci i subschemele din figura de mai jos sunt s.l.s.(cu respectarea condiiilor referitoare la START i STOP). (III) Orice s.l.s.se obine plecnd de la (I) i aplicnd de un numr finit de ori regulile (II).

S
1

c
S1

c
S2

c
S

S2

Structura
Secvenial

Structura alternativ IF-THEN-ELSE

Structura repetitiv WHILE-DO

S-ar putea să vă placă și