Sunteți pe pagina 1din 23

2.

Funcionarea sistemului de calcul

2.3. Scheme logice i scheme bloc


n vederea descrierii algoritmilor de calcul s-au pus la punct dou forme grafice
de reprezentare:
a. Schema logic.
b. Schema bloc.
a. Schema logic reprezint un limbaj grafic cu un neles foarte clar, cu ajutorul
cruia se reprezint algoritmii ntr-o form mult mai uor de neles pentru
programator. Simbolurile folosite n construcia schemelor logice sunt prezentate
n tabelul 2.2.
Tab. 2.2.
Simbol

Semnificaie
Indic sensul de parcurgere al
etapelor succesive.
Marcheaz nceputul schemei
logice.

Linii de flux
Simboluri
terminale

Marcheaz sfritul schemei


logice.

STO P

Blocuri
intrare- ieire

Citete datele coninute n


lista de date.
R EA D
lis t d e d a te

Scrie datele coninute n lista de


date.
W R IT E
lis t d e d a te

29

Programarea calculatoarelor

Bloc de calcul sau de atribuire


v a ria b il = e x p re s ie

Decizia logic

D a

e x p r e s ie

N u

Conectorul

Efectueaz calcule.
Se evalueaz expresia din
membrul
drept
iar
valoarea ei este atribuit
elementului din membrul
stng.
Pune condiii.
Se evalueaz expresia logic.
Daca
aceasta
este
adevrat,
secvenele
continu pe ramura Da
iar n caz contrar
continu pe ramura Nu.
Leag dou linii de flux ntre ele.

Blocurile de procedur

Grupeaz o serie de secvene de


calcul
ca
un
algoritm
independent (procedur sau
funcie). Acest grup de calcule nu
se detaliaz n cadrul schemei
logice care l conine.

b. Schema bloc reprezint totalitatea blocurilor structurale cu ajutorul crora se


descrie un program n succesiunea etapelor prevzute n algoritm. Este
important de menionat c n cadrul schemelor bloc dou blocuri structurale se
pot gsi unul dup cellalt, unul lng altul, unul n altul, dar este exclus
suprapunerea acestora.
Att schemele logice ct i schemele bloc se bazeaz pe structuri elementare
care permit abordarea oricrei probleme, de la simplu la complex, printr-o
detaliere cu pai succesivi. Avantajele unor astfel de structuri rezult pe de o
parte prin lizibilitatea lor, iar pe de alt parte prin simplificarea testrii i
eliminarea greelilor, permind, n acelai timp, munca n echip a
programatorilor.
n vederea programrii n limbaje structurate cum ar limbajul C, C++ sau Pascal
este necesar elaborarea unor scheme structurate. O schem structurat se
bazeaz pe teorema:

30

2. Funcionarea sistemului de calcul

Orice algoritm cu o intrare i o ieire poate fi descris cu ajutorul a trei


structuri de baz:
secvena;
decizia;
iteraia.
n continuare reprezentarea acestor 3 structuri va fi ilustrat att n schemele
logice ct i n schemele bloc.

2.3.1. Secvena
Secvena reprezint o succesiune de instruciuni. n figura 2.2 este reprezentat
aceast structur.

I1

B LO C STR U CTU R A L

I2

B LO C STR U CTU R A L

I3

B LO C STR U CTU R A L

a . S e c v e n a n s c h e m a lo g ic

b . S e c v e n a n s c h e m a b lo c
Fig. 2.2.

2.3.2. Decizia
Decizia reprezentat n figura 2.3 arat ca secvenele se continu pe una sau alta
dintre ramuri dup cum condiia impus materializat printr-o expresie logic
este ndeplinit sau nu.

31

Programarea calculatoarelor

D A

C o n d iie

N U

I1

I2

a . D e c iz ia n s c h e m a lo g ic

b . D e c iz ia n s tru c tu ra b lo c
Fig. 2.3

2.3.3. Iteraia
Iteraia reprezint structura repetitiv care permite execuia unui grup de
instruciuni atta timp ct condiia impus este ndeplinit.
Exist dou tipuri de iteraii:
a. cu test iniial;
b. cu test final.
a. Iteraia cu test iniial numit i structura WHILE-DO este reprezentat n
figura 2.4. n cadrul acestei structuri se evalueaz mai nti valoarea expresiei
logice. Instruciune se execut n mod repetat att timp ct valoarea
expresiei logice este adevrat (True). n caz contrar (False) se trece la
secvena urmtoare din schema logic sau schema bloc.

