9
Programarea calculatoarelor 16 3. Descrierea algoritmilor în pseudocod si cu ajutorul schemelor logice Ordinea în care se face înlantuirea pasilor unui algoritm defineste asa numita structura de control a algoritmului . Cea mai simpla structura de control este structura secventiala. O astfel de structura de control se compune din pasi care se înlantuie unul dupa altul, în ordinea în care apar în algoritm. Aceasta structura o vom numi bloc . Structura secventiala Pseudocod Schema logica Begin Pas 1; Pas 2; ……. Pas n; End Daca n = 1 nu se pune begin – end . De obicei la descrierea unui proces de calcul este nevoie sa se utilizeze si alte tipuri de structuri. Astfel , C . Bohn si G.Jacopini au aratat ca pentru exprimarea proceselor de calcul sunt suficiente trei structuri de control si anume: - structura secventiala; - structura alternativa ; - structura repetitiva (ciclica), conditionata anterior. Structura alternativa Pseudocod Schema logica < conditie > then Bloc 1; Pas 1 Pas 2 Pas n Cond 1 Cond 2 Bloc n Bloc 2 Bloc 1 Stop Da Nu Nu Da

A03_Algoritmi

  • Upload
    reb2009

  • View
    13

  • Download
    2

Embed Size (px)

DESCRIPTION

CALCULATOARE

Citation preview

  • Programarea calculatoarelor 16

    3. Descrierea algoritmilor n pseudocod si cu

    ajutorul schemelor logice

    Ordinea n care se face nlantuirea pasilor unui algoritm defineste asa numita structura de control a algoritmului. Cea mai simpla structura de control este structura secventiala. O astfel de structura de control se compune din pasi care se nlantuie unul dupa altul, n ordinea n care apar n algoritm. Aceasta structura o vom numi bloc. Structura secventiala Pseudocod Schema logica Begin Pas 1; Pas 2; . Pas n; End Daca n = 1 nu se pune begin end . De obicei la descrierea unui proces de calcul este nevoie sa se utilizeze si alte tipuri de structuri. Astfel , C . Bohn si G.Jacopini au aratat ca pentru exprimarea proceselor de calcul sunt suficiente trei structuri de control si anume: - structura secventiala; - structura alternativa ; - structura repetitiva (ciclica), conditionata anterior. Structura alternativa

    Pseudocod Schema logica < conditie > then Bloc 1;

    Pas 1

    Pas 2

    Pas n

    Cond1

    Cond2

    Bloc n

    Bloc 2

    Bloc 1

    Stop

    Da Nu

    NuDa

  • Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice

    17

    [ else if < conditie 2 > then bloc 2; ..] [ else bloc n; ] endif

    Structura repetitiva ( ciclica ), conditionata anterior Pseudocod Schema logica While < conditie > Bloc End while Si For < expresie 1 >; ; ; Bloc End for

    Conditie

    bloc

    Stop

    Nu Da

    Expr.

    Exp2

    Expr.

    Stop

    Da

    Nu

  • Programarea calculatoarelor 18

    Acest rezultat s-a aflat la baza ideii care a condus n anii '70 la

    conceptul de programare structurata. Acest concept a fost dezvoltat de E. W. Dijkstra n lucrarile sale, iar ulterior si de alti specialisti, ca de exemplu N. Wirth si C. A. R. Noare. El reprezinta un stil de programare care se impune si n prezent. Un efect imediat al programarii structurate este ridicarea productivitatii n programare si cresterea fiabilitatii programelor. Prin algoritm structural ntelegem un algoritm care are o structura de control realizata cu ajutorul celor trei structuri amintite mai sus. Ulterior s-au admis nca doua structuri, si anume: - stuctura selectiva - structura repetitiva (ciclica) conditionata posterior. Introducerea acestor structuri permite o flexibilitate mai mare n programare. n acest fel, programarea structurata reprezinta un stil de programare care contribuie la realizarea de programe care au o structura clara si care pot fi usor depanate si ntretinute. Structura selectiva Pseudocod Schema logica case c1: bloc 1; break; c2: bloc 2; break; cn: bloc n; break; [default bloc n+1] end

    Expr.1=c1

    Expr.2=c2

    Expr.n=cn

    Bloc 1

    Bloc 2

    Bloc n

    Bloc n+1

    STOP

    Da

    Da

    Da

    Nu

    Nu

    Nu

  • Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice

    19

    Structura repetitiva (ciclica) conditionata posterior

    Pseudocod Schema logica

    Repeat Bloc until

    n plus fata de structurile de control anterioare vom folosi:

    Conditie

    bloc

    Nu

    Da

  • Programarea calculatoarelor 20

    Pseudocod read , ; write , ; procedure (, ) corp endp PROGRAM [] Corp END

    n plus mai introducem instructiuni nestructurate: Stop goto

    De asemenea vom folosi operatorii: = atribuire (var=val;) +, -, *, /, mod, bp >,

  • Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice

    21

    Avem n!=1, daca n=0 si n!=1*2*3**(n-1)*n, daca n>0, n170. Acest calcul implica un proces ciclic. n pseudocod: PROGRAM factorial write "Introduceti valoarea lui n:" read n; if n170 then write "Nu apartine intervalului [0, 170] else f=1.0; i=2; while in f=f*i; i=i+1; endw write "n=", n, "f=", f; endif END Cu scheme logice:

    START factorial

    Introduce tivaloarea lui n

    n

    n170

    f=1.0

    i=2

    i n

    f= f*i

    i=i+1

    n=; nf=; f

    Stop STOP

    Nu apar tinintervalului[0,170]

    Da

    Nu

  • Programarea calculatoarelor 22

    Exemplul 2 Sa se descrie un algoritm care citeste valoarea lui x, calculeaza si afiseaza valoarea functiei f, definita prin f(x) = 4x3+3x2-2x+1, pt. x0. Rezolvare: n pseudocod: PROGRAM write "x="; read x; if x

  • Descrierea algoritmilor n pseudocod si cu ajutorul schemelor logice

    23

    Exemplul 1: Sa se descrie un algoritm care citeste valorile variabilelor a, b, c, d, x si afiseaza valoarea expresiei:

    dbxaxcbxax

    E++++

    = 32

    ,

    daca numitorul este diferit de zero, si zero n caz contrar: Rezolvare: n pseudocod: PROGRAM read a, b, c, d, x; if ax3+bx+d != 0 then E=(ax2+bx+c)/(ax3+bx+d); else E=0; endif END Cu scheme logice:

    START

    a,b,c,d,x

    ax+bx+d=0

    E=0 ax + bx + cE= a x + bx + d

    0E=;E0

    STOP

    DaNu

  • Programarea calculatoarelor 24