Sunteți pe pagina 1din 15

Algoritmi.

CAPITOL 1
ALGORITMI

Există două moduri de reprezentare a algoritmilor:


 prin scheme logice;
 prin limbaje de tip pseudocod.
Schema logică este o transcriere grafică a paşilor unui algoritm.
Limbajul pseudocod este un limbaj cu reguli sintactice care permite exprimarea
ordinii de execuţie a paşilor algoritmilor.
Un algoritm reprezintă o succesiune finită de paşi prin care din mulţimea datelor de
intrare ale unei probleme se produc date de ieşire corecte.
Blocurile folosite într-o schemă logică sunt următoarele:

bloc delimitaror

bloc de citire/scriere

bloc de atribuire

bloc de decizie Nu Da
Condiţi
e

Nume
bloc de procedură procedură

săgeată

conector de blocuri

Conform programării structurate un algoritm cu un singur punct de început şi un


singur punct de sfârşit poate fi descris cu ajutorul celor 3 structuri de control prezentate mai
jos.

a)structura secvenţială

Operaţie 1

Operaţie 2
4 Algoritmi.

b)structura alternativă
Nu Da
Condiţi
e
Operaţii Operaţii

c)structura repetitivă

Nu
Condiţi
e
Da

Operaţii

Programarea structurală admite şi utilizarea altor structuri de control cum sunt:


selecţia, ciclul cu test final şi ciclul cu contor.
Structura ciclică cu test final are următoarea formă:

Operaţii

Da Nu
Condiţi
e

Limbajul pseudocod
Limbajele de tip pseudocod folosesc o sintaxă mult mai liberă decât cele folosite de
limbajele de programare. Un algoritm scris în acest limbaj are avantajul că poate fi înţeles de
toţi programatorii, pe când un algoritm scris într-un limbaj de programare va fi înţeles doar de
cei care cunosc acel limbaj.
Limbajele de tip pseudocod folosesc diferite cuvinte cheie preluate dintr-un limbaj
natural. Exemple: dacă, atunci, altfel...
Expresiile aritmetice se vor scrie:
a x  a^ x
a  a /b
b
a mod b = restul împărţirii lui a la b;
a div b = câtul împărţirii lui a la b.
Algoritmi. 5

Un limbaj pseudocod conţine, în general, următoarele comenzi:


1.de începere a algoritmului:
început algoritm
2.de citire:
citeşte lista de variabile
3.de atribuire:
variabilă ← expresie
4.de ramificare:
dacă condiţie atunci operaţi
altfel operaţi
sfârşit dacă
5.de ciclare:
a) cât timp condiţie execută
operaţi
sfârşit cât timp
b) repetă operaţii
până când condiţie
6.de oprire:
sfârşit algoritm.

Aplicaţii

Aplicaţia 1:
Pentru funcţia:
 x 3  2 x  1, x  0
f(x) = 


x  x  5, x  0
2

să se realizeze schema logică şi pseudocodul care calculează valoarea acestei funcţii într-un
punct x dat.

Schema logică: Start

Citeşte x

Nu
x0 Da

f  x2  x  5 f  x3  2 x  1

Scrie f

Stop
6 Algoritmi.
Pseudocod:
Început algoritm
citeşte x
dacă x  0 atunci f← x 3  2 x  1
altfel f← x 2  x  5
sfârşit dacă
scrie f
Sfârşit algoritm

Aplicaţia 2:
Să se realizeze schema logică şi să se scrie pseudocodul care calculează media finală a
unui student cunoscând notele obţinute la analiză matematică (n1), fizică (n2), utilizarea
calculatoarelor (n3), precum şi creditele aferente acestor materii.
Formula cu care se calculează media este următoarea :

n1 * c1  n2 * c 2  n3 * c3
Media =
c1  c 2  c3

Apoi, în funcţie de media acestuia să se determine dacă studentul beneficiază de bursă


de merit, bursă de student sau nu primeşte bursă. Condiţia pentru bursă de merit este ca media
≥ 9.5, condiţia pentru bursă de student este 9.5>medie≥8, dacă nu studentul este nebursier.

Start

Schema logică:
Citeşte n1, n2,
n3, c1, c2, c3

Media  9.5
Nu Da

Media  8.0 Da
Nu Scrie
“bursă de
merit”

Scrie Scrie
“nebursier” “bursă de
student”

Stop

