Download ppt - bazele programarii

Transcript
Page 1: bazele programarii

ALGORITMI ALGORITMI ŞŞI SCHEME LOGICEI SCHEME LOGICE

Caracteristicile algoritmilorCaracteristicile algoritmilor Iterativitate Iterativitate şşi recursivitatei recursivitate Reprezentarea algoritmilorReprezentarea algoritmilor Descrierea structurilor Descrierea structurilor

fundamentalefundamentale Structurarea algoritmilorStructurarea algoritmilor Erorile Erorile îîn algoritmin algoritmi Proiectarea algoritmilorProiectarea algoritmilor

Page 2: bazele programarii

CARACTERISTICILE CARACTERISTICILE ALGORITMILORALGORITMILOR

• Generalitate

• Determinare (claritate)

Exemplul 1: ecuaţia de grad 2

Exemplul 2: • Suma elementelor impare dintr-un şir

• Suma elementelor pare dintr-un şir

• Finitudine

Page 3: bazele programarii

Clase de algoritmi:

Algoritmi cu număr finit de paşi, a priori cunoscut

Algoritmi cu număr finit de paşi, a posteriori cunoscut

Algoritmi cu număr infinit de paşi

Produs scalar între două mulţimi

• CMMDC între două numere• Numerele prime până la o limită dată

• Rezolvarea unei ecuaţii transcendente• Numărarea unor elemente care îndeplinesc o condiţie dată

Page 4: bazele programarii

ITERATIVITATE ITERATIVITATE ŞŞI I RECURSIVITATERECURSIVITATE

IterativitateIterativitate Produs vectorial Pătratele

elementelor unui șir Creare vectori

RecursivitateRecursivitate 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ă

Page 5: bazele programarii

REPREZENTAREA REPREZENTAREA ALGORITMILOR PRIN ALGORITMILOR PRIN

SCHEME LOGICESCHEME LOGICEBlocul START Blocul STOP

Blocul de citire Blocul de scriere

Citeștedate_de_intrare

Scriedate_de_ieșire

Blocul de atribuire

v = e v e

START STOP

e v

Page 6: bazele programarii

Blocul de ramificare

c1 c2 … cn

c1 c2 … cn = 1

ci cj = 0, i j; i,j = 1,n

Pentru cazul n =2

ccc

NU DA

Page 7: bazele programarii

Structurile fundamentale din Structurile fundamentale din programarea structuratprogramarea structuratăă

Structura secvenţială (liniară)

s.l.s.

analitic:

pseudocodarbore

s1;

s2;

sn;

BLOCK(s1,s2,…,sn)

Structură PRIVILEGIATĂ !

BLOCK

s1 sn…s2

Page 8: bazele programarii

Structurile alternative - selecţia simplă

s.l.s.

analitic

pseudocod

arbore

IF c THEN s1ELSE s2ENDIF

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

Structură PRIVILEGIATĂ !

Page 9: bazele programarii

analitic

pseudocod

arbore

IF-THEN (c,s1)

Structurile alternative - pseudoalternativa

Page 10: bazele programarii

Transformarea în structură privilegiată

s.l.s.

analitic

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

Structura pseudoalternativă pe ramura fals

Page 11: bazele programarii

Structura alternativă multiplăs.l.s.

arbore

analitic

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

pseudocod

CASE-OFi=v1: s1

i=v2: s2

. . . i=vn:sn

ELSE sENDCASE

Page 12: bazele programarii

Structurile repetitive

Structura repetitivă condiţionată anterior

s.l.s. arbore

analitic

pseudocod

WHILE c DO s

ENDWHILE

WHILE-DO(c,s)

Structură PRIVILEGIATĂ !

Page 13: bazele programarii

Structura repetitivă condiţionată posterior

arbore

analiticpseudocod

DO s

UNTIL cDO-UNTIL(s,c)

s.l.s.

Page 14: bazele programarii

Structura repetitivă cu numărător

DO-FOR(vi,vf,vr)

s

s.l.s. arbore

analitic

pseudocodDO-FOR v=vi,vf,vr

sENDDO

DO-FOR(v,vi,vf,vr,s)N = [(vf - vi) / vr] + 1

Page 15: bazele programarii

STRUCTURAREA ALGORITMILORSTRUCTURAREA 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 mulţimea S (respectiv S’).

S = (BLOCK, IF-THEN-ELSE, IF-THEN)

Mulțimea structurilor privilegiateMulțimea structurilor privilegiate

Mulțimea structurilor fundamentaleMulțimea structurilor fundamentale

Page 16: bazele programarii

Teorema fundamentală de structură (Boem-Jacoppini)

• Fie P un algoritm nestructurat, format dintr-o mulţime A de acţiuni (operații) şi o mulţime C de condiții. Dacă se adaugă un număr finit de acţiuni şi/sau de condiții, se obţine un algoritm structurat, echivalent cu P.

Corolarul top-down

• Un algoritm P structurat este echivalent cu un algoritm pus sub una din următoarele forme:

• P = BLOCK(s1,s2,…,sn)• P = IF-THEN-ELSE(c,s1,s2)• P = WHILE-DO(c,s)

Page 17: bazele programarii

METODE DE STRUCTURARE A METODE DE STRUCTURARE A ALGORITMILORALGORITMILOR

Metoda dublării codurilor

• structurarea secvențelor alternative

• structurarea secvențelor repetitive

Metoda folosirii de variabile booleene

• structurarea secvențelor repetitive

Page 18: bazele programarii

ERORILE ERORILE ÎÎN ALGORITMIN ALGORITMI

Erori Erori îîn datele inin datele iniţţiale:iale:

- erori de observare- erori de observare

- erori datorate numerelor ira- erori datorate numerelor iraţţionaleionale Erori de rotunjireErori de rotunjire Erori de metodErori de metodăă Erori rezidualeErori reziduale

Page 19: bazele programarii

Valoarea x este soluția exactăValoarea x este soluția exactă,, iar iar x* este soluția aproximativă :x* este soluția aproximativă :

x* > xx* > x ► x* este o aproximare a lui x prin adaos;► x* este o aproximare a lui x prin adaos;

x* < xx* < x ► x* realizează o aproximare prin lipsă.► x* realizează o aproximare prin lipsă.

*x x- x= ε *

*

xxxε *

*

*

x x

xxr *

EroareEroare::

Eroare absolutăEroare absolută::

Eroare relativăEroare relativă::

Erorile pot fi acceptate sau respinseErorile pot fi acceptate sau respinse:: în funcţie de mărimea lorîn funcţie de mărimea lor şi şi în funcţie de mărimea valorilor cărora li se asociază. în funcţie de mărimea valorilor cărora li se asociază.

Page 20: bazele programarii

PROIECTAREA ALGORITMILORPROIECTAREA ALGORITMILOR

Proiectarea, codificarea şi testarea top-down

Proiectarea modularizată

Proiectarea structurată