curs-baze2 lorena batagan

19
Programarea calculatoarelor Cursul 1 Curs 2

Upload: mihai-bumbacea

Post on 11-Apr-2016

23 views

Category:

Documents


0 download

DESCRIPTION

llll

TRANSCRIPT

Page 1: Curs-baze2 Lorena Batagan

Programarea calculatoarelor

Cursul 1

Curs 2

Page 2: Curs-baze2 Lorena Batagan

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

Page 3: Curs-baze2 Lorena Batagan

Caracteristicile algoritmilor

• Generalitate

Exemplu:

3x2-5x+7=0 ax2+bx+c=0, a,b,c R, a 0 a,b,c R

• Determinare (claritate)

Exemplul 1:

ax2+bx+c=0, a,b,c R1. a 0, ecuaţie de grad II2. a=0 şi b 0, ecuaţie de grad I3. a=0, b=0 şi c 0, ecuaţie imposibilă4. a=0, b=0 şi c=0, ecuaţie nedeterminată

Exemplul 2:

• Suma elementelor impare dintr-un şir• Suma elementelor pare dintr-un şir

Page 4: Curs-baze2 Lorena Batagan

• Finitudine

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ă

• Numărarea unor elemente care îndeplinesc o condiţie dată

Page 5: Curs-baze2 Lorena Batagan

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ă

Page 6: Curs-baze2 Lorena Batagan

Reprezentarea algoritmilor prin scheme logice

Blocul START Blocul STOP

Blocul de citire Blocul de scriere

Citeştedate_de_intrare

Scriedate_de_iesire

Blocul de atribuire

v = e v e

START STOP

Page 7: Curs-baze2 Lorena Batagan

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 8: Curs-baze2 Lorena Batagan

Structurile fundamentale din

programarea structurată

Structura secvenţială (liniară)

s.l.s.

analitic:

pseudocodarbore

s1

s2

sn

BLOCK

s1 sn

s1;

s2;

sn;

BLOCK(s1,s2,…,sn)

Structură PRIVILEGIATĂ !

Page 9: Curs-baze2 Lorena Batagan

Structurile alternative – selecţia simplăs.l.s.

analitic

pseudocod

arbore

c

IF-THEN-ELSE

s1 s2

IF c THEN s1ELSE s2

ENDIF

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

s1s2

cDaNu

Structură PRIVILEGIATĂ !

Page 10: Curs-baze2 Lorena Batagan

analitic

pseudocod

arbore

c

IF-THEN

s1

IF c THEN s1

ENDIF

IF-THEN (c,s1)

Structurile alternative - pseudoalternativas.l.s.

s1

cDaNu

Page 11: Curs-baze2 Lorena Batagan

Transformarea în structură alternativă – selecţia simplă

s.l.s. analitic

IF-THEN (c,s1) =

IF-THEN-ELSE(c,s1, )

s1

cDaNu

Structura pseudoalternativăpe ramura fals

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

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

Page 12: Curs-baze2 Lorena Batagan

Structura alternativă multiplăs.l.s.

arbore

analitic

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

i

s1 s2 ssn

i=v1 i=v2 i=vn i V

. . .

s1 s2 ssn

CASE-OF i

. . .

pseudocod

CASE-OF

i=v1: s1

i=v2: s2

. . .

i=vn:sn

ELSE s

ENDCASE

Page 13: Curs-baze2 Lorena Batagan

Structurile repetitive

Structura repetitivă condiţionată 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Ă !

Page 14: Curs-baze2 Lorena Batagan

Structura repetitivă condiţionată posterior

DO-UNTIL

cs

arbore

analiticpseudocod

DO s

UNTIL c

DO-UNTIL(s,c)

s.l.s.

c

s

DaNu

Page 15: Curs-baze2 Lorena Batagan

Structura repetitivă cu numărător

DO-FOR(vi,vf,vr)

c s

s.l.s. arbore

analitic

pseudocodDO-FOR v=v1,vf,vr

s

ENDDO

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

v vf

v=vi

Da

Nu

v=v+vr

s

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

Page 16: Curs-baze2 Lorena Batagan

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 mulţimea S’.

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: Curs-baze2 Lorena Batagan

Erorile în algoritmi

• Erori în datele iniţiale:

- erori de observare

- erori datorate numerelor iraţionale

• Erori de rotunjire

• Erori de metodă

• Erori reziduale

• eroare absolută

• eroare relativă

Page 18: Curs-baze2 Lorena Batagan

Proiectarea algoritmilor

• Proiectarea, codificarea şi testarea top-down

• Proiectarea modularizată

• Proiectarea structurată

Page 19: Curs-baze2 Lorena Batagan

Bibliografie

• 1. I. Gh. Roşca, B. Ghilic-Micu, C. Cocianu, M. Stoica, C. Uscatu, M.

Mircea, L. Bătăgan, C. Silvestru, Bazele programării calculatoarelor.

Teorie şi aplicaţii în C, Ed. ASE, Bucureşti, 2006, ISBN 973-594-591-6

• 2. I. Gh. Roşca, B. Ghilic-Micu, C. Cocianu, M. Stoica, C. Uscatu,

Programarea calculatoarelor. Ştiinţa învăţării unui limbaj de programare,

Teorie şi aplicaţii, Ed. ASE, 2003

• 3. Ion Smeureanu, Marian Dârdală, Programarea în limbajul C/C++, Ed.

CISON, Bucureşti 2004, ISBN 973-99725-7-8