Sunteți pe pagina 1din 17

ALGORITMI I SCHEME LOGICE

Caracteristicile algoritmilor
Iterativitate i recursivitate
Reprezentarea algoritmilor prin scheme logice
Reprezentarea algoritmilor prin pseodocod
Descrierea structurilor fundamentale
Structurarea algoritmilor
Erorile n algoritmi
Proiectarea algoritmilor
Caracteristicile algoritmilor
Generalitate
Exemplu:
3x
2
-5x+7=0 ax
2
+bx+c=0, a,b,ceR, a=0 a,b,ceR
Determinare (claritate)
Exemplul 1:
ax
2
+bx+c=0, a,b,ceR
1. a =0, ecuaie de grad II
2. a=0 i b =0, ecuaie de grad I
3. a=0, b=0 i c =0, ecuaie imposibil
4. a=0, b=0 i c=0, ecuaie nedeterminat
Exemplul 2:
Suma elementelor impare dintr-un ir
Suma elementelor pare dintr-un ir
Finitudine
Clase de algoritmi:
+ Algoritmi cu numr finit de pai, a priori cunoscut
+ Algoritmi cu numr finit de pai, a posteriori cunoscut
+ Algoritmi cu numr infinit de pai
Produs scalar ntre dou mulimi
CMMDC ntre dou numere
Numerele prime pn la o limit dat
Rezolvarea unei ecuaii transcendente
Numrarea unor elemente care ndeplinesc o condiie dat
Iterativitate i recursivitate
Iterativitate
Produs vectorial
Creare vectori

Recursivitate
Produs scalar
Maxim (minim) dintr-un ir
Cmmdc din dou numere
formula iterativ
formula de start
formula recursiv
Reprezentarea algoritmilor prin scheme logice
Blocul START Blocul STOP
Blocul de citire Blocul de scriere
Citete
date_de_intrare
Scrie
date_de_iesire
Blocul de atribuire
v = e v e
START STOP
Blocul de ramificare
c
1
c
2
c
n

c
1
v c
2
v v c
n
= 1
c
i
. c
j
= 0, i = j; i,j = 1,n
Pentru cazul n =2
c
c
c
NU DA
Structurile fundamentale din
programarea structurat
Structura secvenial (liniar)
s.l.s.
analitic:
pseudocod
arbore
s1
s2
sn
BLOCK
s1 sn
s1;
s2;

sn;
BLOCK(s1,s2,,sn)
Structur PRIVILEGIAT !
Structurile alternative - selecia simpl
s.l.s.
analitic
pseudocod
arbore
c
IF-THEN-ELSE
s1 s2
IF c THEN s1
ELSE s2
ENDIF
IF-THEN-ELSE(c,s1,s2)
s1
s2
c
Da Nu
Structur PRIVILEGIAT !
analitic
pseudocod
arbore
c
IF-THEN
s1
IF c THEN s1
ENDIF
IF-THEN (c,s1)
Structurile alternative - pseudoalternativa
s.l.s.
s1
c
Da Nu
Transformarea n structur privilegiat
s.l.s. analitic
IF-THEN (c,s1) =
IF-THEN-ELSE(c,s1, C)
s1
C
c
Da Nu
Structura pseudoalternativ
pe ramura fals
IF-ELSE (c,s1) = IF-THEN( c,s1) =
= IF-THEN-ELSE(c,C, s1) = IF-THEN-ELSE( c,s1,C)
Structura alternativ multipl
s.l.s.
arbore
analitic
CASE-OF (i,s1,s2,,sn,s)
i
s
1
s
2
s s
n

i=v
1
i=v
2
i=v
n
ieV
. . .
s
1
s
2
s s
n

CASE-OF i
. . .
pseudocod
CASE-OF
i=v
1
: s
1

i=v
2
: s
2

. . .
i=v
n
:s
n

ELSE s
ENDCASE
Structurile repetitive
Structura repetitiv condiionat anterior
c
s
Da
Nu
WHILE-DO
c
s
s.l.s.
arbore
analitic
pseudocod
WHILE c DO
s
ENDWHILE
WHILE-DO(c,s)
Structur PRIVILEGIAT !
Structura repetitiv condiionat posterior
DO-UNTIL
c
s
arbore
analitic
pseudocod
DO
s
UNTIL c
DO-UNTIL(s,c)
s.l.s.
c
s
Da
Nu
Structura repetitiv cu numrtor
DO-FOR(vi,vf,vr)
c
s
s.l.s. arbore
analitic
pseudocod
DO-FOR v=v1,vf,vr
s
ENDDO
DO-FOR(v,vi,vf,vr,s)
vsvf
v=vi
Da
Nu
v=v+vr
s
N = [(vf - vi) / vr] + 1
Structurarea algoritmilor
Teorema fundamental de structur (Boem-Jacoppini)
S = (BLOCK, IF-THEN-ELSE, IF-THEN,
CASE-OF, WHILE-DO, DO-UNTIL, DO-FOR)
Un algoritm este structurat dac i numai dac este format din
elemente din mulimea S.
Fie S un algoritm nestructurat, format dintr-o mulime A de aciuni i
o mulime P de predicate. Dac se adaug un numr finit de aciuni
i/sau de predicate, se obine un algoritm structurat, echivalent cu S.
Corolarul top-down
Un algoritm P structurat este echivalent cu un algoritm pus sub una
din urmtoarele forme:
P = BLOCK(s1,s2,,sn)
P = IF-THEN-ELSE(c,s1,s2)
P = WHILE-DO(c,s)

Erorile n algoritmi
Erori n datele iniiale:
- erori de observare
- erori datorate numerelor iraionale
Erori de rotunjire
Erori de metod
Erori reziduale
eroare absolut
eroare relativ
Proiectarea algoritmilor
Proiectarea, codificarea i testarea top-down
Proiectarea modularizat
Proiectarea structurat