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
Produs scalar ntre dou mulimi
Algoritmi cu numr finit de pai, a posteriori cunoscut
CMMDC ntre dou numere
Numerele prime pn la o limit dat
Algoritmi cu numr infinit de pai
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

formula iterativ

Suma elementelor unui ir


Produsul elementelor unui
ir
Produs scalar
Maxim (minim) dintr-un ir
Cmmdc dintre dou numere

formula de start
formula recursiv

REPREZENTAREA
ALGORITMILOR PRIN
SCHEME LOGICE
Blocul START

Blocul STOP

START

STOP

Blocul de citire

Blocul de scriere

Citete
date_de_intrare

Scrie
date_de_ieire

Blocul de atribuire
v=e

ve

ev

Blocul de ramificare

c1

c2

cn

c1 c2 cn = 1
ci cj = 0, i j; i,j = 1,n

Pentru cazul n =2
NU

DA

Structurile fundamentale din


programarea structurat
Structura secvenial (liniar)
arbore

s.l.s.

pseudocod
s1;

BLOCK

s2;

s1

s2

sn

s1

s2

analitic:

sn

sn;

BLOCK(s1,s2,,sn)

Structur PRIVILEGIAT !

Structurile alternative - selecia simpl


s.l.s.
Nu

arbore
Da

IF-THEN-ELSE

c
s2

s1

s1

s2

analitic
pseudocod
IF c THEN s1
ELSE s2
ENDIF

IF-THEN-ELSE(c,s1,s2)
Structur PRIVILEGIAT !

Structurile alternative - pseudoalternativa


s.l.s.
Nu

arbore
Da

IF-THEN

c
s1

s1

analitic
pseudocod
IF-THEN (c,s1)
IF c THEN s1
ENDIF

Transformarea n structur privilegiat


s.l.s.
Nu

Da
c

s1

analitic
IF-THEN (c,s1) =
IF-THEN-ELSE(c,s1, )

Structura pseudoalternativ pe ramura fals


IF-ELSE (c,s1) = IF-THEN( c,s1) =
= IF-THEN-ELSE(c,, s1) = IF-THEN-ELSE( c,s1,)

Structura alternativ multipl

s.l.s.

analitic

i
i=v1
s1

i=v2
...

s2

i=vn

iV

sn

arbore
CASE-OF i

s1

s2

...

sn

CASE-OF (i,s1,s2,,sn,s)

pseudocod
CASE-OF
i=v1: s1
i=v2: s2
...
i=vn:sn
ELSE s
ENDCASE

Structurile repetitive
Structura repetitiv condiionat anterior
s.l.s.

c
Nu

arbore
Da

WHILE-DO

s
analitic

pseudocod
s

WHILE-DO(c,s)

WHILE c DO
ENDWHILE

Structur PRIVILEGIAT !

Structura repetitiv condiionat posterior


s.l.s.

arbore

DO-UNTIL

c
Da

s
Nu

pseudocod
s

DO
UNTIL c

analitic
DO-UNTIL(s,c)

Structura repetitiv cu numrtor


s.l.s.

arbore
DO-FOR(vi,vf,vr)

v=vi
vvf

Nu

Da

s
v=v+vr

N = [(vf - vi) / vr] + 1

pseudocod

DO-FOR v=vi,vf,vr
s
ENDDO

analitic

DO-FOR(v,vi,vf,vr,s)

STRUCTURAREA ALGORITMILOR
Mulimea structurilor privilegiate
S = (BLOCK, IF-THEN-ELSE, IF-THEN)

Mulimea structurilor fundamentale


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).

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.
Erorile pot fi acceptate sau respinse:
n funcie de mrimea lor i
n funcie de mrimea valorilor crora li se asociaz.

Eroare:

x = x - x
*

Eroare absolut:
Eroare relativ:

x* x x *
rx*

x x*
x*

PROIECTAREA ALGORITMILOR

Proiectarea, codificarea i testarea top-down

Proiectarea modularizat

Proiectarea structurat

S-ar putea să vă placă și