I n s tru c iu n e

R e p e t , a t t tim p c t
c o n d iia e s te n d e p lin it

e x p re s ie
lo g ic

BLO C STR U C TU R A L

a . Ite r a ia c u te s t in iia l n s c h e m a lo g ic

b . Ite ra ia c u te s t in iia l n s c h e m a b lo c

Fig. 2.4.

32

2. Funcionarea sistemului de calcul

b. Iteraia cu test final numit i structura DO-WHILE este ilustrat n figura


2.5. n cazul acestei instruciuni se execut mai nti Instruciune dup care
se evalueaz expresia logic. Pn cnd expresia logic este adevrat se
revine i se execut din nou Instruciune. n caz contrar se trece la secvena
urmtoare.
In s tru c iu n e

e x p re s ie
lo g ic

BLO C STR U C TU RA L
R e p e t , a ta t tim p c a t c o n d iia
fin a l e s te n d e p lin it

F
a . Ite r a ia c u te s t f in a l n s c h e m a lo g ic b . Ite ra ia c u te s t fin a l n s c h e m a b lo c

Fig. 2.5.
Observaie:
Cele dou structuri pot deveni echivalente dac suntem siguri c structura
WHILE-DO se execut cel puin odat.
Cu ajutorul acestor 3 structuri de baz se pot construi diferite structuri mai
complexe n cadrul schemelor logice sau schemelor bloc.
2.3.4. Structura selectiv
Aceast structur este o generalizare care se poate realiza cu ajutorul mai multor
structuri alternative imbricate. n figura 2.6 este prezentat aceast structur att
n schema logic ct i n schema bloc. n cazul acestei structuri se evalueaz
mai nti valoarea expresiei e. Dac ea coincide cu valoarea vi, i=1,4 atunci se
execut Ii corespunztoare cazului nr. i. Dup execuia instruciunii nr. i se trece
la instruciunea urmtoare structurii selective.

33

Programarea calculatoarelor

E x p re s ie e
I1
e=v1

I1

C az 1

E x p re s ie e

e=v2

e=v3

I3

I2

C az 2

e=v4

I4
B lo c B lo c
s tru c - s tru c tu r a l tu r a l

I5

C az 3

C az 4

B lo c
s tru c tu r a l

B lo c
s tru c tu ra l

a . S tru c tu ra s e le c tiv n s c h e m a lo g ic
b . S tru c tu ra s e le c tiv n s c h e m a b lo c
Fig. 2.6.

2.3.5. Structura ciclic LOOP-EXITIF-ENDLOOP


Aceast structur reprezint o generalizare a celor dou structuri WHILE-DO i
DO-UNTIL (figura 2.7). n acest caz numrul de repetiii ale execuiei structurii
este cunoscut nc de la nceput. Iniial se atribuie valorii de control v (numrul
de repetiii) valoarea iniial vi, apoi are loc un test n care se compar v cu
valoarea final vf. Att timp ct v nu este mai mare dect vf se execut
instruciunea I1 dup care are loc reiniializarea valorii de control. Cnd v
devine mai mare dect vf, se continu algoritmul cu instruciunea imediat
urmtoare ciclului.

34

2. Funcionarea sistemului de calcul

v=vi

v<=vf

In iia liz a re v = v i
R e p e t , a t t tim p c t
c o n d iia v < = v f e s te n d e p lin it

I1
B LO C STR U C TU R A L
v=v+p

R e in iia liz a r e v = v + p

b . S tru c tu ra c ic lic
L O O P -E X IT IF -E N D L O O P
n s c h e m a b lo c

a . S tru c tu ra c ic lic
L O O P -E X IT IF -E N D L O O P
n s c h e m a lo g ic

Fig. 2.7.
Ca i concluzie, se poate afirma c schemele logice se bazeaz pe structuri
elementare care permit abordarea oricrei probleme, de la simplu la complex,
printr-o detaliere de pai succesivi. Avantajele unor astfel de structuri rezult
prin claritatea lor precum i prin simplificarea testrii i eliminarea greelilor,
permind munca n echip a programatorilor.

35

Programarea calculatoarelor

