Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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
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