Documente Academic
Documente Profesional
Documente Cultură
LOGICE
Caracteristicile algoritmilor
Iterativitate şi recursivitate
Reprezentarea algoritmilor
Descrierea structurilor fundamentale
Structurarea algoritmilor
Erorile în algoritmi
Proiectarea algoritmilor
Definiție
Caracteristicile algoritmilor
• Generalitate
ax2+bx+c=0, a,b,cR, a ≠ 0
dacă a=0
dacă b=0
dacă c=0 ecuație nedeterminată
dacă c≠0 ecuație imposibilă
dacă b≠0 ecuație de gr. I, x = -c/b
Clase de algoritmi:
PS=
Algoritmi cu număr finit de paşi, a posteriori cunoscut
Exemple:
1. Produsul vectorial dintre doi vectori
X=(x1, x2…, xn), Y=(y1, y2…, yn) – vectori de intrare
Z=(z1, z2…, zn) - vectorul rezultat
unde zi = xi · yi, cu i=1,n – formula iterativă
Exemple:
1. Suma elementelor unui vector: X=(x1, x2…, xn).
S=
Algoritmul matematic
Pas 1: S1 = x1
Pas 2: S2 = S1 + x2
...
Pas i: Si = Si-1 + xi
...
Pas n: Sn = Sn-1 + xn
___________________
S = Sn
Trecerea de la algoritmul matematic la algoritmul informatic presupune
următoarele două modificări majore:
1. toate notațiile din algoritmul matematic reprezintă date pentru algoritmul
informatic;
2. operatorul relațional “=” devine operator de atribuire.
Operația de atribuire: v = e,
unde v este data receptoare a unei valori, iar e este o expresie.
Exemple: a b c
a=b+c
a=a+b
i=i+1
...
2 1
+ UAL
Algoritmul informatic
S=0
Pas 1: S = x1
S = S + x1
Pas 2: S = S + x2
...
Pas i: S = S + xi
...
Pas n: S = S + xn
d = a; i = b - formule de start
r = rest(d/i) - formulă recursivă
Structurile fundamentale din programarea
structurată
Structura secvenţială (liniară)
analitic: BLOCKn(s1,s2,…,sn)
sn
Structură PRIVILEGIATĂ !
Structurile alternative - selecţia simplă
s.l.s. arbore
Nu Da
c IF-THEN-ELSE
s2 s1
c s1 s2
pseudocod analitic
IF c THEN
s1 IF-THEN-ELSE(c,s1,s2)
ELSE
s2
ENDIF Structură PRIVILEGIATĂ !
Structurile alternative - pseudoalternativa
s.l.s. arbore
Nu Da IF-THEN
c
s1 c s1
analitic
pseudocod
IF-THEN (c,s1)
IF c THEN
s1
ENDIF
Transformarea în structură privilegiată
s.l.s.
analitic
Nu Da
c
if-then(c,s1) = if-then-else(c,s1,)
s1
analitic
i
i=v1 i=v2 i=vn iV CASE-OF (i,s1,s2,…,sn,s)
s1 s2 ... sn s
pseudocod
CASE-OF i
arbore i=v1: s1 ;
i=v2: s2 ;
CASE-OF i ...
i=vn: sn
ELSE s
ENDCASE
s1 s2 ... sn s
Transformarea în structură privilegiată
NU DA
i=v1
NU DA
i=v2 s1
s2
NU DA
i=vn
s sn
Da WHILE-DO
c
Nu c s
s
analitic
pseudocod WHILE-DO(c,s)
WHILE c DO
s
ENDWHILE Structură PRIVILEGIATĂ !
Structura repetitivă condiţionată posterior
s.l.s. arbore
s DO-UNTIL
s c
c Nu
Da
pseudocod analitic
DO
s DO-UNTIL(s,c)
UNTIL c
Transformarea lui do-until în structură privilegiată
DA
c
NU s
NU DA
c
NU
c
DA
Da
vvf
s
s
Nu
DO FOR v=vi,vf,vr
v=v+vr pseudocod s
ENDDO
analitic DO-FOR(v,vi,vf,vr,s)
Niteratii = [(vf - vi) / vr] + 1
Niteratii > 0
Dacă vi vf vr > 0
Dacă vi vf vr < 0
• După natură:
- numerice: naturale, întregi, reale, complexe;
- alfabetice
- alfanumerice
- logice
Vectorul X
x1 x2 xn
• Reprezentare
internă
x1 x2 ... xi ... xn
D(xi)
X
• Referire element
y z
• Referire element
Antet
Corp
Parte de declaraţii
Parte de instrucţiuni
Apelul subprogramelor
STIVA