2.4. Aplicaii
n continuare se vor prezenta cteva exemple de scheme logice ale unor
probleme matematice reprezentative.
1. S se elaboreze schema logic pentru rezolvarea unui sistem de ecuaii de
gradul I de forma:

mx ny r

px qy s

Algoritmul de calcul este urmtorul:

START
READ n,
m, n, p, q, r, s

1. Se citesc coeficienii m, n, p, q,
r i s.
2. Se calculeaz determinantul
sistemului:
d=mq-pn
3. Dac d=0 se trece la pasul 6,
iar n caz contrar se trece la
pasul 4.
4. Se calculeaz

d=mq-pn

Nu

d=0

rq sn
d
ms rp
y
d

rq sn
d
ms rp
y
d

5. Se afieaz x i y i STOP.
6. Se afieaz un mesaj: Sistem
nedeterminat.

Da

WRITE
Sistem
nedeterminat

WRITE x,y

Schema logic este prezentat n figura 2.8.

STOP

Fig. 2.8.

36

2. Funcionarea sistemului de calcul

2. Se consider funcia:

2x 3, x 0

f (x) x 2 , 0 x 3
x 3 2 x 1, x 3

Se cere s se elaboreze schema logic pentru calculul valorii funciei f ntr-un


punct x dat. Se va tipri rezultatul obinut.
Algoritmul de calcul este urmtorul:
1. Se citete valoarea
argumentului x.
2. Dac x 0 se calculeaz
valoarea lui f 2x 3 i
se trece la pasul 5, iar n
caz contrar se trece la
pasul 3.
3. Dac x 3 se calculeaz
valoarea lui f x 2 i se
trece la pasul 5 iar n caz
contrar se trece la pasul
4.
4. Se calculeaz valoarea
lui f x 3 2x 1 .
5. Se afieaz valoarea lui
f.

START
READ
x
Da

x0
Da

f 2x 3

f x2

Schema
logic
este
prezentat n figura 2.9.

WRITE
f

STOP

Fig. 2.9.

37

Nu

x3

Nu

f x 3 2x 1

Programarea calculatoarelor

3. Se consider funcia:

S se elaboreze schema logic pentru


calculul valorii funciei f n intervalul
[a,b] parcurs cu pasul p. Se va tipri
pentru fiecare punct al intervalului
numrul de ordine, abscisa i ordonata
dac funcia se poate calcula i numai
numrul de ordine i abscisa dac
funcia nu se poate calcula.

x2 7
, x 6

x 11
x2

f (x)
, 6 x 1
2
x 12 x 1

x5
x ( x 1) , x 1

START
READ
a,b,p
np = (b-a)/p+1

i=1
x = a+(i-1)p
Da
Da

x 11

WRITE
i,x

x 6

Nu

Nu

Da

x 1

x2
x2 7
f
f
x 11
x 2 12 x 1
WRITE
i,x,f

WRITE
i,x,f

Da

Nu

x 0 x 1

WRITE
i,x

Nu

x5
x ( x 1)
WRITE
i,x,f

i = i+1
Da

inp
Nu

STOP

Fig. 2.10.
38

2. Funcionarea sistemului de calcul

Algoritmul de calcul este urmtorul


1. Se citesc datele de intrare: capetele intervalului a, b i pasul p.
2. Se calculeaz numrul de puncte np n care se va evalua funcia f.
3. Pentru valori ale lui i cuprinse ntre 1 i np (pasul de variaie al lui i este 1) se
parcurg repetat urmtorii pai:
3.1. Se calculeaz x = a+(i-1)p.
3.2. Dac x 6 se trece la pasul 3.3 iar n caz contrar se trece la pasul 3.4.
3.3. Dac x=-11 se afieaz i i x, iar n caz contrar se calculeaz f i se
afieaz irul de valori i, x ,f. n ambele situaii se revine la pasul 3.
3.4. Dac x 1START
se calculeaz f i se afieaz irul de valori i, x ,f. Se revine
la pasul 3. n caz contrar se trece la pasul 3.5.
3.5. Dac x=0 READ
sau x=1
n, se afieaz i i x iar n caz 1contrar se calculeaz
valoarea lui f i se afieaz i, x, f. n ambele situaii se revine la pasul 3.
Da

Schema logic este


prezentat in figura 2.10.
WRITE

j0

Nu

