Sunteți pe pagina 1din 68

ALGORITMI

o NOIUNI INTRODUCTIVE
o DEFINIRE
o EXEMPLE DIN MATEMATIC
o METODE DE REPREZENTARE
LIMBAJ PSEUDOCOD
SCHEME LOGICE
o STRUCTURI FUNDAMENTALE DE CONTROL
STRUCTURA LINIAR
STRUCTURA DECIZIONAL
STRUCTURA REPETITIV
o APLICAII
1
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?
2
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. 3
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:
4
Definire

Se numete algoritm o secven


finit de operaii ordonat i
complet definit care pornind
de la datele de intrare produce
rezultatele.

5
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).
6
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.

7
Rezolvare:

Algoritmul problemei:
1. Solicit valori pentru a i b
2. Calculeaz S=a+b
3. Furnizeaz rezultatul pentru S

8
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

9
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.
10
Dou din cele mai folosite forme de descriere a
algoritmilor sunt:
limbajul pseudocod;

Scheme logice.

11
Reprezentarea algoritmilor
n limbaj pseudocod

Limbajul pseudocod folosete


cuvinte cheie, adic nite cuvinte cu
neles prestabilit ce indic operaia
care se execut.

12
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
13
b) Pseudocodul:
citete a,b;
S:=a+b;
scrie S;
stop

14
Tem:

S se calculeze media aritmetic a 3 numere


ntregi x, y i z. Se cer:
a) algoritmul;
b) pseudocodul.

15
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:
16
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).
17
2. Bloc de extragere a rezultatelor
(bloc de scriere)

List expresii(constante,
variabile,functii, operatori)

unde variabilele menionate n list constituie rezultate ale


problemei.
18
3. Bloc de prelucrare
(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).
19
4. Bloc de decizie
(bloc decizional)

TRUE FALSE
condiie

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).
20
5. Bloc de nceput
(bloc de start)

START

Indic nceputul algoritmului.

21
6. Bloc de sfrit
(bloc de stop)

STOP

Indic sfritul algoritmului.

22
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

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

24
a c) Schema logic:
START

Citeste a, b

S:=a+b

STOP 25
Tem:

S se calculeze produsul a trei numere ntregi x,


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

26
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:
Structura secveniala;
Structura alternativa :-decizionala ;
- de selectie;
Structura repetitiva :
- cu nr necunoscut de pasi - cu test initial;
- cu test final;

- cu nr cunoscut de pasi -cu contor;

27
Structura secvenial

Secvena reprezint o succesiune de dou


sau mai multe operaii care conine o
transformare de date:
Secvena A

n care Secvena A poate cuprinde operatiile: de citire,


de atribuire,
de scriere / afisare.
28
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.
29
b) pseudocodul:
x,y,z,S,D,P: Integer ;
citete x, y, z ;
S:=x+y+z ;
P=x*y*z ;
D=x-y-z;
scrie S, P, D
stop
30
c) Schema logic:
START

Citeste x,y,z

S:=x+y+z
P:=x*y*z
D:=x-y-z

Scrie S, P, D

STOP 31
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.
32
Structura decizional

Decizia reprezint alegerea unei operaii sau a unei


secvene de operaii dintre dou alternative posibile.
Forma structurii decizionale este urmtoarea:

true condiie false

Secvena A Secvena B

33
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
34
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 35
b) Pseudocodul:
a,b,min, max :Integer;
citete a ;
dac a>b atunci
max=a
altfel
max=b ;
scrie max;
stop

36
c) Schema logic:
start
Citeste a, b

true false
a>b
Max:=a Max:=b

Scrie max

stop
37
Tem:

S se determine dac un numr x este pozitiv sau


nu.
Se cer:
- algoritmul;
- pseudocodul;
- schema logic.

38
Decizia cu varianta unei ci nule

Mai exist o form a structurii decizionale i anume


cea numai cu o ramura
Forma acestei structuri este urmtoarea:

true condiie false

Secvena A

39
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

40
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
41
b) Pseudocodul:
a: integer;
citete a ;
dac a=0 atunci
scrie am citit zero ;

stop

42
c) Schema logic:

start
Citeste a
true false
a=0
am citit zero

stop
43
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.

44
Structura repetitiv

Repetiia (bucla , ciclul de repetitie sau iteraia)


asigur execuia unei secvene n mod repetat n
funcie de o anumit condiie.
Exist trei tipuri de structuri repetitive:
- repetitia cu test iniial;
- repetitia cu test final;
- repetitia cu contor.

45
1. Structura repetitiv cu test iniial

Structura repetitiv cu test iniial are forma:

condiie false

true
Secvena A

46
a
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).

47
Exprimarea n pseudocod:

ct timp condiie execut


Secvena A

48
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. 49
b) Pseudocodul:
i, n, s :Integer ;
citete n;
S:=0;
I:=1;
ct timp I<=n execut
S:=S+I ;
I:=I+1;
scrie S;
stop
50
c)
a Schema logic:
start
Citeste n

S:=0
i:=1

false
i<=n
true Scrie S
S:=s+i
stop
i:=i+1
51
Tem

S se calculeze produsul primelor n numere


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

52
2. Structura repetitiv cu test final:

Structura repetitiv cu test final are forma:

Secvena A

false
condiie

true
53
a 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.

54
Exprimarea n pseudocod:

repet
Secvena A
pn cnd <condiie indeplinita >

55
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.
56
b) Pseudocodul:
i,n,S: Integer ;
a citete n ;
S:=0;
I:=1;
repet
S:=S+I;
I:=I+1;
pn cnd I>n ;
scrie S;
stop
57
ac) Schema logic:
start
Citeste n
S:=0
i:=1

S:=s+i
i:=i+1
false
i>n
true
Scrie S
58
Tem:
S se calculeze produsul primelor n numere
naturale.
Se cer:
- algoritmul;
- pseudocodul;
- schema logic.

59
3. Structura repetitiv cu contor:
Structura repetitiv cu contor are forma:

Contor:=vi

false true
contor<=vf
secvena A

contor=contor +pas

unde cu vi s-a notat valoarea iniial, iar cu vf s-a


notat valoarea final. 60
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.

61
Exprimarea n pseudocod:

pentru contor de la vi la vf execut


secvena A

62
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.

63
b) Pseudocodul:
i , n , S : integer ;
citete n;
S:=0 ;
pentru I de la 1 la n execut
S:=S+I;

scrie S;
stop
64
c) Schema logic:
start
Citeste n
S:=0
i:=1

false i:=i+1
i<=n
Scrie s S:=s+i
true

stop 65
Tem:

S se calculeze produsul primelor n numere


naturale.
Se cer:
- algoritmul;
- pseudocodul;
- schema logic.

66
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:
x2 , daca x 0
x
3 x inrest
67
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.
68

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