Upload
reb2009
View
13
Download
2
Embed Size (px)
DESCRIPTION
CALCULATOARE
Citation preview
Programarea calculatoarelor 16
3. Descrierea algoritmilor n pseudocod si cu
ajutorul schemelor logice
Ordinea n care se face nlantuirea pasilor unui algoritm defineste asa numita structura de control a algoritmului. Cea mai simpla structura de control este structura secventiala. O astfel de structura de control se compune din pasi care se nlantuie unul dupa altul, n ordinea n care apar n algoritm. Aceasta structura o vom numi bloc. Structura secventiala Pseudocod Schema logica Begin Pas 1; Pas 2; . Pas n; End Daca n = 1 nu se pune begin end . De obicei la descrierea unui proces de calcul este nevoie sa se utilizeze si alte tipuri de structuri. Astfel , C . Bohn si G.Jacopini au aratat ca pentru exprimarea proceselor de calcul sunt suficiente trei structuri de control si anume: - structura secventiala; - structura alternativa ; - structura repetitiva (ciclica), conditionata anterior. Structura alternativa
Pseudocod Schema logica < conditie > then Bloc 1;
Pas 1
Pas 2
Pas n
Cond1
Cond2
Bloc n
Bloc 2
Bloc 1
Stop
Da Nu
NuDa
Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice
17
[ else if < conditie 2 > then bloc 2; ..] [ else bloc n; ] endif
Structura repetitiva ( ciclica ), conditionata anterior Pseudocod Schema logica While < conditie > Bloc End while Si For < expresie 1 >; ; ; Bloc End for
Conditie
bloc
Stop
Nu Da
Expr.
Exp2
Expr.
Stop
Da
Nu
Programarea calculatoarelor 18
Acest rezultat s-a aflat la baza ideii care a condus n anii '70 la
conceptul de programare structurata. Acest concept a fost dezvoltat de E. W. Dijkstra n lucrarile sale, iar ulterior si de alti specialisti, ca de exemplu N. Wirth si C. A. R. Noare. El reprezinta un stil de programare care se impune si n prezent. Un efect imediat al programarii structurate este ridicarea productivitatii n programare si cresterea fiabilitatii programelor. Prin algoritm structural ntelegem un algoritm care are o structura de control realizata cu ajutorul celor trei structuri amintite mai sus. Ulterior s-au admis nca doua structuri, si anume: - stuctura selectiva - structura repetitiva (ciclica) conditionata posterior. Introducerea acestor structuri permite o flexibilitate mai mare n programare. n acest fel, programarea structurata reprezinta un stil de programare care contribuie la realizarea de programe care au o structura clara si care pot fi usor depanate si ntretinute. Structura selectiva Pseudocod Schema logica case c1: bloc 1; break; c2: bloc 2; break; cn: bloc n; break; [default bloc n+1] end
Expr.1=c1
Expr.2=c2
Expr.n=cn
Bloc 1
Bloc 2
Bloc n
Bloc n+1
STOP
Da
Da
Da
Nu
Nu
Nu
Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice
19
Structura repetitiva (ciclica) conditionata posterior
Pseudocod Schema logica
Repeat Bloc until
n plus fata de structurile de control anterioare vom folosi:
Conditie
bloc
Nu
Da
Programarea calculatoarelor 20
Pseudocod read , ; write , ; procedure (, ) corp endp PROGRAM [] Corp END
n plus mai introducem instructiuni nestructurate: Stop goto
De asemenea vom folosi operatorii: = atribuire (var=val;) +, -, *, /, mod, bp >,
Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice
21
Avem n!=1, daca n=0 si n!=1*2*3**(n-1)*n, daca n>0, n170. Acest calcul implica un proces ciclic. n pseudocod: PROGRAM factorial write "Introduceti valoarea lui n:" read n; if n170 then write "Nu apartine intervalului [0, 170] else f=1.0; i=2; while in f=f*i; i=i+1; endw write "n=", n, "f=", f; endif END Cu scheme logice:
START factorial
Introduce tivaloarea lui n
n
n170
f=1.0
i=2
i n
f= f*i
i=i+1
n=; nf=; f
Stop STOP
Nu apar tinintervalului[0,170]
Da
Nu
Programarea calculatoarelor 22
Exemplul 2 Sa se descrie un algoritm care citeste valoarea lui x, calculeaza si afiseaza valoarea functiei f, definita prin f(x) = 4x3+3x2-2x+1, pt. x0. Rezolvare: n pseudocod: PROGRAM write "x="; read x; if x
Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice
23
Exemplul 1: Sa se descrie un algoritm care citeste valorile variabilelor a, b, c, d, x si afiseaza valoarea expresiei:
dbxaxcbxax
E++++
= 32
,
daca numitorul este diferit de zero, si zero n caz contrar: Rezolvare: n pseudocod: PROGRAM read a, b, c, d, x; if ax3+bx+d != 0 then E=(ax2+bx+c)/(ax3+bx+d); else E=0; endif END Cu scheme logice:
START
a,b,c,d,x
ax+bx+d=0
E=0 ax + bx + cE= a x + bx + d
0E=;E0
STOP
DaNu
Programarea calculatoarelor 24