WRITE
, x=SN/j
4. Se consider un ir format din n numere,
notate cu x 0 , x1,ma
n 1 . S se
Media
aritmetic
= 0 pentru calculul mediei aritmetice a termenilor strict
elaboreze schemaSNlogic
nu se poate calcula.
negativi i media geometric a termenilor strict pozitivi ai irului.
Se vor
WRITE
ma tipri
elementele irului, media aritmetic i media geometric dac este posibil.
PP = 1

Algoritmul de calcul este urmtorul:


1. Se citesc numrul
i=0,n-1.
i = 0de termeni ai irului i termenii acestuia x i ,Nu
Da
x
2. Se tipresc elementele irului i , i=0,n-1.
k2
3. Se iniializeaz suma SN, produsul PP ai termenilor irului, numrul de
j = j0i numrul de termeniWRITE
termeni negativi
pozitivi k precum i un
de
mgnumrtor
=
termeni i.
Media geometric
poaten-1
calcula.
4. Se parcurge irul pentru valori alenuluise i=0,
n cadrul unui ciclu unde se
k
=
0
WRITE mg
compar fiecare element cu 0.
4.1. Dac x i 0 , se adaug de fiecare dat valoarea elementului curent al
irului
Nu majoreaz cu 1 numrul elementelor de tipul
Da la SN i se
x

0
i j.
corespunztor
x

0
4.2. Dac i se nmulete
curent
cu produsul PP i se
Nu
Da valoarea elementului
STOP
SN =majoreaz
SN +
x

0
cu 1 numrul elementelor
de tipul corespunztor j.
i
5. Dac j=0 se tiprete un mesaj prin care se specific c nu se poate calcula
PP =iarPPn
* caz contrar media aritmetic se calculeaz i se
j = j + aritmetic
1
media
afieaz.
6. Dac k 2 se tiprete
k = k +un
1 mesaj prin care se specific c nu se poate calcula
media geometric iar n caz contrar media geometric se calculeaz i se
afieaz.
Schema logic
i =este
i + 1prezentat in figura 2.11.
Da

in
Nu
1

39

Programarea calculatoarelor

Fig. 2.11.

40

2. Funcionarea sistemului de calcul

5. Se consider un ir format din n numere, notate cu x 0 , x1, , x n 1 . S se


elaboreze schema logic pentru determinarea elementului minim din ir precum
i poziia acestuia. Se vor tipri elementele irului, elementul minim i poziia
sa.
Observaie:
Dac exist mai multe elemente care sunt egale cu elementul minim, se va
determina poziia primului element minim din ir.
Algoritmul de calcul este urmtorul:
START

1. Se citesc numrul de termeni ai


irului i termenii acestuia

READ n,

xi, i=0,n-1.
2. Se presupune iniial c
elementul minim este primul
element din ir iar indicele
elementului minim este iniial
0. Se iniializeaz de asemenea
un contor de termeni i.
3. Se parcurge irul pentru valori
ale lui i=0, n-1 n cadrul unui
ciclu unde se compar pe rnd
fiecare element al irului cu
valoarea vmin nregistrat pn
la etapa respectiv. Dac
x i v min , lui vmin i se atribuie
valoarea acestui element iar
imin
primete
valoarea
indicelui i.
4. Se
tipresc
rezultatele:
elementele irului xi , i=0,n-1
valoarea vmin i imin.

vmin=

i min 0
i=1

Da

x <vmin
i

vmin=

i min i
i=i+1

Schema logic este prezentat n


figura 2.12.

Da

in
Nu

WRITE
vmin, imin

Fig. 2.12.

STOP
41

Nu

Programarea calculatoarelor

6. Se consider un ir format din n numere, notate cu x 0 , x1 , , x n 1 . Se cere s


se elaboreze schema logic pentru ordonarea cresctoare a termenilor irului.
START
READ n,

WRITE

ind = 1
Nu

ind = 1

Da

WRITE

ind = 0

i=0

STOP

Nu

Da

aux =
=
= aux

ind = 1

i=i+1

i<n
Nu

Fig. 2.13.
42

Da

2. Funcionarea sistemului de calcul

Algoritmul de calcul propus se bazeaz pe ordonarea perechilor de elemente


vecine din ir n numr de n-1. Se parcurge irul i dac dou elemente vecine
nu sunt ordonate cresctor se interschimb, semnalnd aceasta prin modificarea
variabilei ind la valoarea 1. Parcurgerea irului se reia dac s-a fcut cel puin o
interschimbare.