STOP
Algoritmi. 7
Pseudocod:
Început algoritm
citeşte n1, n2, n3, c1, c2, c3
n1 * c1  n2 * c 2  n3 * c3
media ←
c1  c 2  c3
dacă media ≥ 9.5 atunci scrie ” bursă de merit”
altfel  dacă media ≥ 8.0 atunci scrie ” bursă de student”
altfel scrie ” nebursier”
sfârşit dacă
sfârşit dacă
scrie media
Sfârşit algoritm

Aplicaţia 3:
Să se realizeze schema logică şi pseudocodul pentru rezolvarea ecuaţiei de gradul 2.
Ecuaţia de gradul 2 are următoarea formă:
ax2 + bx + c = 0

Schema logică: Start

Citeşte a, b, c

NU DA
a
=
0

  b 2  4ac
NU DA
b
=
0
c
0
NU NU DA
DA x c
b =
0

0 b 
NU DA
x1  “Ecuaţia nu “Ecuaţia are o
b
2a are soluţii” infinitate de
b x1   soluţii”
Re   2a
2a x2  x1
b 
x2 
2a
Scrie x

Im 
2a Scrie x1, x2

Scrie x1, x2
Scrie Re, Im

Stop
8 Algoritmi.

Pseudocod:
Început algoritm
citeşte a, b, c
dacă a=0 atunci
dacă b=0 atunci
dacă c=0 atunci scrie “Ecuaţia are o infinitate de soluţii”
altfel scrie “Ecuaţia nu are soluţii”
sfârşit dacă
c
altfel x← 
b
scrie x
sfârşit dacă
altfel ∆← b 2  4ac
b 
dacă ∆ > 0 atunci x1 ←
2a
b 
x2 ←
2a
scrie x1, x2
b
altfel dacă ∆ = 0 atunci x1 ← -
2a
x2 ← x1
scrie x1, x2
b
altfel Re ← -
2a

Im ←
2a
scrie Re, Im
sfârşit dacă
sfârşit dacă
sfârşit dacă
Sfârşit algoritm

Aplicaţia 4:
Find date 3 numere reale să se determine dacă acestea pot fi lungimile laturilor unui
triunghi şi în caz afirmativ să se stabilească natura acestuia.
Avem următoarele condiţii:
- triunghi echilateral: a = b = c
- triunghi dreptunghic: a 2  b 2  c 2 sau b 2  c 2  a 2 sau c 2  a 2  b 2
- triunghi isoscel: a =b sau b = c sau a =c

Schema logică:
Algoritmi. 9
Start

Citeşte a, b, c

a,b,c>0 şi
a<b+c şi b<c+a
şi c<b+a
DA NU
a=b=c

Scrie a 2  b 2  c 2 sau
“echilateral” DA NU
b 2  a 2  c 2 sau
c 2  a 2  b2
Scrie
“dreptunghic”

DA a=b sau NU
b=c sau
c=a
Scrie
“isoscel”

Stop

Pseudocod:
Început algoritm
citeşte a, b , c
dacă a>0 şi b>0 şi c > 0 şi a < b+c şi b< c + a şi c< b+a atunci
dacă a = b = c atunci scrie ” echilateral”
altfel dacă a 2  b 2  c 2 sau b 2  c 2  a 2 sau
c2  a2  b2
atunci scrie ” dreptunghic”
sfârşit dacă
dacă a = b sau b = c sau a = c
atunci scrie ”isoscel”
sfârşit dacă
sfârşit dacă
sfârşit dacă
Sfârşit algoritm

Aplicaţia 5:
Să se realizeze schema logică şi pseudocodul care determină suma S şi produsul P pentru
un număr n citit.
10 Algoritmi.
S = 1 + 2 + 3 + …..+ n
P = 1 * 2 * 3 * ……* n

Schema logică:

Start

Citeşte n

S 0
P1
i 1

Nu
in

Da Scrie S, P
S S+i
PP * i
i i+1
Stop

Pseudocod:
Început algoritm
Citeşte n
S0
P1
i1
cât timp i  n execută S  S+i
P  P*i
i  i+1
sfârşit cât timp
scrie S, P
Sfârşit algoritm

Aplicaţia 6:
Să se realizeze schema logică şi pseudocodul care să determine media generală a unui
student cunoscând cele n note ale sale în cursul unui an de studiu.
Algoritmi. 11

Schema logică:

Start

Citeşte n

S 0
i 1

Nu
in

Da M=S/n
Citeşte nota

