Sunteți pe pagina 1din 69

Şcoala cu clasele I-VIII

“Ion Creangă”
Suceava

prof. Marius UDUDEC

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.

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

8
Rezolvare:

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

9
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 foloseşte


cuvinte cheie, adică nişte cuvinte cu
înţeles prestabilit ce indică operaţia
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:
citeşte 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ă 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:
17
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).

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

Listă variabile

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


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

TRUE FALSE
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).
21
5. Bloc de început
(bloc de start)

START

Indică începutul algoritmului.

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

STOP

Indică sfârşitul 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:

citeşte 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 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.

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

29
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.
30
b) pseudocodul:
citeşte 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 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

34
Î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
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 afişează maximul

36
b) Pseudocodul:
citeşte a
dacă a>b atunci
max=a
altfel
max=b

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

max

stop 38
Temă:

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


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

39
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

40
Î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

41
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”

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

stop

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

stop
44
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ă.

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

46
1. Structura repetitivă cu test iniţial

Structura repetitivă cu test iniţial are forma:

condiţie false

true
Secvenţa A

47
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).

48
Exprimarea în pseudocod:

cât timp condiţie execută


Secvenţa 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. 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. 50
b) Pseudocodul:
citeşte n
S=0
I=1
cât timp I<=n execută
S=S+I
I=I+1
scrie S
stop 51
c)
a Schema logică:
start
n
s=0
i=1

false
i<=n
true s
s=s+i
stop
i=i+1
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:

Secvenţa A

false
condiţie

true
54
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.

55
Exprimarea în pseudocod:

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

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, până când I>n.
4. Se afişează valoarea sumei.
57
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 58
ac) Schema logică:
start
n
s=0
i=1

s=s+i
i=i+1
false
i>n
true
s
59
stop
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
unde cu “vi” s-a notat valoarea iniţială, iar cu “vf” s-a notat
valoarea
falsefinală. true
contor<=vf
secvenţa A

contor=contor +pas

61
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ă.

62
Exprimarea în pseudocod:

pentru contor=vi, vf execută


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

64
b) Pseudocodul:
citeşte 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=i+1
i<=n
s s=s+i
true

stop 66
Temă:

Să se calculeze produsul primelor n numere


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

67
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
68
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.
69

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