Sunteți pe pagina 1din 71

Algoritmi

1
ALGORITMI
o NOŢIUNI 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Ă
2
Noţiuni introductive
Pentru a înţelege noţiunea de
algoritm vom porni de la un
exemplu.
Să presupunem că mama ne
roagă să cumpărăm pâine. Ce
trebuie să facem?
3
Când am decis să plecăm la
magazin vom proceda astfel:
- luăm banii necesari;
- ne îndreptăm către magazin;
- solicităm o pâine;
- o plătim;
- venim cu ea către casă;
- o dăm mamei.
4
Am obţinut astfel un algoritm:

* care conţine 6 etape (deci un număr finit de


operaţii);
* 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)
obţinem ceea ce dorim (pâinea).
Putem defini acum noţiunea de algoritm
sintetizând cele spuse astfel:
5
Definire

Se numeşte algoritm o secvenţă


finită de operaţii ordonată şi
complet definită care pornind
de la datele de intrare produce
rezultatele.
Pe scurt: Un algoritm este un plan de
rezolvare a unei probleme. 6
7
In lectia de azi ne vom ocupa de pasul
2, si anume “Elaborarea modului de
rezolvare al problemei”.

8
Să luăm un alt exemplu:
Presupunem că vrem să citim un număr
întreg (pe care noi îl introducem de la
tastatură) şi îl tipărim (pe ecranul
monitorului). Şirul acţiunilor ce trebuie
executate este următorul:
- citeşte numărul
- tipăreşte numărul
Şi în acest caz am obţinut un algoritm.
Acţiunile trebuie executate în ordinea în care
au fost puse. Astfel, nu putem tipări numărul
înainte ca acesta să fie cunoscut (citit).
9
Temă:

Scrieţi un algoritm care calculează suma


a două numere întregi a şi b.
Modificaţi apoi algoritmul astfel încât să
calculeze şi produsul celor două numere.

10
Rezolvare:

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

11
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

12
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.
13
Două din cele mai folosite forme de descriere a
algoritmilor sunt:
 limbajul pseudocod;
 Scheme logice.

14
Reprezentarea algoritmilor
în limbaj pseudocod

Limbajul pseudocod foloseşte


cuvinte cheie, adică nişte cuvinte
cu înţeles prestabilit ce indică
operaţia care se execută.

15
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
16
b) Pseudocodul:
Inceput program
citeşte a,b
S=a+b
scrie S
stop

17
Temă:

Să se calculeze media aritmetică a 3 numere întregi


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

18
Reprezentarea algoritmilor
prin scheme logice
Schemele logice utilizează săgeţi de
legătură între diferite forme geometrice care
simbolizează acţiunile ce urmează a fi
executate.
În continuare sunt prezentate blocurile
care intră în componenţa unei scheme
logice:
19
1. Bloc pentru introducerea datelor
(bloc de citire)

Listă variabile

unde “Listă variabile” cuprinde numele simbolice ale


variabilelor cărora li se asociază valori numerice
(citite).
20
2. Bloc de extragere a rezultatelor
(bloc de scriere)

Listă variabile

unde variabilele menţionate în listă constituie rezultate ale


problemei.

21
3. Bloc de calcul
(bloc de atribuire)

V = expresie

Un astfel de bloc indică următoarea succesiune de operaţii:


- se calculează expresia din membrul drept;
- se atribuie variabilei din membrul stâng valoarea calculată
anterior (V reprezintă numele variabilei).

22
4. Bloc de decizie
(bloc decizional)

Adevarat FALS
condiţie

Condiţia logică înscrisă poate să aibă valoarea


“adevărat” sau “fals”; în funcţie de valoarea logică
obţinută, blocul următor care va fi parcurs va fi legat
de ramura “true”(adevărat) sau ramura “false”(fals).

23
5. Bloc de început
(bloc de start)

START

Indică începutul algoritmului.

24
6. Bloc de sfârşit
(bloc de stop)

STOP

Indică sfârşitul algoritmului.

25
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

26
b) Pseudocodul:
Inceput program
citeşte a,b
S=a+b
scrie S
stop

27
a c) Schema logică:
START

a, b

S=a+b

STOP 28
Temă:

Să se calculeze produsul a trei numere întregi x,


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

29
Structuri de control

O structură înseamnă o combinaţie de operaţii


utilizată în scrierea algoritmilor. Orice algoritm care are
un punct de început şi un punct de sfârşit poate fi
reprezentat ca o combinaţie a trei structuri de control:
 Secvenţa;
 Decizia;
 Repetiţia.

30
Structura secvenţială

Secvenţa reprezintă o succesiune de două sau mai multe


operaţii care conţine o transformare de date:

Secvenţa A

în care “Secvenţa A” reprezintă o transformare de date.

31
Exemplu:

Să se calculeze suma, produsul şi diferenţa 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ă diferenţa D=x-y-z
5. Afişează rezultatele pentru S, P şi D.
32
b) pseudocodul:
Inceput program
citeşte x, y, z
S=x+y+z
P=x*y*z
D=x-y-z
scrie S, P, D
stop

33
c) Schema logică:
START

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

S, P, D
STOP 34
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ă.

35
Structura decizională

Decizia reprezintă alegerea unei operaţii sau a unei


secvenţe de operaţii dintre două alternative posibile.
Forma structurii decizionale este următoarea:

true condiţie false

Secvenţa A Secvenţa B

36
În limbaj natural, execuţia poate fi
descrisă astfel:
- se evalueză condiţia;
- dacă condiţia este adevărat, se execută “Secvenţa A”;
- în caz contrar (dacă condiţia este falsă) se execută
“Secvenţa B”.

În pseudocod, execuţia se descrie astfel:


