Documente Academic
Documente Profesional
Documente Cultură
ALGORITMI
NOIUNI INTRODUCTIVE DEFINIRE EXEMPLE DIN MATEMATIC METODE DE REPREZENTARE LIMBAJ PSEUDOCOD SCHEME LOGICE o STRUCTURI FUNDAMENTALE DE CONTROL STRUCTURA LINIAR STRUCTURA DECIZIONAL STRUCTURA REPETITIV o APLICAII o o o o
Noiuni introductive
Pentru a nelege noiunea de algoritm vom porni de la un exemplu. S presupunem c mama ne roag s cumprm pine. Ce trebuie s facem?
3
Cnd am decis s plecm la magazin vom proceda astfel: - lum banii necesari; - ne ndreptm ctre magazin; - solicitm o pine; - o pltim; - venim cu ea ctre cas; - o dm mamei.
* care conine 6 etape (deci un numr finit de operaii); * care au fost scrise n ordinea n care trebuie executate (deci sunt ordonate); * fiecare etap este explicat n cuvinte (deci este complet definit); * i care pornind de la ceva (n cazul nostru bani) obinem ceea ce dorim (pinea). Putem defini acum noiunea de algoritm sintetiznd cele spuse astfel:
5
Definire
Se numete algoritm o secven finit de operaii ordonat i complet definit care pornind de la datele de intrare produce rezultatele.
6
S lum un alt exemplu: Presupunem c vrem s citim un numr ntreg (pe care noi l introducem de la tastatur) i l tiprim (pe ecranul monitorului). irul aciunilor ce trebuie executate este urmtorul: - citete numrul - tiprete numrul i n acest caz am obinut un algoritm. Aciunile trebuie executate n ordinea n care au fost puse. Astfel, nu putem tipri numrul nainte ca acesta s fie cunoscut (citit).
Tem:
Scriei un algoritm care calculeaz suma a dou numere ntregi a i b. Modificai apoi algoritmul astfel nct s calculeze i produsul celor dou numere.
Rezolvare: Algoritmul problemei: 1. Solicit valori pentru a i b 2. Calculeaz S=a+b 3. Furnizeaz rezultatul pentru S
1. Solicit valori pentru a i b 2. Calculeaz S=a+b 3. Calculeaz P=a*b 4. Furnizeaz rezultatul pentru S i pentru P
10
Dou din cele mai folosite forme de descriere a algoritmilor sunt: limbajul pseudocod; Scheme logice.
12
15
Tem:
S se calculeze media aritmetic a 3 numere ntregi x, y i z. Se cer: a) algoritmul; b) pseudocodul.
16
List variabile
unde List variabile cuprinde numele simbolice ale variabilelor crora li se asociaz valori numerice (citite).
18
List variabile
V = expresie
Un astfel de bloc indic urmtoarea succesiune de operaii: - se calculeaz expresia din membrul drept; - se atribuie variabilei din membrul stng valoarea calculat anterior (V reprezint numele variabilei).
20
TRUE
condiie
FALSE
Condiia logic nscris poate s aib valoarea adevrat sau fals; n funcie de valoarea logic obinut, blocul urmtor care va fi parcurs va fi legat de ramura true(adevrat) sau ramura false(fals).
21
START
22
STOP
23
Exemplu:
S se calculeze suma a dou numere naturale a i b. Rezolvare: a) Algoritmul: 1. Solicit valori pentru a i b 2. Calculeaz S=a+b 3. Furnizeaz rezultatul pentru S
24
b) Pseudocodul:
citete a,b S=a+b scrie S stop
25
a c) Schema logic:
START a, b S=a+b
STOP
26
Tem:
S se calculeze produsul a trei numere ntregi x, y i z. Se cer: a) algoritmul; b) pseudocodul; c) schema logic.
27
Structuri de control
O structur nseamn o combinaie de operaii utilizat n scrierea algoritmilor. Orice algoritm care are un punct de nceput i un punct de sfrit poate fi reprezentat ca o combinaie a trei structuri de control: Secvena; Decizia; Repetiia.
28
Structura secvenial
Secvena reprezint o succesiune de dou sau mai multe operaii care conine o transformare de date:
Secvena A
Exemplu:
S se calculeze suma, produsul i diferena a trei nume ntregi x, y i z. a) algoritmul: 1. Se dau valori pentru x, y i z 2. Calculeaz S=x+y+z 3. Calculeaz P=x*y*z 4. Calculeaz diferena D=x-y-z 5. Afieaz rezultatele pentru S, P i D.
30
31
c) Schema logic:
START
x,y,z
S=x+y+z P=x*y*z
D=x-y-z S, P, D STOP
32
Tem:
Se dau trei numere naturale a, b i c. S se calculeze valorile expresiilor:
S1=(a+b)*(a-b) S2=a*b+a*c+b*c P=S1*S2
Structura decizional
Decizia reprezint alegerea unei operaii sau a unei secvene de operaii dintre dou alternative posibile. Forma structurii decizionale este urmtoarea:
true Secvena A condiie false Secvena B
34
n limbaj natural, execuia poate fi descris astfel: - se evaluez condiia; - dac condiia este adevrat, se execut Secvena A; - n caz contrar (dac condiia este fals) se execut Secvena B. n pseudocod, execuia se descrie astfel: dac condiie atunci Secvena A altfel Secvena B
35
Exemplu:
Se dau dou numere naturale a i b. S se determine care dintre ele are valoarea mai mare. Rezolvare: a) Algoritmul: 1. Se dau valori lui a i b 2. Se determin maximul dintre a i b: dac a este mai mare ca b atunci maximul este a altfel maximul este b 3. Se afieaz maximul 36
c) Schema logic:
start a, b true max=a a>b false max=b
max stop
38
Tem:
S se determine dac un numr x este pozitiv sau nu. Se cer: - algoritmul; - pseudocodul; - schema logic.
39
true Secvena A
condiie
false
40
n limbaj natural, execuia poate fi descris astfel: - se evaluez condiia; - dac condiia este adevrat, se execut Secvena A apoi execuia structurii decizionale se ncheie; - n caz contrar (dac condiia este fals) execuia structurii decizionale se ncheie. n pseudocod, execuia se descrie astfel: dac condiie atunci Secvena A
41
Exemplu:
Se citete o valoare ntreag a. n cazul n care aceasta este nul (egal cu 0) se va tipri mesajul am citit zero. Altfel, nu se va da mesaj. Rezolvare: a) Algoritmul: 1. Se d valoare lui a 2. Se determin dac a este nul: dac a este egal cu zero atunci se va tipri am citit zero
42
43
c) Schema logic:
start
a
true am citit zero a=0 false
stop
44
Tem:
Se citete de la tastatur un numr ntreg x. n cazul n care acesta este cuprins n intervalul [1,100] se va afia mesajul numr cuprins n interval, altfel nu se va afia nici un mesaj. Se cer: algoritmul; pseudocodul; schima logic.
45
Structura repetitiv
Repetiia (bucla sau iteraia) asigur execuia unei secvene n mod repetat n funcie de o anumit condiie. Exist trei tipuri de structuri repetitive: - bucla cu test iniial; - bucla cu test final; - bucla cu contor.
46
condiie
false
true Secvena A
47
Execuia structurii repetitive cu test iniial presupune parcurgerea urmtoarelor etape: 1.Se evalueaz condiia; dac rezultatul este adevrat se trece la pasul 2, altfel execuia se ncheie; 2. Se execut secvena A, apoi se trece la pasul 1).
48
Exprimarea n pseudocod:
ct timp condiie execut Secvena A
49
Exemplu:
S se calculeze suma primelor n numere naturale.
Rezolvare:
a) Algoritmul: 1. Se d valoare lui n; 2. Se d lui S valoarea 0 i lui I valoarea 1 3. Ct timp I este mai mic sau egal cu n se calculeaz suma dup formula S=S+I i I ia valoarea urmtorului termen al sumei, dup formula I=I+1 4. Se afieaz valoarea sumei S. 50
b) Pseudocodul:
citete n S=0 I=1 ct timp I<=n execut S=S+I I=I+1 scrie S stop
51
i<=n
true s=s+i i=i+1
false s stop
52
Tem
S se calculeze produsul primelor n numere naturale. Se cer: a) algoritmul; b) pseudocodul; c) schema logic.
53
2. Structura repetitiv cu test final: Structura repetitiv cu test final are forma:
Secvena A
condiie
true
false
54
Execuia buclei cu test final presupune parcurgerea urmtoarelor etape: 1. Se execut secvena A 2. Se evalueaz condiia; dac rezultatul este fals, se continu cu pasul 1), n caz contrar, se ncheie execuia buclei.
55
Exprimarea n pseudocod:
56
Exemplu:
S se calculeze suma primelor n numere naturale. Rezolvare: a) Algoritmul: 1. Se d valoare lui n; 2. Se d lui S valoarea 0 i lui I valoarea 1 3. Se calculeaz suma dup formula S=S+I i I ia valoarea I=I+1, pn cnd I>n. 4. Se afieaz valoarea sumei.
57
b) Pseudocodul: a
citete n S=0 I=1 repet S=S+I I=I+1 pn cnd I>n scrie S stop
58
s=0
i=1 s=s+i
i=i+1 false
i>n true
stop
59
Tem:
S se calculeze produsul primelor n numere naturale. Se cer: - algoritmul; - pseudocodul; - schema logic.
60
contor<=vf
true
secvena A
contor=contor +pas
unde cu vi s-a notat valoarea iniial, iar cu vf s-a 61 notat valoarea final.
Aceast structur are un numr cunoscut de repetiii a Secvenei A, motiv pentru care se numete structur repetitiv cu contor. Execuia structurii repetitive cu contor presupune parcurgerea urmtoarelor etape: 1).Variabila de ciclare contor ia valoarea iniial vi. 2). Dac contor este mai mic sau egal cu valoarea final vf, se execut Secvena A, se adun 1 la contor i se reia cu pasul 2).. Altfel, execuia este ncheiat.
62
Exprimarea n pseudocod:
pentru contor=vi, vf execut secvena A
63
Exemplu:
S se calculeze suma primelor n numere naturale. Rezolvare: a) Algoritmul: 1. Se d valoare lui n; 2. Se d lui S valoarea 0 i lui I valoarea 1 3. Pentru I lund valori de la 1 pn la n se calculeaz suma dup formula S=S+I 4. Se afieaz valoarea sumei.
64
b) Pseudocodul:
citete n S=0 petntru I=1, n execut S=S+I
scrie S stop
65
c) Schema logic:
start n s=0 i=1
false
i<=n true
i=i+1
s=s+i
66
stop
Tem:
S se calculeze produsul primelor n numere naturale. Se cer: - algoritmul; - pseudocodul; - schema logic.
67
Aplicaii
1. Se citesc dou valori ntregi a i b. Se cere s se tipreasc media lor aritmetic. 2. Se citesc 3 numere naturale. Se cere s se tipreasc primul numr, suma dintre primul i al doilea, suma celor trei numere. 3. Se citete x numr natural. S se evalueze expresia de mai jos:
x 2 , x 3 x daca x 0 inrest
68
4. Se citesc trei numere ntregi. S se tipreasc (dac exist) numrul care este egal cu suma celorlalte dou. 5. Se citete n (numr ntreg). Se cere s se calculeze suma: S=1+3+5++n. 6. S se calculeze suma: S=0,1+0,2+0,3++0,9. 7. S se calculeze media aritmetic a primelor n numere naturale.
69