0 daca au avut loc cele n 1 relatii


ind
1 daca cel putin o relatie nu a avut loc

Etapele algoritmului sunt:


1. Se citesc numrul de termeni ai irului i termenii acestuia xi , i=0,n-1.
2. Se tipresc elementele irului xi , i=0,n-1.
3. Se iniializeaz variabila ind la valoarea 1 (ir neordonat iniial)
4. Se verific dac valoarea lui ind este egal cu 1. Dac este adevrat se trece
la pasul 5 iar n caz contrar se trece la pasul 6.
5. ind ia valoarea 0, se parcurge irul pentru valori ale lui i=0, n-1 n cadrul unui
ciclu unde se compar pe rnd dou elemente vecine prin relaia x i x i 1 . n
caz afirmativ algoritmul de comparare se continu iar n caz negativ se
schimb cele dou valori i ind=1. Se revine la pasul 4.
6. Se tipresc elementele irului ordonat cresctor xi , i=0,n-1.
Schema logic este prezentat n figura 2.13.
7. Se consider o matrice dreptunghiular avnd m linii i n coloane. S se
elaboreze schema logic pentru determinarea elementului maxim i a poziiei
acestui element din matrice. Se vor tipri elementele matricei precum i
elementul maxim i poziia sa.
Fie matricea dreptunghiular:
a 0, 0
a
1, 0

a mxn

a 0,1

...

a 0, n 2

a 1,1
.

...
.

a 1,n 2
.

.
.

a m 2, 0
a m 1, 0

a m2,1

.
.
.
.
... a m2,n 2

a m 1,1

...

.
.

a m 1,n 2

a 0,n 1
a 1,n 1

.
.

a m 2,n 1
a m 1,n 1

Un element al matricei a ij este determinat de 2 indici:


i numrul liniei din care face parte elementul;
j reprezint numrul coloanei din care face parte elementul.

43

Programarea calculatoarelor

START

Algoritmul
de
calcul
este
urmtorul:
1. Se citesc numrul de linii m i
de coloane n ale matricei i
termenii
acesteia

READ m,n,

a ij , j 0, n 1, i 0, m 1

vmax=
imax= 0
jmax= 0

2. Se
presupune
iniial
c
elementul maxim este primul
element din matrice iar poziia
elementului maxim este dat de
indicii imax i jmax care sunt 0.
Se iniializeaz de asemenea un
numrtor de linii i i un
numrtor de coloan j.
3. Se parcurge matricea pe linii
pentru valori ale lui j=0, n-1 i
i=0,m-1 n cadrul a dou cicluri
suprapuse unde se compar pe
rnd fiecare element al matricei
cu valoarea vmax nregistrat
pn la etapa respectiv. Dac
a ij v max , lui vmax i se atribuie
valoarea acestui element, imin
primete valoarea indicelui i iar
jmin primete valoarea indicelui
j.
4. Se tipresc elementele matricei
a ij , j 0, n 1, i 0, m 1 , valoarea
vmax, imax i jmax.

i0
j=0

Da

a >vmax
ij

vmax=
imax= i
jmax= j

j=j+1
Da

j n
Nu

Schema logic este prezentat n


figura 2.14.

i=i+1
Da
Nu
WRITE
vmax, imax, jmax

Fig. 2.14.
44

STOP

Nu

2. Funcionarea sistemului de calcul

8. Se consider o matrice ptratic a nxn . S se elaboreze schema logic pentru


determinarea sumei elementelor pozitive de deasupra diagonalei principale i
produsul elementelor situate sub i pe diagonala secundar a matricei. Se vor
tipri elementele matricei precum i suma i produsul.
START
READ n,
a 00 , a 01, , a n 1n 1

SP 0

i0

j=0
Da
Da

a ij 0

Nu

i j

Da i j n 1

Nu

P P * a ij

SP SP a ij

j=j+1
Da

j n

Nu
i=i+1
Da

in
Nu
WRITE

a 00 , a 01 , , a n 1n 1

SP, P

Fig. 2.15.

STOP
45

Nu

Programarea calculatoarelor

Fie matricea ptratic:


a 0, 0
a
1, 0

a1,1

...

a1, n 2

a 0 , n 1
a 1, n 1

a nxn

.
.

.
.

.
.

.
.

.
.

a n 2,0
a n 1,0