dacă condiţie atunci
Secvenţa A
altfel
Secvenţa B
37
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 afişează maximul
38
b) Pseudocodul:
Inceput program
citeşte a
dacă a>b atunci
max=a
altfel
max=b

scrie max
stop 39
c) Schema logică:
start
a, b
true false
a>b
max=a max=b

max

stop 40
Temă:

Să se determine dacă un număr x este pozitiv sau


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

41
Decizia cu varianta unei căi nule

Mai există o formă a structurii decizionale şi anume


cea cu varianta unei căi nume.
Forma acestei structuri este următoarea:

true condiţie false

Secvenţa A

42
În limbaj natural, execuţia poate fi
descrisă astfel:
- se evalueză condiţia;
- dacă condiţia este adevărat, se execută “Secvenţa A”
apoi execuţia structurii decizionale se încheie;
- în caz contrar (dacă condiţia este falsă) execuţia
structurii decizionale se încheie.

În pseudocod, execuţia se descrie astfel:


dacă condiţie atunci
Secvenţa A

43
Exemplu:
Se citeşte o valoare întreagă a. În cazul în care
aceasta este nulă (egală cu 0) se va tipări 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 tipări
“am citit zero”

44
b) Pseudocodul:
citeşte a
dacă a=0 atunci
scrie ‘am citit zero’

stop

45
c) Schema logică:
start
a
true false
a=0
‘am citit zero’

stop
46
Temă:
Se citeşte de la tastatură un număr întreg x. În
cazul în care acesta este cuprins în intervalul
[1,100] se va afişa mesajul “număr cuprins în
interval”, altfel nu se va afişa nici un mesaj.
Se cer:
algoritmul;
pseudocodul;
schima logică.

47
Structura repetitivă

Repetiţia (bucla sau iteraţia) asigură execuţia unei


secvenţe în mod repetat în funcţie de o anumită
condiţie.
Există trei tipuri de structuri repetitive:
- bucla cu test iniţial;
- bucla cu test final;
- bucla cu contor.

48
1. Structura repetitivă cu test iniţial

Structura repetitivă cu test iniţial are forma:

condiţie false

true
Secvenţa A

49
a
Execuţia structurii repetitive cu test iniţial
presupune parcurgerea următoarelor etape:
1.Se evaluează condiţia; dacă rezultatul este
adevărat se trece la pasul 2, altfel execuţia se
încheie;
2. Se execută secvenţa A, apoi se trece la pasul 1).

50
Exprimarea în pseudocod:

cât timp condiţie execută


Secvenţa A

51
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. Cât timp I este mai mic sau egal cu n se calculează
suma după formula S=S+I
şi I ia valoarea următorului termen al sumei, după
formula I=I+1
4. Se afişează valoarea sumei S. 52
b) Pseudocodul:
citeşte n
S=0
I=1
cât timp I<=n execută
S=S+I
I=I+1
scrie S
stop
53
c)
a Schema logică:
start
n
s=0
i=1

false
i<=n
true s
s=s+i
stop
i=i+1
54
Temă

Să se calculeze produsul primelor n numere


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

55
2. Structura repetitivă cu test final:

Structura repetitivă cu test final are forma:

Secvenţa A

false
condiţie

true
56
a Execuţia buclei cu test final presupune
parcurgerea următoarelor etape:
1. Se execută secvenţa A
2. Se evaluează condiţia; dacă rezultatul este fals,
se continuă cu pasul 1), în caz contrar, se încheie
execuţia buclei.

57
Exprimarea în pseudocod:

repetă
Secvenţa A
până când condiţie

58
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, până când I>n.
4. Se afişează valoarea sumei.

59
b) Pseudocodul:
a citeşte n
S=0
I=1
repetă
S=S+I
I=I+1
până când I>n
scrie S
stop
60
ac) Schema logică:
start
n
s=0
i=1

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

62
3. Structura repetitivă cu contor:
Structura repetitivă cu contor are forma:

contor=vi

false true
contor<=vf
secvenţa A
unde cu “vi” s-a notat valoarea iniţială, iar cu “vf” s-a
contor=contor +pas
notat valoarea finală.

63
Această structură are un număr cunoscut de repetiţii a
“Secvenţei A”, motiv pentru care se numeşte structură
repetitivă cu contor.
Execuţia structurii repetitive cu contor presupune
parcurgerea următoarelor etape:
1).Variabila de ciclare “contor” ia valoarea iniţială “vi”.
2). Dacă “contor” este mai mic sau egal cu valoarea finală “vf”, se
execută “Secvenţa A”, se adună 1 la “contor” şi se reia cu
pasul 2).. Altfel, execuţia este încheiată.

64
Exprimarea în pseudocod:

pentru contor=vi, vf execută


secvenţa A

65
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 luând valori de la 1 până la n se
calculează suma după formula S=S+I
4. Se afişează valoarea sumei.

66
b) Pseudocodul:
citeşte n
S=0
petntru I=1, n execută
S=S+I

scrie S
stop

67
c) Schema logică:
start
n
s=0
i=1

false i=i+1
i<=n
s s=s+i
true

stop 68
Temă:

Să se calculeze produsul primelor n numere


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

69
Aplicaţii
1. Se citesc două valori întregi a şi b. Se cere să se
tipărească media lor aritmetică.
2. Se citesc 3 numere naturale. Se cere să se
tipărească primul număr, suma dintre primul şi
al doilea, suma celor trei numere.
3. Se citeşte x număr natural. Să se evalueze expresia
de mai jos:
x 2 , daca x  0
x
3  x inrest
70
4. Se citesc trei numere întregi. Să se tipărească
(dacă există) numărul care este egal cu suma
celorlalte două.
5. Se citeşte n (număr î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.
71

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