bazele programarii

  • View
    36

  • Download
    2

Embed Size (px)

DESCRIPTION

bp - curs 1 algoritmi

Text of bazele programarii

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 STARTBlocul STOP Blocul de citireBlocul de scriere Citete date_de_intrare Scrie date_de_ieire Blocul de atribuire v = ev e STARTSTOP e v Blocul de ramificare c1c2cn c1 v c2 v v cn = 1 ci . cj = 0, i = j; i,j = 1,n Pentru cazul n =2 c cc NUDA 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 s1sn s2 Structurile alternative - selecia simpl s.l.s. analitic pseudocod arbore c IF-THEN-ELSE s1s2 IF c THEN s1 ELSE s2 ENDIF IF-THEN-ELSE(c,s1,s2) c s1 s2 DaNu 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 DaNu Transformarea n structur privilegiat s.l.s. analitic IF-THEN (c,s1) =IF-THEN-ELSE(c,s1, C) c s1 C DaNu 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 s1s2ssn i=v1i=v2i=vn ieV. . . s1s2ssn CASE-OF i . . . pseudocod CASE-OF i=v1: s1 i=v2: s2 . . .i=vn:sn 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 DOs ENDWHILE WHILE-DO(c,s) Structur PRIVILEGIAT ! Structura repetitiv condiionat posterior DO-UNTIL c s arbore analitic pseudocod DOs 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. *xx - x =**xx x * =**xxx xr*=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