a n 2,1

... a n 2, n 2

a n 1,1

...

a 0,1

...

a 0, n 2

a n 1, n 2

a n 2, n 1
a n 1, n 1

Elementele situate deasupra diagonalei principale implic relaia i<j ntre indici
iar elementele situate sub i pe diagonala secundar implic condiia i j n 1 .
Algoritmul de calcul este urmtorul:
1. Se citesc numrul de linii n ale matricei ptratice i termenii acesteia
a ij , j 0, n 1, i 0, n 1

2. Se iniializeaz suma SP i produsul PP. Se iniializeaz de asemenea un


numrtor de linii i i un numrtor de coloan j.
3. Se parcurge matricea pentru valori ale lui j=0, n-1 i i=0,n-1 n cadrul a dou
cicluri suprapuse unde:
3.1. Se pune condiia i<j (elemente situate deasupra diagonalei principale). Dac
este adevrat se trece la pasul 3.2. iar n caz contrar se trece la pasul 3.3.
3.2. Se pune condiia a ij 0 . Dac este adevrat se adaug de fiecare dat
valoarea elementului curent al irului la SP .
3.3. Se pune condiia i j n 1 . Dac este adevrat se nmulete valoarea
elementului curent cu produsul P.
4. Se tipresc elementele matricei a ij , j 0, n 1, i 0, m 1 , valoarea SP i P.
Schema logic este prezentat n figura 2.15.
9. S se elaboreze schema logic pentru calculul funciei e x ntr-un punct x dat.
Pentru calculul funciei se va utiliza urmtoarea dezvoltare n serie de puteri:
ex 1

x x2 x3
xi

1! 2!
3!
i!

Din dezvoltarea n serie se vor considera toi acei termeni care sunt mai mari n
valoare absolut dect o eroare impus . S se tipreasc valoarea argumentului
x i valoarea funciei calculate.

46

2. Funcionarea sistemului de calcul

Termenul general al dezvoltrii este:


ti

START

x
i

READ x,

Relaia de recuren dintre doi termeni


succesivi este:
t i t i 1

x
i

S=0

Algoritmul de calcul este urmtorul:


1. Se citesc valoarea lui x i .
2. Se iniializeaz valoarea funciei S i
valoarea termenului curent t precum i
un numrtor de termeni.
3. Att timp ct t urmtorii pai se
execut n mod repetat:
3.1. Se adaug valoarea termenului curent
la S.
3.2. Se calculeaz valoarea termenului
curent t cu relaia de recuren.
3.3. Se mrete numrtorul de termeni i cu
o unitate.
4. Se tipresc x i S.

t=1

i=1
Nu

t
Da
S=S+t

t=t*

Schema logic este prezentat n figura


2.16.

i=i+1

WRITE
x, S

STOP

Fig. 2.16.

47

Programarea calculatoarelor

10. Se consider polinomul de gradul n:


P( x ) a 0 x n a1x n 1 ... a n 1x a n

S se elaboreze schema logic pentru calculul valorilor acestui polinom pentru


toate valorile argumentului x din intervalul [s, t] parcurs cu pasul h.
n cadrul acestei probleme se mbin dou scheme logice: schema logic
corespunztoare algoritmului apelant (algoritmul principal) i schema logic a
algoritmului apelat (procedura). n capitolul 9 al acestei cri vor fi prezentate
detaliat noiunile de funcii din limbajul C care au rolul subrutinelor din limbajul
FORTRAN sau procedurilor din limbajul Pascal.
Algoritmul principal poate apela procedura. Parametrii efectivi ai apelului
procedurii trebuie s corespund ca i numr, ordine i tip cu parametrii formali
ai procedurii. n momentul apelului procedurii, parametrii formali se
actualizeaz cu cei efectivi. Schemele logice corespunztoare procedurilor ncep
cu un bloc delimitator n care se specific numele procedurii i parametrii
formali ai acesteia i se termin cu blocul RETURN pentru a marca revenirea n
programul apelant.
n cazul problemei enunate, pentru a putea evalua mai uor polinomul, acesta
poate fi scris sub forma schemei lui Horner:
P( x ) ((( a 0x a1)x a 2 ) x ... a n 1)x a n

Pentru calculul valorii polinomului se va folosi o procedur care are ca i


