bazele programarii
Click here to load reader
-
Upload
raluca-ene -
Category
Documents
-
view
124 -
download
11
description
Transcript of bazele programarii
![Page 1: bazele programarii](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/1.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/2.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/3.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/4.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/5.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/6.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/7.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/8.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/9.jpg)
analitic
pseudocod
arbore
IF-THEN (c,s1)
Structurile alternative - pseudoalternativa
![Page 10: bazele programarii](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/10.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/11.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/12.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/13.jpg)
Structura repetitivă condiţionată posterior
arbore
analiticpseudocod
DO s
UNTIL cDO-UNTIL(s,c)
s.l.s.
![Page 14: bazele programarii](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/14.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/15.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/16.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/17.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/18.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/19.jpg)
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](https://reader037.fdocuments.net/reader037/viewer/2022102503/557212b5497959fc0b90c392/html5/thumbnails/20.jpg)
PROIECTAREA ALGORITMILORPROIECTAREA ALGORITMILOR
Proiectarea, codificarea şi testarea top-down
Proiectarea modularizată
Proiectarea structurată