Sunteți pe pagina 1din 69

coala cu clasele I-VIII Ion Creang Suceava

prof. Marius UDUDEC

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.

Am obinut astfel un algoritm:

* 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

Algoritmul modificat are forma:

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

Metode de reprezentare a algoritmilor


Limbajul natural nu permite o descriere suficient de exact a algoritmilor. Din acest motiv pentru reprezentarea algoritmilor se folosesc diferite forme de descriere caracteristice.
11

Dou din cele mai folosite forme de descriere a algoritmilor sunt: limbajul pseudocod; Scheme logice.

12

Reprezentarea algoritmilor n limbaj pseudocod


Limbajul pseudocod folosete cuvinte cheie, adic nite cuvinte cu neles prestabilit ce indic operaia care se execut.
13

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
14

b) Pseudocodul: citete a,b S=a+b scrie S stop

15

Tem:
S se calculeze media aritmetic a 3 numere ntregi x, y i z. Se cer: a) algoritmul; b) pseudocodul.

16

Reprezentarea algoritmilor prin scheme logice


Schemele logice utilizeaz sgei de legtur ntre diferite forme geometrice care simbolizeaz aciunile ce urmeaz a fi executate. n continuare sunt prezentate blocurile care intr n componena unei scheme logice:
17

1. Bloc pentru introducerea datelor (bloc de citire)

List variabile

unde List variabile cuprinde numele simbolice ale variabilelor crora li se asociaz valori numerice (citite).
18

2. Bloc de extragere a rezultatelor (bloc de scriere)

List variabile

unde variabilele menionate n list constituie rezultate ale problemei.


19

3. Bloc de calcul (bloc de atribuire)

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

4. Bloc de decizie (bloc decizional)

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

5. Bloc de nceput (bloc de start)

START

Indic nceputul algoritmului.

22

6. Bloc de sfrit (bloc de stop)

STOP

Indic sfritul algoritmului.

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

n care Secvena A reprezint o transformare de date.


29

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

b) pseudocodul: citete x, y, z S=x+y+z P=x*y*z D=x-y-z scrie S, P, D stop

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

Se cer: a) algoritmul; b) pseudocodul; c) schema logic.


33

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

b) Pseudocodul: citete a dac a>b atunci max=a altfel max=b


scrie max stop
37

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

Decizia cu varianta unei ci nule


Mai exist o form a structurii decizionale i anume cea cu varianta unei ci nume. Forma acestei structuri este urmtoarea:

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

b) Pseudocodul: citete a dac a=0 atunci scrie am citit zero


stop

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

1. Structura repetitiv cu test iniial


Structura repetitiv cu test iniial are forma:

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

c) Schema logic: a start


n
s=0 i=1

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:

repet Secvena A pn cnd condiie

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

c) Schema logic : a start


n

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

3. Structura repetitiv cu contor:


Structura repetitiv cu contor are forma:
contor=vi false

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

S-ar putea să vă placă și