parametrii: n - gradul polinomului; cf - irul coeficienilor polinomului;
x - argumentul polinomului.
Calculul valorii polinomului se realizeaz n mod repetat folosind relaia de
recuren: p p * x cf i pentru valori ale lui i=1,n. Iniial p ia valoarea cf 0 .
La apelul procedurii, parametrii sunt: n, numele irului a i x.
Algoritmul de calcul este urmtorul:
1. Se citesc datele: gradul polinomului n, irul coeficienilor a, capetele de
interval s, t i pasul h.
2. Se calculeaz numrul de puncte nr n care se va calcula valoarea
polinomului n intervalul [s, t].
3. Se iniializeaz un numrtor i=1.
4. Pentru valori ale lui i de la 1 la nr se parcurg n mod ciclic urmtorii pai:
4.1. Se calculeaz valoarea argumentului x.
4.2. Se apeleaz procedura pln de calcul a polinomului n punctul x i valoarea
obinut se atribuie lui val.
4.3. Se tiprete x i val.
Schemele logice sunt prezentate n figura 2.17.
START
48
WRITE
STOP
Nu
val=pln(n,a,x)
ix, val
nr=(t-s)/h+1
x=s+(i-1)h
inr= 1

Return
pln(n,cf,x)
p
Da
p=p*x+cf(i)
i =p=cf(0)
ii =+ 11

2. Funcionarea sistemului de calcul

READ
n, a 0 , a1 ,..., a n ,s, t, h

in
Nu
i=i+1

Da

Fig. 2.17.
11. S se rezolve ecuaia:
49

Programarea calculatoarelor

f(x)=0
care are o rdcin unic n intervalul [a,b] utiliznd metoda njumtirii
intervalului. Soluia se va determina cu o aproximaie dat.
O ecuaie are o rdcin n intervalul [a,b], dac funcia corespunztoare ecuaiei
admite o schimbare de semn ceea ce matematic se transpune n relaia:
f (a ) f ( b) 0 . Reprezentarea grafic a funciei este n figura 2.18.
y
(b nou)
xm

a
(xm nou)

Fig. 2.18.
Metoda njumtirii intervalului este o metod numeric de determinare a
soluiei care se bazeaz pe urmtoarele:
Se calculeaz mijlocul intervalului [a,b] notat cu xm dup care se stabilete unde
se gsete soluia fa de xm: la stnga lui xm n intervalul [a,xm], la dreapta lui
xm n intervalul [xm,b] sau este chiar xm, situaie n care soluia este
determinat exact i eroarea devine 0.
Algoritmul de calcul este urmtorul:
1. Se citesc a,b, .
2. Se calculeaz valorile funciei vs i vd n f(a) respectiv f(b).
3. Se verific dac produsul vs*vd<0. Dac este adevrat se continu cu pasul 6
iar n caz contrar cu pasul 4.
4. Dac produsul vd*vd =0 se trece la pasul 5 iar n caz contrar se afieaz
mesajul Ecuaia nu are soluii.
5. Dac vs=0 soluia ecuaiei este a, se afieaz i STOP. n caz contrar soluia
este b, se afieaz i STOP.
6. Se calculeaz xm.
7. Se calculeaz valoarea funciei vm n punctul xm.
8. Grupul urmtor de calcule se realizeaz n mod repetat pn cnd mrimea
intervalului [a,b] devine mai mic dect .
8.1. Se verific dac vs*vm<0. Dac este adevrat b=xm (se lucreaz cu
jumtatea din stnga a intervalului). n caz contrar se trece la pasul 8.2.
8.2. Se verific dac vs*vm=0. Dac este adevrat devine 0 iar n caz contrar
a=xm (se lucreaz cu jumtatea din dreapta a intervalului) i se calculeaz
valoarea funciei vs.
9. Se tipresc valorile xm i .
Schema logic este prezentat n figura 2.19.
50

2. Funcionarea sistemului de calcul

START
READ
a,b,m,
vs=f(a);vd=f(b)
Nu
Nu
WRITE
Ec. nu are
soluie

vsvd=0
Da
WRITE
a

vsvd<00

Da

Da
xm=
vs=0

Nu

ab
2

vm=f(xm)

WRITE
b
Da

|a-b|<
Nu
Da

Da

b=xm
1

=0
vs=f(a)

STOP

51

vs*vm=0 Nu
a=xm

WRITE
xm,

Fig. 2.19.

vs*vm<0 Nu