Sunteți pe pagina 1din 20

ALGORITMI I SCHEME LOGICE

Caracteristicile algoritmilor
Iterativitate i recursivitate
Reprezentarea algoritmilor
Descrierea structurilor
fundamentale
Structurarea algoritmilor
Erorile n algoritmi
Proiectarea algoritmilor
CARACTERISTICILE ALGORITMILOR
Generalitate
Determinare (claritate)
Exemplul 1: ecuaia de grad 2
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
Ptratele elementelor
unui ir
Creare vectori

Recursivitate
Suma elementelor unui ir
Produsul elementelor unui
ir
Produs scalar
Maxim (minim) dintr-un ir
Cmmdc dintre 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_ieire
Blocul de atribuire
v = e v e
START STOP
e v
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
s1;
s2;

sn;
BLOCK(s1,s2,,sn)
Structur PRIVILEGIAT !
BLOCK
s1 sn

s2
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)
c
s1
s2
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.
c
s1
Da Nu
Transformarea n structur privilegiat
s.l.s.
analitic
IF-THEN (c,s1) =
IF-THEN-ELSE(c,s1, C)
c
s1
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)
s
s.l.s. arbore
analitic
pseudocod
DO-FOR v=vi,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
S = (BLOCK, IF-THEN-ELSE, IF-THEN, CASE-OF, WHILE-DO,
DO-UNTIL, DO-FOR)
Un algoritm este S structurat (sau S structurat) dac este format
numai din elemente din mulimea S (respectiv S).
S = (BLOCK, IF-THEN-ELSE, IF-THEN)
Mulimea structurilor privilegiate
Mulimea structurilor fundamentale
Teorema fundamental de structur (Boem-Jacoppini)
Fie P un algoritm nestructurat, format dintr-o mulime A de aciuni
(operaii) i o mulime C de condiii. Dac se adaug un numr finit de
aciuni i/sau de condiii, se obine un algoritm structurat, echivalent
cu P.
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)

METODE DE STRUCTURARE A ALGORITMILOR
Metoda dublrii codurilor
structurarea secvenelor alternative
structurarea secvenelor repetitive
Metoda folosirii de variabile booleene
structurarea secvenelor repetitive
ERORILE N ALGORITMI
Erori n datele iniiale:
- erori de observare
- erori datorate numerelor iraionale
Erori de rotunjire
Erori de metod
Erori reziduale
Valoarea x este soluia exact, iar x* este soluia aproximativ :
x* > x x* este o aproximare a lui x prin adaos;
x* < x x* realizeaz o aproximare prin lips.
*
x
x - x =

*
*
x
x x
*
=
*
*
x
x
x x
r
*

=
Eroare:
Eroare absolut:
Eroare relativ:
Erorile pot fi acceptate sau respinse:
n funcie de mrimea lor i
n funcie de mrimea valorilor crora li se asociaz.
PROIECTAREA ALGORITMILOR
Proiectarea, codificarea i testarea top-down
Proiectarea modularizat
Proiectarea structurat