Scrie M
S S + nota
i i+1

Stop

Pseudocod:
Început algoritm
citeşte n
S←0
i ←1
cât timp i ≤ n execută citeşte nota
S ← S + nota
i ← i +1
sfârşit cât timp
M=S/n
Scrie M
Sfârşit algoritm

Aplicaţia 7:
Să se realizeze schema logică şi pseudocodul care calculează suma urmatoare pentru un
număr n citit.
12 Algoritmi.
S = 1 + 3 + 5 + ……..+ 2n-1

Schema logică:
Start

Citeşte n

S 0
i 1

Nu
i2n-1

Da Scrie S
S S+i
i i+2

Stop
Start

Pseudocod:
Început algoritm Citeşte n
citeşte n
S←0 S 0
i←1 nri0
cât timp i ≤ 2n-1 execută S←S+i nrd0
i1
i←i+2
sfârşit cât timp
scrie S
Sfârşit algoritm.
Nu
in
Aplicaţia 8:
Să se realizeze schema logică şi pseudocodul Da care determină :Scrie S, nrd,
-numărul elementelor impare Citeşte a
nri

-numărul elementelor divizibile cu 5


-suma elementelor pare Stop
pentru n numere citite. Nu Da
a mod 2 =0

nrinri+1 SS+a

Nu Da
a mod 5 =0

nrdnrd+1

Schema logică:

ii+1
Algoritmi. 13

Pseudocod
Început algoritm
citeşte n
i1
nri  0
nrd  0
S0
cât timp i  n execută citeşte a
dacă a mod 2 = 0 atunci S  S+a
altfel nri  nri+1
sfârşit dacă
dacă a mod 5 = 0 atunci nrd=nrd+1

sfârşit dacă
i  i+1
sfârşit cât timp
14 Algoritmi.
scrie S, nri, nrd
Sfărşit algoritm

Aplicaţia 9:
Să se realizeze schema logică şi pseudocodul care determină numărul elementelor
negative şi suma elementelor pozitive dintr-un şir de n numere citite.

Schema logică:
Start

Citeşte n

nr0
S0
i1

Nu
in

Da Scrie nr,S
Citeşte a

Stop
Nu Da
a<0

SS + a nrnr + 1

ii+1

Pseudocod:
Început algoritm
citeşte n
nr  0
S 0
i 1
cât timp i  n execută citeşte a
dacă a<0 atunci nr  nr+1
altfel S  S+a
sfârşit dacă

i  i+1
sfârşit cât timp
Sfârşit algoritm
Algoritmi. 15

Aplicaţia 10:
Să se realizeze schema logică şi pseudocodul care determină suma cifrelor unui număr
întreg n citit.

Schema logică:
Start

Citeşte n

S 0

Nu
n0

Da Scrie S
r n mod 10
SS+r
n[n/10]
Stop

Pseudocod:
Start
Început algoritm
citeşte n
S 0 Citeşte n, a

cât timp n  0 execută r  n mod 10


S  S+r maxa
n  [n/10] mina
i2
sfârşit cât timp
scrie S
Sfârşit algoritm
Nu
in
Aplicaţia 11:
Să se realizeze schema logică şi pseudocodul Da pentru determinarea valoarii maxime şi a
Scrie max,
valoarii minime dintr-un şir de n numere citite.
Citeşte a min

Stop
Nu Da
a > max

Nu maxa
a<min
Da

min a

Schemă logică:

ii+1
16 Algoritmi.

Pseudocod:
Început algoritm
Citeşte n, a
max  a
min  a
i 2
cât timp i  n execută citeşte a
dacă a>max atunci max  a
altfel dacă a<min atunci min  a
sfârşit dacă
sfârşit dacă
i  i+1
sfârşit cât timp
scrie max, min
Sfârşit algoritm

Aplicaţia 12:
Să se realizeze schema logică care să calculeze şi să se afişeze valoarea expresiei (a-m)^n/
(n-a)^m pentru a, m, n citite de la tastatură m, n  0 întregi şi a  n.
Algoritmi. 17

Schema logică: Start

Citeşte m

Nu m0 şi
m=[m]
Da

Citeşte n

Nu n0 şi
n=[n]

Da

Citeşte a

Nu an

Da

P1
i1

Nu
in

Da EP
PP*(a-m) P1
ii+1 i1

in

Da
EE / P
PP*(n-a)
ii+1

Scrie E

Stop

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