Documente Academic
Documente Profesional
Documente Cultură
., :
E
=e'
::===
:===
1-'.::-=
, 6;_t=
niffi:.
=.i.::::
ffi
'
:. :::.
- '
,,
,=:i.==::= :
rf)
co
?
CY)
'=
9
6
-N!.<-
?
.la
o c=
=ld
Q)Av
#6)
i:
<cd
-{H
l-{
Fi
,;v
ts i\ I o".9,ts"
c.=
;Ctr :=6S5d
*=E.F=
ULqSE
3 !.1'.8-gs
.='= '=I
I
=* EsEP
=xoLdo6-ai rj c.l E
d
,E
a o C o)o
;i P
ia.
sN
<=
i''):QE:t-^u
Q
xl
t{
zl-l
l-{
z14
3"
x(c
.Eil'
a=
)'-'\
L
.d..
>:o
:Y
d-)
%N
'i
o>
F!
trboq-
9E
(6 u
()x
ao
'5
0*
ts-
H-'sE3
:,ji Nf;
P
o
x-.i
!v.i
=o
'uo
5o
LFh'/t
/pL
aE
=
EFt'N
.t
a-l PP
_ a;:
ESE
E.ij
dr=
Fv.-!l
i!".(s'd_,
;.5-o
o
*UH
EF
o:
.i -o
f,6
=o
9c
ao
'E(J
So
6= O F
E
a F c. di(E.
.E s, ? E3'
-\HLV
n)
rv
-i.i^.>
b R
=';
AE-SE"
r.EY
=
';
n -+ ,H.3.=
S E*
'S
qo
9\
!()
t-I
().-o
s,
A4A-Y
CX"i;'cst
o=tr()o'
ts.= E H %..
c)=
ct P.F
--!+-!
i4
s5
?a
a.*)GV
--9
u!5
F{ J ts
04 .=
H o.o
ol
L
L
ar S d
o.
o.6
4.=
,.s
'Fi
E
;.E
VCOKN
lri
d'o
\0)
^5
)c34.-u
E $+:S:EE
tsI a-:HE.E
E iE s:$s;
:E .=EE
E
Pp tEi
.= UE
b
S i.: f;,E$EE
H HY Ei8-=o
3?s I
v,q U =
-:=
li
f,
Z
"F
\,1!
oE.-.-.E.I
()()
LC)iIO
E.= E g'!
\J
2e
!UIJA.4
*U*R
l-)
()
:Y-do
oh),-!
(Jcj-yp
JJJUL
c)
--
Llo)ta;
=ENg,E
l9s*=
s o-e 6J:=
!:>
FrI
()
.t c
($
3,I-bBO;
tj i1,J
o- cd
O tr i
F=s!
(.)
'd
i:
O,
rS
.<)
t\
E?
5X
6lH
Ectc
cr-H
6t
a sz
'4
ke)ss
$3
P;
.i;
:L,rYEd()o)
o
-=
U- .i
.-
-6
i
!
=
'- :
()
E<EE ES
L-rLUd
. 'rLr-.Y-u
Jrese-Ha)
:gu5
}
_r
E, a ;P
J-q
'\
f,o=
=h
- .+: a)
(54
o'=
o o
L-r
c-J r:.iiJ
r
io
E
6
SEg
.E=9
R
dr
n,s s
C
-o s
a-' r :!
E N EO
-F
E*E
vs{
=
!F=.,
=+g
-_-=-D
tSqI
9rtJ
;ae
d.:
xd,
I
.,
T :j
e
'i- i 9d
F=
tiQ
L
U.;
e5
=5
'r'1
G)
E6-
6t;^
E,
'AZ
-HA-lU.r-
-Hl
*3.E
*fi
*9
r'
*J
=fiqtr
6
.E
s.;
aA
E
e
E
fl E
fXc'iE,$5*'s
.=r\
J'l=
!; triEH
Eg
S8 EsE 3E
,{fr
.3E13;:
reo
U.;
i:j c9l coi-i
iiF .
3P'slr-6
5a
EeElEde
I
LESl^1s
95 ;
gE:]NgU
AE
E3
g
vtrI'J
hi: t:9co
=
r.:+la;ia
aE EIor !=+l::Er
'9;.-s;l
Hl
to!,(d-
-cS.X
oi
': 1
U
E
tg
^E
S.El sE
I =T
'6 =tr8
Z i:F b
:= = Irr:.X^
gSEEEi*
.=[El
:r n;glHrgg
,-l .. N c{ !l=[
oo #.== G)l i:l
<
3uil:HElil
a-E;E E SlEl EIEle=ciI
B?- xSL'i =
;'dE Y.s:
{ r ^v H #i l
g=5x-:=l EH;*ipES
,.=vlJ-
ii"'':\
o {7j?i
'=
't
EH
i6
tav
tr.F.=.F.F--:
5 a6-6.6-i
-
!2
.!t .-
e)tr
tE
a
oo
o) Fr ':':
uz x
o-q,
goa!
U EE
tr)aa
,.:.6
AVE
5ps
uo!
ii.t
*
U i,r
^ '- - :
= = =-7:'J.1=
= _
= =;
t.
=
:=
,-
'r
=
-
- -.=
z -
\
-_-: =.-.-/.-
:=
=.J
= ==1===+./ :i==77-=l-;
==!==:-=7,=
-j.--z-===
_4a-a=-it:2
==l=1j=--,
=
?==i1'<:=
;.
-==.'j.l,A
i.1.=.=i='IU
=
=?.-::
l'=
=!,="ZE:S?i;
=c.7=:,.'!9.-sd
=
==. =., 1i.*
=
=--4.-=.___
-===)=!=>=5.,=cE--'{=*a
=E='S=I>=cj
'
=l-'E=J=.oc';5=H.==i
.re
=a
=c_
I.=
c*_
-;
o jj
{8
.-': !1:Ii:41
rdlt
-.-, ==i=,.,
==EE*,5;ijE E;
7=zi3;:
5cE'aE.-?a=
o )cj
oa
o.
tr
a=
i:
l: ::
6
o
..tr.
s+ilirgEX;,A EE
=_ =-3,=,=iEE
1 li"o=;:EI a;E=Es,:_;a EE HESH*EE'gE:E.sE
i,E'E;E:gHE.;E
i; =Sii_i=;;
E=
ioa
Ir=Epf
i=
iEE=.EeoEb,q
c'=o
a:i"'Eo=
i :I
.E-e
[;
i>i=i"E=
s [g E :;
o
= ;iEzsEE
H?=:g's.EaEF
IE
; 'J o=!
dr;
x. \.==
C)
i;;
a
i
Zt;t5E;3s r;sEIeiE
C)
gE E* o gEE:
i
3EE *E tEE I
'gi= e e I lE :t EEiE
= =Eie
i?,tg:
IE
EE
i;
()
!.-
bo
!=
=.
Il#EEfiE:8.=l:E;;;
niEI ;EE s tl
t-2:
i E ; i if,rEiil Eg $ E B
j*
g *;t +i lE; E r
,i-=
'=
j.-r==
E
==:
r.:=;=='gp.r.?
r!E,i
s$E
:EEi
E;
=
=i=Z=i=;E
-=
".S- ;
1
\
_.=
tl
6
i.
=_=_=,=_i==:1
;;.=;=;=1===
=
,
;:-l
:
_ <'--'-== -
--
aA
()
QL-.
/!
tr
rd
=
==
-=
=
I ..
t--
..,
-'lZ-t
1;
=e
:=;
:.E
E,=
;'i
+i
=tr
-=
=i
=:
i=
i;c
fi
,+;
;:
=+
2.=
7---
-=._'-
_=
t;
i=1=j==i==i=Ei==,
'-=====i.===a:i-=
:l=i
a;
;'=
:,
si';ig;
EEP== s=uiri::i';;
Ei
e
E+E;::==HsE+,;:tE.;FE;
g
q
E=,1 E':: E:Ee
e;: i+ 3g;,; = s
i,!
;iJ
'==
__=
::<:1.-=i-
f(B
v-z
'J=
====-
=
:1;.=;=:
e i{E=s
E EfEIs
E
EE=,=
; E;:SS
E*==E::
! v ;t< E-i
I
;:'ilscr
;E 5i-s.s
aiE,5 i s': a:
"slg:sE;;EEgiE;isefi Ei I
:{;i;
'EE gi
E':
=g==iF,IE.,.'l.o"t*E::
Ri;:E $ :i.i!i;
5.=
fi
+;
=
i;=;Er;;sEEgfEi$5!55Ei,:=gEEiE!:
'=
'.qiE Ei;g: i:;g:gEggE6EE f EE:
o F
tE eE=EE
i;:EE;:3:r;E*i;=,1:E
z r=
o=="HE
E
g*gEif 5 q;!;
o,,Ee3;
;#S'=i
:gi;'si,cE
E r e i=i::
gE,g;
5=:= oi:E
gE:
,j!
'5
;Str
;;;gE:
F?
=F
E'"
c
l[.iE:;fr,EEi-E$'EE
=*
ja=He
=
i ==,!EEt
Z;zi=a gE#E
=.;,s;F !r::=E;:="iE,E'i;.8
iE:g==e=EE= Es;;1 t'i"=
?;qi3Z
g9;EIE EEEEEEE.+;Eg EE E;
E ;i;E;E
i;
-?i=: =
d
o:
9H
=;
-s.
H;;;
i=
if;;E,i
=-.E;:;;sE:l;:il;ii;!':
=
;z j =-;1: ;; ;i\i i: i:lE::
:ii:iii., E iEii;
==
=i,i='==
icj
NOTIUNI INTRODUCTIVE
Vrem s5 $tim cum va fi vremea? Pledicfla vremii este posibild numai cu ajutorul
caiculatorului. o parte din informaliile necesare pentru prevederea vremii, de
exemplu cele preluate din straturile superioare ale atmosferei, sunt inregistrate
direct de c[tre calculatoare specializate. Modelarea datelor inregistrate presupune
efectuarea rapid6 a unor calcule complexe, bazate pe ecua{ii matematice. Inteipretarea cu cdt mai multS acuratele a datelor se realizeazd,, de asemenea, cu programe
specializate, deci tot cu ajutorul calculatorului.
Vrem s[ plltim impoziteie? La Administra{ia Financiard se lucreazd,pe calculator, existand haze de date de evidenfa a locuinlelor, automobilelor etc.
'este
INFORMATICA
Pentru o prezentare detaliatl a tuturor aspectelor legate de drepturile de autor asupra programelor
pe calculator, studiafi Legea copyright-ului penrru ro1l, Editura ,,Solu1ii Informafionale",
Bucureqti, 1996.
F
NOTIUNI INTRODUCTIVE
Evolulii viitoare
Impactul utiliz[rii calculatoarelor asupra societ[lii s-a dovedit a fi deosebit de
profuna. |n mod evident, informatica joacd un rol esenlial in imbunlti,Lrea situaliei
economice qi a calit[1ii viefii oric[rei naliuni 9i din acest motiv pentru multe
guverne aceasta reprezint6 o prioritate nalional5. Includerea informaticii ca
disciplin[ de studiu in inv6!6m0nt asigurl preg[tirea specialigtilor de care este
n"uoi" pentru a aplica ceea ce ne inva!5 istoria ultimelor decenii: solulia supraviemoderne 9i
luirii gi a succesului constd in dezvoltarea tehnologiilor informalionale
aplicarea lor in toate domeniile activitalii umane.
int r eb dri
re
apitulativ
Da{i exemple de domenii in care este utilizat calculatorul qi descriefi modul lui
de utilizare!
2. Ce este un robot? Care sunt avantajele utilizdrii robolilor? Scrie{i un scurt eseu
despre evolulia robofilor! Analizali modul in care calculatorul a influenfat
specificul muncii umane, precum gi dinamica structurii ofertelor de pe piala
1.
locurilor de munc6!
3. Ce inlelegeji prin copyright? Este legald utilizarea unui program fdrd licenld?
Ce sisteme de proteclie a produselor soft aliintAlnit?
4. Descrieli modul in care calculatorul influenfeaz[ via]a voastrd personall!
5. Descriefi intr-un eseu modul in care calculatorul influenleaz[ comunicarea
interumanS!
r
INtr'ORMATICA
.@
2. NOTIUNEA DE
ALGORITM
Date de intrare
ALGORITM
Algoritmul este constituit dintr-o succesiune de operalii care descriu, pas cu pas,
modul de oblinere a datelor de iegire, plecdnd de la ditele de intrare.
Presupundnd
pregdtim ochiuri.
,,Date" de
,,Date" de
f. in traducere
2'
ci
NOTIUNEA DE.{LGORITM
10
sePune:tsili.fj::;
r' -rau 1,
P*
iHl
4:
Pas
Pas
Pas
ffru;;1;il*"';jt--"i'Jli"
SPargem
"'i'"d:lT:
f,li"itat'pana clllouate
5:
se rumenesc'
6:
JiHil
*":::::"z^m
J;;;;a[ie
;:::*1
l;;;i*1;:*;
::"
familiarizafi:
suntefi de asemenea
un alt exempru, cu care
cu a' bR'
de forma ax+b=o'
si
se
bR
Darc cle intrare: a'
adecvat
ecualiei' sau un mesaj
t"'-tta
lt"'
iesire:
de
Date
r
pasl:
Pas 2:
Citegtedateledeintrareaqib.
-^r.r^i este x= -b/a
Soluqia ecuaprer
Dac6 alO atunci Scrie
altfel
altfel
Scrie
once
forma specificati' pentru
paqi rezolvl ellafia de
de
succesiune
Aceasti
ur*u." este un algoritm'
valori ale datelor d.;;:;iin
Lamatematic6,aliinv[latnumerogia[ialgoritmi,chiardac6nui-a$denumit
*,,i;4;;i*,,*#t#;?"xl,HJ**'fi?;#ixl'm:ff
numar re4r' atSwtt'
JT'TXI
oAtrate dintr-un
:;;, a doud numere naturale etc'
Exercilii
1.
gripeil
algoritmul de tratare a
date'
2.Descrieli,punindinevidenllsuccesiuneapaqilor'algoritmulderezolvarea
cu a' b' c nurnere reale
ax2+bx+c=0'
forma
de
unei ecualii
3.Descriefi,punlndineviden{6succesiuneapaqilor''afe'oriyufdecalculalmediei
la care se susline tez6'
semestriale
" 'i;;;l;;obiect
t word'
4.Descriefi,punAndineviden!6succesiuneapagilor,unalgoritmdecopiereaunel
wo'a i*-inalt documen
de,"^t
zone
oi#u";;;;;*
5'Descriefi,pundndineviden!6succesiuneapagilor,algoritmulpecarel-a!
in laboratorul de chimie'
aplicat ta uttima'ip*r"'iu "i;;tuat6
1t
INFORMATICA
algoritmilor
Rdspunsul este NU! ExistI problerne pentru care se poate demonstra (lucru
dificil!) cd nu existd algoritrni de rezolvare, dar gi probleme pentru care nici nu s-a
demonstrat cd nu adrnit o metodd de rezolvare algoritmic[, dar nici nu s-a descoperit
(inci! ) solulia algoritmicd.
Orice succesiune
de
Pentru
a fi un algoritm,
secvenla trebuie sI
1. Claritate
determinatS,
cu mijloacele disponibile).
De exemplu, secvenla ,,Dacd ploud stau acasd sau merg la cinema" nu este clar6,
deoarece, in cazul in care ploud, operalia care se executd nu este unic determinatS.
si presupunem ci dorim
Sau
*'*y',
2. Generalitate
(universalitate)
rezolvarea ecua{iei
Dar, dacd am
aceasta nu ar
fi
fi fost un algoritm!
3. Finitudine -
putem
NOTIUNEA DE ALGORITM
12
2. Elaborarea
qi a rezultatelor
problemei'
3.
limbaj de programare'
Impl ement area algoritmului intr-un
4.
V e rifi c ar e a c o r e c t itudinii
algorilmului propus'
Unprimpasconstlintestareaprogramuluipediverseseturidedatedetest.
inc6t s[ acopere, pe
test trebuie Jluborut" cu atenfie, astfel
seturile de date de
algoritmului,-inclusiv situalii de excepc6t posibil, toate variantele de execufie a
subproble;a a probleme] date este rezolvata
tie, $i si verifice daci fiecare
corect(dac[esteposibil,sevatestaSeparatfiecaremoduldeprogram).
Testareapoatepuneineviden![,gventual,omisiunisauerorideconcepliea
argorit-ilo,,darnugarunteazdcorectitudineaalgoritmului.Pentruaceastaar
de intrare, ceea ce
posibile de date
trebui sa testam algorrtmul pe toate seturile
i*pun" utilizarea unor metode
,"
este practic impoiiuit. Din acest motiv,
etapS de obicei deosebit
formale o" a"*on.irare a corectitudinii algoritm;lui,
complex'
de laborioas[, necesitdnd un aparat matematic
puncte de vedere:
Eficienfa unui algoritm se evalueaz6 din doud
l.dinpunctuldevederealspaliuluidememorienecesarpentrumemorarea
valorilorvariabilelorcareintervininalgoritm(complexitatespa!iu);
2.dinpunctuldevederealtimpuluideexeculie(complexitatetimp).
ComplexitateaspaliuovomanalizacuprecIdereatuncic6ndvomtranspune
algoritmul intr-un limbaj de programare'
cd se lucreazi pe un
Pentru a estima complexitatea timp vom presupune
este executata la un moment
calculator ,,clasic", in sensul c6 o singura instructiune
depinde de numlrul de operafii
dat. Astfel, timpul necesar execu[iei programului
elementare efectuate de algoritm'
Observalie
13
INFORMATICA
complexitdlii etc.
2.4.Date
Orice algoritm lucreazl cu date: date de intrare (datele pe care trebuie s5 le
primeascl un algoritrn din exterior), date de ieSire (datele pe care trebuie s5 le
iurntzeze algoritmul in exterior), precum Si date de manevrd (date temporare,
necesare algoritmului pentru a obline datele de ieqire pe baza datelor de intrare)'
Datele cu care lucreazd algoritmii pot fi clasificate din mai multe puncte de vedere.
O primd clasificare a datelor, in func{ie de posibilitatea de a-gi modifica valoarea, este:
1. Constante
2. Variabile -
date care nu
ci
3.
Date logice
au valoarea
adev5raL
sau f
als.
NOTIUNEA DE ALGORITM
t4
2.5. ExPresii
Oexpresieesteconstituit[dintr.osuccesiunedeoperanzi,conecta,tiprin
operatori.|Jnoperandpoatefioconstant[,ovariabil[,sauoexpresieincadrata
intreparantezerotunde.operatoriidesemneazSoperaliilecareseexecutEasupra
intr-o expresie depind de tipul operanzioperanzilor. operatorii.ur" po, fi utilizali
lor(numericiintregi,numericireali,caractere,qiruridecaracteresaulogici).
valorii expresiei, prin inlocuirea
Evaluarea unei expresii presupune calculul
in expresie qi efectuarea operafiilor
valorilor variabilelor care intervin ca operanzi
specificate de oPeratori.
Operatori aritmetici
operatoriiaritmeticidefinescooperaliearitmeticigipotficlasificaliastfel:
* (inmullire), /(imp[4ire), 7o (restul
1. operatori aritmetici multiplicativi:
impnrfirii intregi).
operatoruldeimpir,tire(/)areunefectdiferit,infuncliedetipuloperanzilor.un
intreagi (se obtine ca rezultat
Dac6 ambii op".anzi'iunt intregi, se face imp6(ip
primului operand la cel de-al doilea). Mai
num6r intreg, care este catu impa4irii
a/b arc ca valoare catul impa(irii
exact, fie a gi b doul variabile intregi. Expresia
intregialuialab.Dac6,deexemplu,aarevaloareaTgibarevaloarea2,
expresia a/b arc valoarea 3'
se face imp[rfire real6 (se obline
DacS cel pu[in unul dintre operanzi este real,
a b sunt doui variabile reale' iar a
ca rezultat un num6r real). De exemplu, dac6 9i
ate valoarea 3 ' 5'
are valoarea 7 qi b are valoarea 2, expresia a/b
Operatorul
intregi'
+ (adunare) qi - (sc[dere)'
operanzi).operatoriiaritmeticiSepotaplicanumaioperanzilornumerici.
funcfie
(intreg sau real' in
Rezultatul evaludrii unei expresii aritmetice este numeric
de operanzi 9i oPeratori).
Operatori relalionali
egalitate dintre cei doi
Operatorii rela{ionali descriu relalia de ordine sau de
<
egal),2 (mai mare sau egal)'
operanzi: < (mai mic)' > (mai mare), (mai mic sau
* (egal), # (diferiO.
15
INFORMATICA
adevdrat
sau
fals).
Operatori logict
operatorii logici definesc o operalie logic[: negalie logicit - t; coniunclie
qi, sau sunt
togicd - qi: ctisjunclie logicd - sau. operatorul ! este unar, operatorii
la logicd
inv[lat
op-eratori binari. Efectul acestor operatori este cel uzual,
matematic5. il reamintim in tabelul urm[tor:
fals
fals
adevirat
adevirat
fals
adevdrat
!x
adevirat
adev6rat
fals
adeviraL
fals
4-1^
rdaS
:lsauy
fals
adev6rat
adevdraL
adevirat
xsiy
fals
fals
fals
adevdraL
operatorii logici se pot aplica operanzilor logici. valoarea unei expresii logice
este de tip logic.
1.
a
2. Frecvent Sunt ,,uitate" patanteze, de exemplu pentru a calcula media aritmeticd
(a+b)
2
loc
de
/
'
variabilelor a qi b, este scris a+b / 2 in
rl
li
Ii
li
il
3.
Yezi anexa
1.
j
I1
NOTIUNEA DEALGORITM
T6
Oneratori
Nesatia losicl
Aritmetici multiplicativr
Aritmetici aditivi
Relafionali
5
6
Coniunctie logicd
Disiunctie loeici
Prioritate
1
Simbol
*, /,
9r-
sau
Asociativitate
de a dreaota la stAnea
%
de a st0nsa la dreapta
de a stdnga la dreapta
de la stdnga la dreapta
de la stdnsa la dreapta
de la stdnsa la dreapta
Exemple
Fie
x un numlr
2.
Sd
n810+n/
4.
10% L
0+n/
10
0I
l-
0.
INFORMATICA
3.
I7
B. Evaluafi expresia
4-
a<=b
ce
5.
considerdm cd a,
a.
b*b-4ac
a(b<c {=.
e. 1+xBy \a
d.
b.
6-
tv
reale.
-, .*, ff*zz={
!-i,*"'
./
t*.t
#b }aloarea adevSrat
este
7-
Scrie{i o expresie care are valoarea adevirat dacd gi numai dacd valoarea
memoratd in variabila reald x este in intervalul Ia, b] u
Ic, d]
8.
scrie{i o expresie care are varoarea adev5rat daci gi numai dacd numrrul
natural memorat in variabila x este par gi are doui cifre.
9.
10. scrieli o expresie a cdrei valoare s6 fie adevirat daci qi numai daci
num6rul natural memorat in variabila an reprezintl un an bisect.
Un an este
bisect dacd este divizibil cu 4, dar nu este divizibil cu 100 sau
este divizibil
cu 400. De exemplu 1600$i 1968; sunt ani blqecfi, dar 1700 qi
1970 nu
11.
a.x%2*O gi
b. t (x%2=0
- Informatic6
x>0 ;f l ',
/
=., *ao 1 t:
C. lxB2=0
d.
x>0 sau
si tx(0
x%2=1
.'.
'
-;
REPREZENTAREA ALGORITMILOR
18
q@
3. REPREZENTAREA
3.1. Principiite
ALGORITMILOR
programlrii structurate
era de a dezvolta
noi paradigme in programare: proSramctrea stltcturatd. scopul
fiabile, uqor
programe
unor
s[ permitd dezvoltarea
noi tehnici de prograriar",
"ur"
gi
reutilizat.
de
de elaborat in ecfrila, ugor de depanat, de intre{inut
Un prim principiu al programarii structurate este modularizarea. Pentru
problemei care
proiectarea untr aplicalii complexe, este necesari descompunerea
dintre aceste
irebuie rezolvat[ in subprobleme relativ independente, pentru fiecare
Fiecare modull
subprobleme scriindu-se module de p'ogtu* mai simple'
de celelalte
independent
qi
relativ
este
efectueazd un set de prelucrSri specifice
constituie
care
parametri,
prin intermediul unui set de
module, cu care
"o*rni"e
echipS'
in
interfa{a. Avantajele sunt multiple. Cum la orice firma se lucreazd
Modificarea
modulele de program pot fi impiementate de mai mulli programatori'
implementat,
fi
poate
modul
Fiecare
unui modul nu afect"ard celelalte module.
testat, depanat, modificat, independent de celelalte'
Un alt principiu fundamental este structurarea datelor Si a prelucrdrilor'
dupd
Programatorul are posibilitatea de a-qi"grupa datele in colec[ii, organizate
anumite reguli, denumite structuri de date'.
de
Prelucrdrile asupra datelor sunt structurate separat. Conform teoremei
a
trei
prin
compunerea
fi
descrisd
poate
structurA Bohm-Jacopini, orice prelucrare
qi
structuri fundamentalei structura liniard (secven{ia16), structura alternativd
struclura rePetitivd.
algoritmilor in pseudocod
1.
z-
proiectarea modular6 a
i;6i;ili
i0 ,o* *uoiu
l9
INTORMATICA
Un rispuns posibil ar
programare X! Este un rdspuns acceptabil pentru to$ cei care cunosc acest limbaj de
programare. Dar pentru ceilalf? Nu putem impune nimdnui s[ invele un anumit
limbaj de programare, numai pentru a inlelege algoritmii pe care ii scriem noi. In plus,
experienla celor 5 decenii care s-au scurs de la aparilia limbajelor de programare, ne
inva!6 cI nici un limbaj nu este veqnic, nici unul nu a avut supremafia, nici in timp,
3.3.Struct@Declararea datelor
I variabila tip;
x real;
c caracter;
i int.reg;
Operalia de citire
variabila,;
A.
REPREZENTAREAALGORITMILOR
Efect:Prnop"*riudecitire(denumitdqioperaliedeintrare)sepreiausuccesiv
specificate'
valori de la tastatur[ gi se asociazS, in ordine, variabilelor
Operalia de scriere
$
expresie';
Efect:operafiadescriere(denumitdqioperaliedeieqire)presupuneevaluarea
lor pe aceeagi
in ordine a expresiilor specificate 9i afiqarea pe ecfan a valorilor
linie.
Operalia de atribuire
II variabila (- expresie;
membrul st1ng.
Instrucliune comPusd
instruc!iune _1
instruc!iune 2
lnst rucfiune-n
Efe ct
Instrucliuneacompusdesteutil6atuncic6ndsintaxapermiteexecutarea
unel
multor operalii'
singure instrucliuni, dar este necesari efectuarea mai
Observaqii
INFORMATICA
21
3.4.
Aplicafii
Cub
Fie a un numir real, citit de la tastaturd,
care rcprezintd
lungimea laturii unui cub. Si se scrie
calculeze
cubului.
gi sI
afiqeze volumul
gi
un algoritm care si
suprafafa totall a
SoluSie
Date de intrare:
Date de ieSire:
Citegte a;
rea1,.
V real;
S real;
/*suprafala Lotala
V+-a*a*a,.
este ,,,
S;
Compus chimic
un grup de cercetetori
,In urma
analizelor
nH atomi de
$i
hidrogen. $tiind cI
masa atomurui de carbon este 12,
masa atomurui de oxigen este 16,
iar masa
atomului de hidrogen este 1, sr se
scrie un'argoritm .*. ,a".ui*reze
sr
afigeze
Ei
masa moleculari a acestui compus.
Solulie
,.
m+-nc*12+nO*16+nH;
,'Masa moleculari.
Scrie
m;
fngheyatd
De ziua lui' Ionel a primit de la
bunica s rei gi ar vrea sr invite ta
inghelat, c6t
mai mulli colegi. gtiind c[ o inghe]atr
cost6 p lei, sd se scrie un atgoritm
care si
calculeze gi sE afigeze numrrul
maxim de coregi pe care Ionel ii poate
invita gi
suma de bani care ii mai rimdne
lui Ionel.
REPREZENTAREA ALGORITMILOR
22
Solulie
Date de
intrare: S natural;
,/
suma *,/
P natural;
/* prelul unei lnghelate */
Date de ieSire: nrc naEural;
/* numarul maxim de inviEa|i
rest naEural; /* suma rimasd */
Citegte S,
P;
inghelati */
Triunghi
De exemplu, dacd
z
528
Lsz89
Solu{ie
Citegte x;
, x3 naturale;
unitSlilor */
zecilor */
zecil-or x/
sutelor */
IIYTORMATTCA
23
2345
1,234s6
Schimb
Se introduc de la tastatur{ numerele reale
variabilelor a gi b, apoi sI se afiqeze.
a qi b.
Sn se interschimbe valorile
Soluyie
,.
Date de manevrd:
Citegte a, b;
aux real;
aux+--a,.
a+-b,-
b+-aux,.
/* L */
/* 2 */
/* 3 */
/*
l, */
/* 5 *l
({
I'
%.
:.
24
REPREZENTAREA ALGORITMILOR
Pentru a infelege mai bine acest algoritm s[ urmdrim execulia lui pentru un set
pafticular de date de intrare. In acest scop, am numerotat instrucliunile de la I la 5.
be exemplu, sI presupunem cI de la tastaturi se introduc valorile 3 qi 7.
Linia
aux
Explicatie
Se citesc de la tastaturl valorile 3 gi 7 qi se atribuie
ordine variabilelor
a gi b.
Variabila
aux
Variabilei
in
are
bi
1. Ce va afiqa urmStorul
a nat.ural,. b naLural;
Date de int:rare/ieSire.'
Citegte a, b;
a<-a+b,.
b<-a-b;
a<-i-u;
Citegte a;
b<-a81
00
b natural;
c natural
,.
a+=a/100;
c+-b*1
Scrie c;
3. Ce valoare
b intregi,
II a,
2. 1^ t
1.
*= z J'
li
LO*a+b/2;a(-a-b/2*a;
@r* a, b, c Ai d patru variabile reale. Care dintre urmitoarele
instrucliuni
atribuie variabilei d media aritmeticd a valorilor variabilelor a, b gi c?
a.
d <-
(a+b+c)
/2;
c.d +- a+b+c/3;
d.
{25
INFORMATICA
algoritm care
un
5. Fie xL, x2, x3,14, x5 cinci valori reale' Scrieli
foloseasc[osingurivariabil[suplimentaripentruapelmYtlcircularvalorile
iniliald a variabilei x2'
celor cinci variabile (adicl in Rnat x1 s[ aibd valoarea
variabilei x4' x4
x2 valoarea iniliala a variabilei x3, x3 valoarea iniliala a
iniliala a variabilei x1-)'
valoarea iniliala a variabilei x5, iar x5 valoarea
b c trei numere reale, care reprezint[ lungimile laturilor unui
/6)fi"
a.
\yil;iri]sl
si
r"
sE
perimetrul 9i
scrie un algoritm care sd calculeze qi sd afiEeze
aria triunghiului.
un
in H ore' S[ se scrie
broasci testoas[ parcurge o distan!6 de D kilometri
fih
\-/ algontm
se deplaseaz6ilxo?sca
care
cu
care sa .ui"ul.rJ gi sd afiEeze viteza
*.S
leltoas6 (exprimat[ in metri/secundl)'
-
uncap.Pestenoaptei-aucrescutalte6capeteinloc.Peacelagigdt!Adouazi,
Fdt-Frumosi.ataiatiaruncap,darpestenoaptebalauruluii-aucrescutinloc
(n+1-)-a zi, Fdt-Frumos s-a
alte 6 capete ... gi tot a$a timp de n zile. in cea de-a
tastatura n' numarul
qi plecat acas6! scrieli un algoritm care citeqte de la
plictisit
dezile,qicareafigeazdpeecranc0tecapeteaveabalauruldupdnzile'
zile
De exemplu, pentru n=3, algoritmul va afiqa: Dupa 3
are 15 capete
L{. Structura
balaurul
a
v-a, 2002)
aJternativ6,
Daci exPresie
atunci
instruc!iune-1
a1tfe1
instruc!iune-2
Efect:
Se evalueazd exPresia.
instruc!iune-1'
instruc!iune-2'
REPRiZENTAREA
ALGORlrYl"9*
26
ObservaYii
l.AtAtperamuraaLunci'c6tqiperamuraalt'felestepem.'isdexecutarea
l"rri in care este necesari efectuarea mai multor
unei singur" i,ru*i*ii'i,
singurl instrucliune compus6'
operafii, acestea se grupeazi intr-o
2.Dacdperamuraaltfelnuestenecesar5efectuareaniciuneioperafii,aceastd
ramurd Poate liPsi'
3.InstrucliuneaDacdpenniteexecutareauneisingureinstrucliuni,infunctiede
a unei alternative'
permite selectarea Jondilionata
valoarea unei expresii, deci
Aceastainstrucliuneimplerrrenteaziinpseudocodulnostrustructuraaltemativd.
4'Instrucliune-lgiInstrucliune_2suntsuborrlonateinstrucliuniide
eG subordonatd unei alte instrucfiuni'
decizie. in cazul io.ur. o instrucliune
o subordoneazS'
aceasta se scrie
B
i
,.-.
i. "ii."i
care
indentai fa!6 de instrucliunea
Moduldespaliere-suua.,..i",.peliniinuestepredefinit,daresteirnportantca
de intre{inut'
futa programele uqor de urmdrit 9i
modul d. ,.Au.tut"
'a
Selectareainstruc}iuniiceurmeazIs6fieexecutatSinfuncliedevaloarea
alternativd' '' ':' '' "
uoJ .*pr"rii reprezint[ o wlicturd
3.7. APlica{ii
Modtil
care
numSr intreg x" Scrieli un algoritm
Se introduce de la tastaturd un
num[rului x'
calculeazd qi afigeazI modulul
.:
;a=
#
g
tra
:
:
:
a
Solu{ie
t-
t-1,
x intreg;
m intreg;
Citegte x;
Daci x<0 atunci m(--x;
altsfel m<-x;
Scrie "Modulul este " '
dacdx2o
dacd x<a
*modu1ul " /
fit;
Obsentatie
i
ii
::=
>::
ObservalicsnuamtestatdecAtcondiliax<0'Evident'estesuficient'Dacdam
pusintrebarea,Jv[onedaacitztttcusten,lafttst,ts?,,qinis.ar[spuns,oN&/'',este
fa!6 in sus'
inutil si mai intreb[rn dac[ a cdzttt cu cealalti
27
INFORMATICA
Paritate
f
x. Scriefi un algoritm
care testeazA
Solulie
lui x la
Numirul x este par dacl este divizibil cu 2 (adic[ restul implr{irii
este 0).
I oac5
|
xZ2=O
(a*0)'
Scrie{i
Solulie
rldlcini
reale distincte.
*
intrare: d, b, c reale; / * coef icienlii ecualiei /
/* discriminanlul */
Datedemanevrd: d real;
SoIu!ia
Date d,e ieSire:
c;
b,
a,
Citegte
/* calculam discriminantul */
d<-b*b-4*a*c;
oaci d<0 atunci
Scrie "Ecuatia nu are ridicini rea1e";
altfeI
Da.ci d=0 atunci
SCfie ,'y-L=X2=" , -b/ l2*al;
/*d este >0 * /
aItsfe1
scrie ,xf-=,,, (-b+ Jal t (2*a) , ux2=" , (-b-Ja 11e*a)
Date de
Exerciliu
(caz in
Modificali algoritmul pentru cazul in care ecualia are gradul cel mult II
careapoatefi0).
\-d",
REPREZENTAREA ALGORITMILOR
28
Fttnc{ie
Fie
-j
l,l
F(x)=rna1 {
:':
Solu{ie
E-
l2x-11, 9-x2}
intare: x real;
Dcte de ieSire: f reaL ;
Darc de
/* F(x) */
Citsegte x;
f
O-v*v.
/* lZx-fl=2x-t */
2*x-1>=0 atunci
{Daci 2*x-L > f atunci f <- 2*x-1; )
/* l7x-Ll=t-2x * /
a1tfe1
j
{Daei L-2*x > f atunci f <- 1-- 2*x;
Scrie f;
DacZ
Suntd
de 3 lei qi de
orice sum6 de bani s (s>7) poate fi platiu numai cu monede
de plat[ a
5lei. Dat fiind s>7, scrie(i un algoritm care sa determine o modalitate
sumei S numai cu monede de 3 lei 9i de 5 lei'
Solutie
ProblemaceredefaptsSgdsimdou6numerenaturalex$iyastfelincatSsa
fi scris sub fbrma S=3 *x+5*y'
poata
:.
(S/3-3 ) +5*2'
S=3*S l3+L=3* (S/3-3 ) +3*3+1=3n (S/3-3 ) +10=3*
sZ: este 2. in acest caz vom considera x=S/3-1 $i 1"=1' deoarece
S=3*S /3+2=3* (S/3-1) +3 +2=3* (S/3-1) +5'
Date de intrare:
Date cle iesire:
Date cle ntartevrii:
natural;
S
x, y natural-e;
r:atural- ;
r
CiteSte S;
r <- S%3;
Daci r=0 atsunci {x e- S/3; y <- u;i
a1t,f e1
INFORMATICA
29
a, b, c, x intregi;
a(-3 ,. be-5; c<-7 i
V<_1;
si verifice dacr a gi b
care,
7.
care
si
dreptunghic
9.
Fie
qi
.in
x+y
/,r, r, =
zxy
max(x, y),
{ [+.1(+ -]*rr+x2
+r'),
dacd
x,y>0
dacd
x=0sau y=0
utr"r
**db"*p
\t-r''+*"-"
REPREZENTAREA ALGORITMILOR
30
c, iar c ,tp"al'lJli;;t"
oraqul
l'k*
qi
c[
o;,11:::*'li
celor
xi:,:HT,$::::
sau c cu trecere
dintre oraqere B
oricare
r" nra in
lungime minima care
-t
dercrmine-un traseu de
t"
;:;;
treilea
de-al
cel
orin
cere trei ritere corespunzitoare
,;
cit mai
-Y.,i:*
viziiate. Se va alege o metod[
in care sunt
celor trei oraqe, in ordinea
exemplu' pentru
aI gestion[rii memoriei. De
punctul;-;"d"r"
din
eficient[
2002' sesiune speciali)
afiqa BAC' (Bacalaureat
a=58, b=L40, c=L25'se va
un cllator iqi
praninii';;-t'ttt
::;Jf:?l, ff;i;ro
[:;*; ffi ;;;d;t'iFil'11
56sescrieunalgoritmcares[rezolvesistemuldedou6ecua,tiidegradull,cu
reali:
Oooe n""unor.ui" qi coeficien'ti
11.
d1X+b1!=C1
O'2Yr+b2!=C2
l2.Unelevestedeclaratpromovatlabacalaureatdac6lafiecaredintrecele5
este cel pulin 6'
not" 5'l;;"Jiu
r*u'n"n'ilJ"t"'"ip"f'
'u-g""ral6
probe de
Datefiindcele5notepecareelevulre-aobtinutlabacalaureat,scrieliun
nu examenul de
dacr elevul a promovat sau
algoritm care si
"tiin""
bacalaureat'
13.
H2
Ionel are H1 cm, Gigel arc
care
s[ afiqeze
"'*"i"
3.9. Structura
I
I
""f"r
un algoritm
DEnu! are H3 cm' Scrie{i
a inll{imii'
"T'^iu'
3 copii in ordinea crescltoare
rePetitivl
anterior
it =trucfiune
Efect:
Pas 1: se evalueazi
expresia;
.- ^ r:.^ i-o+srnri
Pas2:dac[valoareaexpresieiestefals,seiesedininstrucliuneac6t--t1l.,:^
dac[valoareaexpresieiesteadevErat'se.execut[instructiunea'aporse
revine la Pas 1'
Observalii
,i este adev6rats.
. _^r r!
repetat' cit timp valoarea' "ip::l-:
executi
se
Instruc,tiunea
1.
cafe se executa
outigutoriu ca instrucliunea
pentru ca ciclul rA;;; innnit,
inc6t
"rt"
r*riuuffi"ur" intervin in expresie' astfel
s[ modifice cel pufin una dintre
, ;T$'ffi3:t:'LTiJil"tlT:,,:i1;;'""
mlcar o dat6'
raIs'
31
INFORMATICA
p o st e rior
Executi
instruc!iune
cAt-timp expresie;
Efect:
Pas 1: se executd instructiunea;
Pas 2: se evalueaz[ exPresia;
pas 3: daci valoarea expresiei este f aIs se iese din instrucliunea repetitivE;
dacd valoarea expresiei este adevSraL, se reving la Pas 1'
Observalii
Simularea instrucliunii
timp:
DacE expresie atunci
Executd
instruc!iune
cAt-timp expresie;
Observali ci a fost necesar[ testarea ini$al6 a expresiei deoarece, spre deosebire
de instrucliunea CAt-timp, instrucliunea ExecuLE cdt-timp efectueazd o
datd instruc!iune inainte de a testa expresia.
Simularea instrucfiunii
t.imp:
instruc!iune;
Cit-timp expresie executi
instrucPiune
Observali c[ in acest caz a fost necesar
se executdm o
ciclului.
Deducem cd nu este necesard existenla ambelor instruc,tiuni, dar in funclie de
problemS, vom alege instrucliunea repetitivd adecvat6, pentru care descrierea
algoritmului este mai concis[.
RT,PREZENTAREA ALGORITMILOR
32
de
pasi
exPresie-1'
Pas2:SeatribuieuariabileiContorvaloareaexpresieiexpresie-]..
Pas 3. Se evalueazl
exPresie-2'
Pas4:Dac[valoareavariabileicontorestemaimaredecltvaloareaexpresrel
expresie_2,atunciseiesedininstrucliunearepetitivS.Dac6valoareavariabilei
atunci se
contor este mai rnicr sau egald cu valoarea expresiei expresie-2.
executainstrucliunegiapoiseincrementeaz[(sem[regtecu1)valoarea
Pas 3'
variabilei contor, dupd care se revine la
ObservaYii
expresie-l
expresiei_2,instrucliunenuSeexecutdniciodatS.incazcontrar,qi
variabilelor care intervin in
dac6 instrucliune nu modifica valorile
(expresie-2expresie-2, instrucliune se executd de
exPresie-1-+1-) ori'
2.Instrucliunearepetitiv[cunum6rcunoscutdepagipoatefisimulaticuajutorul
celorlaite doud instrucliuni repetitive'
cu ajutorul instrucliunii repetitive condilionata anterior
(cat-timp)'
instrucli-
fi simulatd astfel:
contor e- exPresie-1
;;;-;i*, .or]tot ( exPresie-2 executa
unea
t
[
Ir
F
|
Pentru
poate
instrucfiune;
<- contor+1;
"ontor
Ir
Cuajutorulinstrucliuniirepetitivecondilionatiposterior(ExecutSc6t-timp),
instrucliunea PenLru poate fi simulatd astfel:
instruc!iune;
contor e- conLor+1;
INFORMATICA
3.10.
33
Aplicafii
cn
Secvenld
pseudQco
ieSire: nr naturaI,.
i nagural ,
Citegte n;
Citegte a;
i<-1 ; nre-0,. _
ceE:ffimp i<n executi
{ .citegte b;
i+-i+1;
.D*,1"_1 b!q:O. arunci
'1
Date de
Datedemanevrd:
l
I
k: L Cnf
n W_ry
"g"X
in
* X-"
'
Se consideri
I
I
o._
1'
r-\
l/*
/*
/*
/*
/*
/*
1rrtlrl-];
)
-"[t".;
Scrie nr,.
a. Ce se va afiga dac[ se citesc valorile 6* {.}, X
$
/* -l r,/
/* B */
ae-b,.
/* g */
S, et
incAt algoritmul sd afigeze
c.
Solusie
a.
Linia
II
nr
:-
Explicafie
Se
inilializeazl variabilele
respectiv
4
l_
nr
gi
cu valoirea 0,
1.
i
i (9 este r\
dec6t valoarea variabilei n (6).
mai micd
Deoarece expresia
i<n
are valoarea
adev5rat,
cu
instrucfiunea 5.
5
3
InformaticE
variaUitelbl
REPREZENTAREA ALGORITMILOR
Se m6reqte valoarea
1_
t_
variabilei
cu
) t"riam
V*iuUit"i a
Deoarece expresia
instruc{iunea de Pe linia 5.
b'
l-
Se mdregte valoarea
t_
cu
la
variabila
variabilei
t-
Vu.i^Uit"i a
(3) qte
21.
21,
Se miregte valoarea
2L
variabilei
cu
b'
l.
la
2L
2L
2L
21,
Variabilei a
Se testeazS
mai
INFORMATICA
35
instrucliunea de pe linia 5.
5
2L
21
Se mlregte valoarea
2L
.)
variabilei
cu
nr
(5)
este
Se m[regte valoarea
Variabilei a
variabilei
cu
(6)
este
(6).
nr
(3).
36
REPREZENTAREA ALGORITMILOR
c. Urmirind algoritmul
Calcul
Se considerd urm6toarea secvenf[ de
Date de intrare:
n
Date de intrare/ieSire.' x
Date de manevrd:. i
insrucliuni in pseudocod:
natural;
natural;
naEural;
Citegte n, x';
Pentru i+-1,n executE
x +- x*x;
Scrie x;
/* 2 */
/* 3 */
/* a */
c.
structura repetitiv[
cdt timp.
Solulie
a. Pentru a determina efectul algoritrnului pentru n=3 gi x=2 vom urmdri pas cu
pas execulia algoritmului, ilustrAnd in tabelul urmitor valorile variabilelor care
intervin
?n acest
algoritm.
Linia
Exolicatie
cite$te valoarea 2 gi se atribuie variabilei
16
i cu 1. Deoarece valoarea
< valoarea variabilei n se continul cu
variabilei
J
n, apoi se
x. Valoarea
instructiunea de pe linia 3.
Se modific6 valoarea variabilei
x,
se
revine
lalinia2.
5t
INFORMATICA
16
256
256
b.
256
instructiunea de oe linia 3.
Se modificd valoarea variabilei x, se revine
variabilei
4
i cu 1. Deoarece valoarea
< valoarea variabilei n se continu[ cu
variabilei
lalinia2.
i cu 1. Deoarece valoarea
> valoarea variabilei n se iese din ciclu qi se
CAt-uimp:
Date de intrare:
Date de intrare/ieSire.'
Date de manevrd:
Citegte n, x;
iu1
n natural;
x nat.ural,.
i nat.ural;
variabilei
c.
i.
Pentru a determina efectul general al acestui algoritm vom aplica un rafionament inductiv. Deoarece valoarea variabilei x se modificl la fiecare pas, pentru
a fi ugor de urmdrit evolulia acestei variabile, vom nota cu x0 valoarea initiald a
variabilei x.
Explicafie
x0
x0'
Daci pentru
x0*
x0
38
REPREZENTAREA ALGORITMILOR
va avea valoarea
*0r',,.
observdm
c[
x va avea varoarea
de la
Darc de intrare:
Date de ieSire:
a, b naturale,.
nr naE,ural;
DTte de manevrd: i nat,ural;
Citegte a, b;
L */
2 */
3 */
4 */
5 */
nr-O;
.*.'ra
ExecutE
a. Vom urm[ri
Se citesc uutori
variabilelor a gi b. Variabilele
o valoare nedefiniti.
nr
Se testeazd Ou"U
0 (adicd dac6 i
r.
este
au Oeocamaata
.oil.
Se inilializeaza u*irUif u
Se inilializeure
(5). Deoarece valoarea variabilei
varidbilei b se continud cu i
gi
<
valoarea
nea de pe linia 4.
revine Ia linia 3.
Se
39
INFORMATICA
3
1,
t-
.)
continud cu instruc{iunea de pe liqiq 4,Se testeazf, dacd restul impdrlirii variabilei i la 2 este
0 (adicd dacd i este numdr par). Deoarece i este par'
valoarea variabilei nr se mdregte cu 1. Se revine la
linia 3.
Se mdreqte valoarea variabilei i cu 1. Deoarece
valoarea variabilei i este < valoarea variabilei b se
continuS cu instrucliunea de pe linia 4'
Se testeazl dacS restul impdr[irii variabilei i la 2 este
0 (adicd dacd i este numlr par). Deoarece i este
impar, valoarea variabilei nr rdmAne nemodificatd. Se
revine la Iinia 3.
Se mlreqte valoarea variabilei i cu 1. Deoarece
valoarea variabilei i- este < valoarea variabilei b se
continud cu instrucliunea de pe linia 4.
Se testeazd dacd restul impa(irii variabilei i la 2 este
Executd
'cAt-timp:
a, b nat.urale;
Date de intrare:
natural;
nr
Date de ieSire:
Date de manevrd: i natural;
citegte a, b;
nr e- 0; i <- a;
Daciijbatunci
Executi
t Daci i82=0 atunsi nr <- nr+1;
)
i <- i+1;
cat-timp (i(b);
Scrie nr;
Observali c[ a fost necesar sd testdm separat, inainte de a intra in instrucliunea
repetitivd Executi cAt-timp, dacd i(b. Dac[ nu am fi pus acest test Ei dacd
inilial am fi citit o valoare par[ pentru variabila a strict mai mare decAt valoarea
Q_:
t
40
REPREZENTAREA ALGORITI\{ILOR
pentru variabila
variabilei
c.
nr
cu 1.
d. Doi algoritmi
Ia,
b]
).
Un algoritm echivalent, dar mai eficient de a numdra valorile pare dintr-un interval
dat Ia, b] nu necesitd parcurgerea tuturor numerelor din interval. in primul rAnd
observdm cd in intervalul [a, b] sunt exact L=b-a+1 numere naturale. in al
doilea rdnd observdm cd aproximativ jum5tate din valorile din intervalul Ia, b]
sunt pare gi restul sunt impare. Am spus aproximativ jumdtate deoarece trebuie sd
fim atenli la paritatea capetelor intervalului. Mai exact va trebui sd analizlm
4 cantri posibile:
nr
par
impar
L/2
Explicatie
Se formeazd exact L / 2 perechi de numere naturale
consecutive (par, impar).
lmpar
par
L/2
Se formeaz[ exact
L/2
par
I+L/2
lmpar
L/2
impar
I
t
:1
=:
.J
intrare:
ieSire:
a, b naturale;
nr natural ;
rnanevrd: i natural;
Citegte a, b;
nr <-- 0;
DacEa(batunci
{nr <- b-a+1;
Daci a82=0 gi b82=0 atunci nr (- nr+1;)
Scrie nr;
Date de
Date de
Date de
este:
Q_:
t
40
REPREZENTAREA ALGORITI\{ILOR
pentru variabila
variabilei
c.
nr
cu 1.
d. Doi algoritmi
Ia,
b]
).
Un algoritm echivalent, dar mai eficient de a numdra valorile pare dintr-un interval
dat Ia, b] nu necesitd parcurgerea tuturor numerelor din interval. in primul rAnd
observdm cd in intervalul [a, b] sunt exact L=b-a+1 numere naturale. in al
doilea rdnd observdm cd aproximativ jum5tate din valorile din intervalul Ia, b]
sunt pare gi restul sunt impare. Am spus aproximativ jumdtate deoarece trebuie sd
fim atenli la paritatea capetelor intervalului. Mai exact va trebui sd analizlm
4 cantri posibile:
nr
par
impar
L/2
Explicatie
Se formeazd exact L / 2 perechi de numere naturale
consecutive (par, impar).
lmpar
par
L/2
Se formeaz[ exact
L/2
par
I+L/2
lmpar
L/2
impar
I
t
:1
=:
.J
intrare:
ieSire:
a, b naturale;
nr natural ;
rnanevrd: i natural;
Citegte a, b;
nr <-- 0;
DacEa(batunci
{nr <- b-a+1;
Daci a82=0 gi b82=0 atunci nr (- nr+1;)
Scrie nr;
Date de
Date de
Date de
este:
INFORMATICA
41
Factorial
Fie n un numdr natural. Sd
se calcul eze
nt
Soluyie
Prin defini$e, n !=r- *2* . .. *n, pentru orice n>0, iar 0 !=r-. observrm cd n !
se obfine ?nmullind succesiv toate numerele naturale mai mici sau egale
cu n.
Pentru a calcula acest produs, vom utiliza o variabild f. Inilial variabila
f va fi 1
(pentru cd 1 este elementul neutru la inmullire), apoi vom parcurge
numerele naturale de la 2 la n, inmullind succesiv variabila f cu fiecare dintre aceste
numere.
Date de intrctre:
Date de ieSire:
Date cle manevrd:
n natural;
f natural;
i nat.ural;
Citegte n;
f +* 1;
Pentru i <-- 1, nexecutif+-.f*i;
Scrie f;
Exercilii
l.
2. scrie{i un algoritm
cat-E.imp.
Putere
Fie
pe
n un numlr natural gi x
x".
Soluyie
)qn=;*;*. . . *4=(x*x*.
de n ori
-,--_]--
de
.,*x),k11 = 1n-1*,.
n-1 ori
Evident, xo=1.
n natural ,. x real
real;
i nat,ural;
Date de ieSire: p
Date de manevrd:
,.
Citegte n, x;
Pe1;
Pentru i <- 1, n executi p <- p * x;
Scrie p;
i (i=1, ...,
,1
a.
d
-{
42
REPREZENTAREA ALGORITMILOR
Observalie
Acest algoritm efectueazd exact n inmultiri.
DobAndd
S[ presupunem cd dorim sI depunem la banc[ o sumi S, cu o dobdndd anuald
de d8. Presupundnd cI timp de n ani nu intenfiondm sd scoatem bani din bancd qi
,-j
*!
r{
Initial
.{i
DupX
.1
Dupd 2 ani
Duo[ 3 ani
g
.:
I
:1
;
i
1 an
Suma
Dobinda
100
100
105
1l_0.25
Total
100
105
5.25
5 .5L25
110.25
1,1,5
.7 625
Solu{ie
n natural; d real;
C
ra:]
i natural;
Citegte S, n, d;
Pentru i e- 1, n executS. S (Scrie S;
S+S*d/1,00;
ExerciSiu
Urm6rili pas cu pas execulia acestui algoritm pentru S=1000, d=1-0%, n=5.
Maxim
I. Fie a qi b doud numere
Solulie
Compar valorile celor dou[ variabile citite qi o afigez pe cea mai mare:
Date de
Date de
Citegte a, b;
Daci a < b atunci Scrie
altfeI Scrie
gi
,,max= ,,,
,'max=
b
1^.
INFORMATICA
43
o alt[ solufie, care al'e avantajul cd o vom putea generaliza pentru oricdte
elemente, este de a reline maximul intr-o variabiln (s6 o numim max). Inilializdm
variabila max cu a (inilial pot considera cd a este ,,cel mai buu"). Apoi compar
maximul cu valoarea variabilei b gi, clac6 max este mai mic, il schimb.
intrare: a real; b real;
DatedeieSire: max real; /* maximul_ dintre a $i b *,i
Citegte a, b;
Date de
max(-a;
Daci max < b atunci
Scrie "max=
/*inilializare*/
maxe-b;
max;
II' Fie a, b 9i c trei numere reale, citite de la tastaturl. Scrie[i un algoritm care
determind gi afiqeazd cea mai mare valoare citit[.
Soluyie
Citegte a, b,
max(-a,.
atunci max+-b,.
c atunci max(-c;
Scrie "max= ' , max;
b
/* ini;.ializare * /
/* compar cu b */
/ * compar cu c *,/
real5 citit6.
SoluSie
44
REPRBZENTAREA ALGORITMILOR
Aceastl idee o vom utiliza in continuare: in variabila max vom re{ine la fiecare
moment cea mai mare valoare citit[ p6ni la momentul respectiv.
Date de intrare: n natural; a real;
DatedeieSire: max real; /* maximul dintre valorile citite */
Date de manevrd: i natural
/*in i relinem c6.t,e valori am ciLit pani 1a un moment d.at*/
Citegte n;
Citegte max,. /* inilializim max cu primul element citit */
i<-1-;
,/* i indici num5rul d.e valori cit,ite */
,.
. in
2'
Exercigii
precedent utilizAnd
cunoscut de pagi.
2. Modificati algoritmul precedent astfel incat sI calculeze cel mai mic dintre
elementele citite.
s[
Medie aritmeticd
Se citegte de
succesiv
Solulie
numirul lor.
45
INFORMATICA
'
cele n valori
mod asem6ner- .u problema precedentS, vom citi succesiv
dacd valoarea cititd
intregi in aceeagi variabila a. Oupa fiecare citire vom verifica
la sum6'
adduga
qi
vom
o
este Jtrict pozitiv[ 9i, in caz afirmativ, o vom numlra
i"
n natural; a real;
numerelot */
DatedeieSire: medie real; /* media aritmetici a
Datedemanevrd: i natural; nr natural; s real;
citit pAni Ia un momenE dat"
1;-i" t."t.in"* cALe valori ampozitive
in s
arn citit;
valori
cAte
in nr catculEm
calculdmsumavalorilorstrictpozitivecitite*/
Citegte n;
*/
i<-0; /* inilial nu am citit nici o valoare
nr<-O; /* inilial nu am citit nici o valoare Pozitivi*/
*/
s(-0; /*inifial suma valorilor strict pozitive citite e 0
Cats-tirq, i<n executi
valori */
/* cAt timP nu am citit toaEe cele nvaloare
{
*/
/* ciEesc o noui
Citegte a;
*/
/* numir valoarea cititi
i+-i+L;
esEe stricL poziLivd */
valoarea
/*
Dacia>0atunci
{
/* o adun ]a sum5 */
s<-s+a;
/* o numir */
nr(-nr+1;
Date de intrare:
)
)
"
atunci Scrie "Media aritmeticl =poaLe
' s/nri
calcula";
se
nu
aritmeEici
altfel scrie "Media
Dacd nr*O
Sumd cifre
se citeqte de
1a
lui
tastaturd un num6r natural n. s6 se calculeze suma ciftelor
n'
Solulie
(restul
cel mai usor se obline ultima cifr6 din numlr (cifra unit[,tilor): n%1-0
sum6), nu mai
impar,tirii lui n la 1-0). Dup6 ce utilizem ultima cifr[ (o adiugam la
zecilor a devenit
avem nevoie de ea qi o elimin[m din num[r (n+-nl10). Cifra
cifre.
are
mai
acum ultima cifrl. Repetam procedeul, cdt timp numirul
Date de intrare:
Date de ieSire:
Citegte n;
n natural;
s naLural; /*
suma
REPREZENTAREA ALGORITMILOR
44
Darc de
H::'i}i.,,
?1';:'{'::;1k
n;
am
valorile citite */
citit */
a1
eme
element
^.. primul
^-inrr'l
cu
max
iniiializim
Citegte max; /*
*/
/* i indicl numdrul de valori citite
L<-L;
car-rirua t."
cele n valori */
Loare
cirir
,,,
;T"::la.r*,
?T
cite9te",-*-__---"-/*citesconouSvaloare*/
*/
/* numir valoarea cititi
i+-i+l- i
*/
/* compar cu max
Daci max < a atunci max<-a;
Citegte
max;
Observasii
1.
operatr
necesara efectuarea mai multor
instrucliunea cats-timp a fost
(citireauneivalori,*,,,a,u,"uvaloriicititegicomparareaacesteiacuvaloarea
maximidepin6acum).Prinurmare,amgrupatinstrucliunilecorespunzdtoare
inu-o singur6 instructiune compus6'
in
2.Pentruacalculamaximulannumereafostnecesaraexecutareainstrucliunii
instrucliunii CAt-timp de n-1 ori'
compuse subordonate
Exercilii
l.RescrielialgoritmulprecedentutilizAndoinstrucliunerepetitivacunum[r
cunoscut de Paqi'
2.Modificalialgoritmulprecedentastfelincflts6calculezecelmaimicdintre
elementele citite.
3.Modifica,tialgoritmulprecedentastfelincatsicalculezecelemaimaridou6
elemente dintre cele citite'
Medie aritmeticd
se citesc succesrv
la tastaturd un numir natural nenul n, apoi
gi afiqeazd media aritmetic[
n valori rlale. Scrieli un algoritm care determini
Se citeqte de
suma
45
INFORMATICA
n natural; a real;
real; /* media aritmetici a numerelor */
Datedemanevrd: i naEural; nr naEural; s real;
/*in i reqinen cAte valori am citit pAnd Ia un momenE dat;
in nr ca1cu15m cAte valori pozitive am citit; ln s
calculdm suma valorilor strict pozitive citite */
Cite$te n;
i+-0; /* iniliaI nu am ciEit nici o valoare */
nr+-O; /* inig,ial nu am citit nici o valoare pozitivd*/
s<-0; /*ini!ia} suma valorilor sEricL pozitive citiEe e 0 */
Cit-tirnp i<n executi
/* cAt ti-mp nu am citiL Eoate cele n valori */
t
/* citesc o noud valoare */
Cite$te a;
*/
/ * numir valoarea cititd
i<-i+l-;
*/
poziLivd
stricL
>
valoarea
esLe
Daci a 0 atunci /*
Date de intrare:
DatedeieSire: medie
/* o adun la sumi */
/* o numdr */
s(-s+a;
nre-nr+1;
]
Sumd cifre
Se citeqte de la tastaturi un numdr natural
n. SI
se calculeze suma
cifrelor lui n.
Solulie
'f
I
i
{
I
i
Cel mai ugor se obline ultima cifrd din numlr (cifra unitdlilor): n%1-0 (restul
impdr,tirii lui n la 1-0). DupE cp utiliz[m ultima cifrl (o adiugim la sumd), nu mai
avem nevoie de ea qi o eliminlm din numer (n<-nll-O). Cifra zecilor a devenit
acum ultima cifr[. Repetim procedeul, c6t timp numlrul mai are cifre.
Date de inffare:
DatedeieSire:
Citegte n;
n natural;
s naLural; /*
suma
cifrelor lui n */
REPREZENTAREA ALGORITMILOR
46
Observalie
Ini,tializareauneivariabileincaretrebuies6calculSmosum6seface
unei
adunare). in mod similar' inilializarea
intotdeauna cu 0 (elementul neutru la
(elementul
I
produs se faCe intotdeauna cu
variabile in care trebuie s[ calculam un
neutru la inmulfire).
i
I
tl
Irl
It
li
lr
Exercisii
pentru o=5672'
1. Urm6rili pas cu pas execufia acestui algoritm
2.Modificalialgoritmulastfelincdts6determinenumirulnresurnat(scrisdela
dreaptalastdnga).Deexemplu,pentrun=3201-algoritmulvaafiEaL023'
lui n'
3 M#ftai
Perechi
cu
Solu1ie
Date de
deoarece:
Pentru
Pentru
Pentru
/2 oi,
n-l- on;
se executd de n-2 ori;
se executd de n-3 ori;
se
executi de
se executii o date'
INFORMATICA
47
intrare: n natural
a, b naturale,.
,.
Datedemanevrd:
Citegte n;
Pentr-u a <- 1, rr-1 executi
{me-1-;
Cat-timp a*m(n-1 executi
{Scrie ' (', a, ' ,' , a'*In, ,) ,;
m <- m+1; )
Divizori
Dat fiind n un numlr natural, sI se determine toti divizorii naturali ai lui n.
Solulie
Citegte n;
Scrie l-;
Scrie n;
Scrie x;
Primalitate
Fie n un numdr natural, n>1, citit de la tastatur[. scrieti un program care
verific[ dacd numirul n este prim.
Solulie
Pentru a testa dacl num[rul n este prim, vom verifica dac[ are sau nu divizori
proprii (divizori diferili de 1 gi de n). Pentru aceasta vom parcurge intervalul
REPREZENTAREA ALGORITMILO]I
48
numerelor naturale
:Iffi :fi
il[5ff
IJ'ff 'JIilil:#;;il;JJ".u1,.::"^:T,:'^::313ilf,1rer'i'o"
de nevinov6!ie")'
irtil ;Hii:il|?* ii uuiuuim vatoarea (,prezum.tia
prim ii atribuim
1-
variabilei
Pe parcursut verificdrii, dac[ S]im ]]1.1t'1?l'
g6sitl)'
este prim
uu woLv
rr nu
cI n
v^r^'^a fost
(,dovada" ua
r qi avem de
valoarea
)area 0 (rroovaua
)
c-[uta (nu
unde
avem
timp
cdt
i*
Verificarea continu6
1:,':,]1Jn
n)'
lui
al
un divizor
,, c6uru(nu am g[sit inc[ "dovada vinov[fiei" -
intrare: n natural;
naEurale;
Date de rnanevrd:'d, Prim
tesEului
Date de ieSire: RezulLaLul
Date de
Citegte n;
prim <- l-; d <- 2i
*/
cit-timP d<"6 9i Prim=1 executS
am gasiL un d'ivizor
/*
atunci
Prim=0;
ntd=0
Daci
*
/* ciutam mai deParte /
altfel d <- d+1;
il
este Prim";
Daci Prim=L atu:rci Scrie n'
altfel Scrie n' nu este Prim";
tr
:,"::,1*t*::Y-"I:":#,;;
singurul
t#t;3:
numerele impare.
"";#rd#;;-;.'v;Ftainp'im'1,I11u-::'::,:'::"iJ*f
:ffi|^l#:l,$2,"ii "rr" prirnl, apoi vom verifica numai
n natural;
d, Prim naLurale;
Eestului;
Date de ieSire: Rezultatul
citegte n;
prim +- 1;
Daci n>2 atunci
Daci nB2 =0 atunci Prim e- 0;
Daft de intrare:
Datedemsnevrd:
aItf,el
{d +- 3;
car-timp d<{n $i prim=1 executi
Daci nBd=O atunci Prim=O;
altfel de-d+2;
)
', este pfim";
Daci prim=1 atunci Scrie n'
n'
" nu este Prim";
altfel Scrie
3.LamatematicEaiidernonstratoteoremaconformcsreiadac5unnum6rnuareniciundivizorpdni
prim'
la radicalul sdu, atunci el este
INFORMATICA
49
Exercisii
'
".
r:
es
u,
i.
Solugie
vom aplica
I
I
I
invifat
divizori (n>1).
Date de
intrare: n nat.ural
d, m naturale;
,.
Datedemanevrd:
n%d=0 atunci.
/* d
n *,/
/* cal_culez multiplicitatea luidivide
d
in
n *./
m +_ 0,.
Cat-timp ngd=0 execuEi
{ m <- m+1; n <- n/d; }
Scrie "divizorul ,,, d, ' 'mu.l.tiplicitated
,,, rt,.
d <- d+1;
Exercilii
l. observa.ti
Yr-arip pas cu pas execulia acestui algoritm penrru n=2500.
2.
cd nu am testat nicrieri dacn a este prirn.
Nu
r"""rur, deoarece,
datoriti faptului cr atunci c6nd grsim un divizor
ar rui "riJ
n, il impd(im pe n ra
divizor ori de cdte ori este posibil, orice divizor
nou g6sit este prim.
Demonstrafi aceaste afirma]ie prin reducere
la absurd.
programul astfel incdt sr afiqeze numai
cel mai mare divizor prim.
programul astfel incat si calculeze numrrul
total de divizori,ai lui n.
3' Modificafi
4' Modifica{i
4-Informatici
:l
50
REPREZENTAREA ALGORITMILOR
sl
Solulie
Vom aplica algoritmul lui Euclid, inv6{at la matematicd. CAt timp m*0,
imp6rfim n la m gi calcul6m restul; la pasul urmitor impirlitorul devine deimplrfit,
iar restul devine imp6rfitor. Ultimul rest
* 0 este c.m.m.d.c.
De exemplu, pentru a=495 gi b=720, cel mai mare divizor comun prin
algoritmul lui Euclid se obfine astfel:
impd4itor Rest
= 724 0+495
= 495 L+225
= 225.2+ 45
0=c.m.m.d.c.
= 45'5+
Date de intrare/ieSire.' o, rl naturale;
Date de manevrd: resE natural;
Cl,tegte n, ltli
DeimpErtit
495
720
4g5
225
1495,72A)=45
( restentm;
n(-m;
m+-rest; )
Scrle "cmmdc=" , n;
/*
/*
/*
/*
*/
calculez resEul
impirg,itorul devine deimpirlit */
*/
restul devine impdrfitor
*/
ultimul resE diferiE de 0
Exercilii
i,
2.
Urmirifi
dactr
puts
inifial
ar
fi
n gi m sunt
(n,
m)
(cel
INFORMATIC,{
51
Termen Fibonacci
Fie qirul Fibonaccis
Observafi
1,1-,2,3, 5, B, L3,2L,34,
...
il
preced.
(f 0<-f l_ , fL<_f}):
intrare: n natural;
Exercilii
l.
Urmlrifi
n=10.
REPREZENTAREA ALGORITMILOR
52
Fibonacci.
astfel incdt
Fibonacci, mai mic sau egal cu n.
4. Modificali algoritmul
si
Existenld
Se citesc de
succesiv
Vom citi succesiv cele n valori intregi in aceeaqi variabil[ a. DupS fiecare citire
vom verifica daci valoarea cidt[ este divizibil[ cu p qi, in caz afirmativ, vom re]ine
faptul c[ exista un multiplu al lui p. Rezultatul verific[rii il vom reline in variabila
exista. Inilial valoarea acestei variabile este 0 (deoarece incd nu am descoperit
nici un multiplu al lui p). Dacd pe parcursul citirii vom descoperi un multiplu al lui p,
variabila exista va primi valoarea l-'
Date de
r, exista naEuraf e;
Date de ieSire: Rezultatul testului;
Citegte n, p;
exista <- 0;
Pentru i+-l-, n executi
,/* ciLesc un nou Lermen
{ Cite?te a;
Dacd a8p=0 atunci /* am descoperiL un multiplu
exista e 1; )
Daci exisEa=1 atunci Scrie "Exista un multiplu a1 1ui "
p;
altfel Scrie "Nu exista un mulLiplu a1 1ui
Date de manevrd:
tr
Exerciliu
4, L,
12,4,5.
2. Modificali algoritmul astfel incdt sI
existenli in gir.
6.
INFORMATICA
53
Vom citi succesiv cele n valori in aceeagi variabil[ x. Pentru fiecare valoare
cititd vom determina numlrul de divizori primi (folosind un algoritm asemdndtor
cu descompunerea in factori primi, numai cd in loc sd afigdm divizorii primi gi
multiplicitdlile acestora, vom numdra divizorii).
Rezultatul verificdrii il vom retine in variabila oricare. Ini(ial, aceasu
variabild are valoarea 1 (deoarece incd nu am gdsit un numdr care sd nu aibr un
numdr impar de divizori primi). Dacd, pe parcursul citirii. vom intalni un numdr cu
numdr par de divizori primi, variabilei oricare ii vom atribui valoarea 0.
Date de intrare: n, x nat.urale;
Date de manevrd: i, d, nr, oricare naturale;
Date de ieSire: Rezult.atu1 Lest.ului;
Citegte n;
oricare e- 1,.
Pentru i+-1, n executE
{Citegte x;
*/
/* citesc o noua valoare
nr +- 0;
,/*numirul de diwizori primi ai lui x este inilial 0
d <- 2;
/ *det.ermin divizorii primi ai l_ui x
Cdt-timp x>L executi
{Daci x?d=0 atunci /* am descoperit un divizor */
inr +- nr+1;
/* numir acest divizor prim, apoi
i1 elimin din x, prin impartiri repetat.e * /
CAt-timp xBd=O executi x=x/di )
d e d+l-; ]
/* caut. divizori mai d.eparLe */
Dac6. nr * 2 = 0 atunci ori_care (_ 0;
,/* pentru cd am gasit o valoare cu numdr par
de divizori primi */
)
,,DA,,;
,,NU,,;
Vocale
se citeqte de la tastaturd o propozi{ie scrisr cu litere mici, terminata cu ,
scrieli un algoritm care calculeaz[ gi afigeazi numirul de vocale din propozilie.
REPREZENTAREA ALGORITMILOR
54
Solupie
c caracter i
in c vom cit.i succesiv caracLerele din care este
constituiEi propozilia */
/* numiruf de vocale */
Date de iesire: nr natural;
*
nr(-O;
/ ini!ia1 numdrul de vocale citiLe este 0 *,/
Date de intrare:
Executi
{
/*citim un caracter
Cite$te c;
Daci c='a' 8au c='e' sau c='i' sau c=ror sau c='u'
atunci nr<-nr+1;
/* c este vocaI5, o numir
cAt-timpc+'.'i
Scrie "Numirul de vocale este ', r:r;
n, m natural-e;
/*ngimsunt
Cat-tiry) n*m executi
Daci n>m atunci n<-n-m,'
altfel m+-m-n;
Scrie n;
Date de intare/ieSire.'
CiteFte rr, rni
diferit,e de 0
*./
c.
Citelte a, b;
ceO;
C6.t_tinp a*0 Fi b*0 executi
{Dac5. at10>b810 atunci c<-c*10+a%10;
altfel
a+-al10; be-b/10;
a. Ce valoare va
avea variabila
c<-c*10+b810;
)
INFORMATICA
55
b. Daci se cite$te
c.
valoarea
fi
Citegte n;
natural;
natural i
d<-2;
c.
4.
I natede intrare: !!., b naturale;
Date de ieSire: x naEural;
Date de manevrd: p natural;
Citegte n, b;
x+-0,. tr<-1 ;
CAt-tinp n>0 executi
t x+-x + tr* (n tj-0)
P(-p*b; n+-n/L0i
/*
1r_.
2S}r39 */z
Scrie x;
incdt pentru
sd se afigeze valoarea 3 3 1?
at
Citegte a, b;
i<-a; x+-o;
Ctt-tinp i<=b executi
{ x+-x+i;
i+-i+1; )
Scrie x,.
a. ce valoare
va
fi
56
REPREZENTAREA ALGORITMILOR
ue-x/10;
b. ue-x,.
u(-x;
Care dintre urmltoarele secvente afigeazi cel mai mare divizor propriu al
num[rului natural neprim memorat in variabila x?
a.
c.
d<-2;
de-2;
de-d+1;
de-d+1;
Scrie x/d;
Scrie x/d;
b.
d.
a<-z;
I Executi
I ctt-tirp ded+1;
xtd*O;
l;
scrie
x/d;
I
d<*x/2;
,.
Ia*zi
l,
t1
[
I
cat-tirp
d<50 executi
{ x(-x*d,. d+-d*d;
scr5.e x;
9. Fie n un numit natural nenul
rr, p, m naturale;
Citegte n, p;
C&t-timp nBp=Q executi me-m+l; n(-nlp;
Scrie m;
I0. Numdr perfect
Un numlr este perfect dacd el este egal cu suma divizorilor s6i (exclusiv el
insuqi). Scriefi un algoritm care sd testeze dac[ un numir natural dat este perfect.
.,,
1l
,l
56
REPREZENTAREA ALGORITMILOR
b.
Ce valori ar putea
fi introduse pentru a
gi
si
afigeze
va\oarea 22?
6.
(
I
incat
algoritmul sd afiqeze valoarea 0.
d. Scriefi un algoritm echivalent mai eficient. Doi algoritmi sunt considerafi
echivalenli dacd pentru orice date de intrare ei produc aceleaqi rezultate.
Care dintre urm[toarele secvente de instruc{iuni atribuie variabilei intregi u
valoarea primei cifre a numdrului natural reprezentat de variabila x ?
a.
ue-x,/10;
b. u<-x;
c. u<--x*10;
7.
Care dintre urmdtoarele secvenle afiqeazd cel mai mare divizor propriu al
numdrului natural neprim memorat in variabila x?
a.
C,
d+-2;
d<-2;
d<-d+1;
d<-d+1;
Scrie x/d;
Scrie x/d;
b.
d.
d+-2;
d<-x/2;
Executi de-d+1;
CAt-timp x%d*O executi
cAt-timp xtd*O;
d+-d-1;
Scrie x/d;
Scrie d;
8. Ce valoare initial[ ar trebui si aibl variabila x astfel incat dupd executia
s6 se afigeze valoarea 6 4 0 ?
Scrie x;
9. Fie
n, p, m naturaLe,.
Citegte n, p;
Cit-timp n*p=Q executi
Scrie m;
m<-m+1; ne-n/p;
Un numlr este perfect daci eI este egal cu suma divizorilor sdi (exclusiv el
insuqi)' Scrie{i un algoritm care sI testeze dacl un numdr natural dat este perfect.
INFORMATICA
57
filz.
e,i*,
Fie
n_umdr
&pot,naro*
Fie n un num5r natural, citit de la tastaturd. Scriefi un algoritm care
testeazl
daci n este palindrom (citit de la stdnga la dreapta gi de la dieapta la
st6nga esre
acelagi). De exemplu 13 31, L4541sunt palindroame.
r'"-'$e
Sd
18. Cifra 0
\W
Cifra de control
58
REPREZENTAREA ALGORITMILOR
De exemplu, pentru
rv293
j20.
'
Ndtrate perfecte
Fraclii
lt/L,
23.
$ir
S[ consider[m urmltorul gir definit prin recurenld astfel se=f, sr=!, s2=1-, iar
s,=s.-1+l*sn-2-sn-3 (pentru n)3). Scrieli un algoritm care s[ afiqeze al n-lea
termen din acest qir.
24. Medie semestriald
sd calculeze media
semestrial[ a elevului.
25. C.m.m.d.c.
26. Numdr
Se citeqte de la tastaturi o succesiune de caractere, terminatl cu spaliu ( , ').
Scrieli un algoritm care sI verifice dac6 succesiunea de caractere cititi poate fi
considerati un numdr natural scris in baza 10. Modificali algoritmul astfel incAt si
testeze dacd succesiunea de caractere citit6 poate fi considerati un numlr real.
27. Cuvinte
Se citegte de la tastatur6 o propozilie constituitd din cuvinte separate prin unul
sau mai multe spalii. Sffirgitul propoziliei este marcat de intfllnirea caracterului '.'.
Scrieli un algoritm care determin[ qi afigeaz[ numErul de cuvinte din propozifie.
INFORMATICA
(@
59
4. EXEMPLE DE IMPLEMENTARE
Limbajul Pascal
Euclid;
var n, m, t, integer;
progrLm
begin
r:=n
mod m;
Limbajul C++
#incl-ude <iostream.
int maino
{
int n, m, r;
cout<< (rf- , ,. cin>>n,.
cout,<<"m- "; cin>>m;
while (m)
{;=nBm;
n: =m;
m:
n=m;
=r;
end;
writeln('cmmds=', n);
end.
h>
m=r.
,.
$irul Fibonacci
in capitolul precedent am elaborat algoritmul de determinare
ft=f z-L;
f1=f.-1+fr-2,
60
EXEMPLE DE IMPLEMENTARtr
Limbajul Pascal
Limbajul C++
#include <iostream.h>
int maino
Drogram Fibonaccj-;
vatr n, i, fl , f2, f3: int.eger;
begin
writ.e('n=' ) ; readln(n)
f2:=L; f3 : =1;
for i:=2 to n do
begin
f!:=f2;
F1 .. -$')
-LJ
LA
Fa-4't.LJ
f3:=f!+f2
endi
LL-
f3=fL+f2; l
cout.<<f 3<<endl
wriEeln(f3);
return
end..
0,.
Putere
Si implementdm in limbajul de programare Pascal gi C++ algoritmul
x" (unde n este un numer natural, iar x un numAr real pozitiv).
de calcul
al lui
Limbajul Pascal
Drogram Fibonacci;
var n, i: integer;
x, p: real;
begin
writ.e('n='
wriEe('x='
p:=L;
) ; readln(n)
) ; read.Ln(x)
for i: =1 to n
do
p: =p*x,.
writeln (p: 10 :2 ) ;
end.
Limbajul C++
#.i-nclude <iost,ream.
int
main
h>
()
int n, i;
f loats x,
p=1,.
return
)
0,.
6t
INFORMATICA
fi
de
simbolurile: r, v, x, L, c, D, M.
Valoarea simbolurilor in sistemul de numeratie zecimal este:
Simbol
Valoare
l_0
50
100
s00
1000
l.
Un numdr format din unul sau mai multe simboluri identice are valoarea egal6 cu
suma valorilor simbolurilor componente.
De
exemplu: II=I+I-=L+I=2;XXX=X+X+X=10+10+10=30
IV=V-
1= 5 - L=4;
1000
l- 0 0 = 9 0 0
3.Dacdun simbol cu o valoare mai mic[ succedd un simbol cu o valoare mai mare,
atunci cele doud valori se aduni.
Deexemplu:
VI=V+f=5+1=61 6a=g+11=1-00+10=110;
MLX=M+L+X=10
60
Se.o. servi cd sunt folosite puline simboluri (7) 9i ci regulile de calcul al valorilor
nu sunt nioi multe (3) gi nici cornplicate. Cu toate acestea apare o probleml care face
ca acest sistem de numerafie sd nu fie folosit; problema constd in faptul cd din cele
3 reguli de mai sus NU TezuIILLINICITATEA reprezentdrii unui numdr.
ANEXI,
52
Operalii de conversie
Conversia numerelor din baza L0 tn baza b
Regula de conversie a nunterelor nuturale
deirnpdrlit
cdt
1263 =16*?8
78 =L6*
4 =l-6*
rro
rest
4
0
1tr
f J
+L4
+4
INFORMATICA
63
1.191=4EF 116y.
n=0 , 312
5 11e1
inbaza 2:
0,3125 x2=0,625
0,625 x2=L,25
4,25 x 2 = 0,5
0,5
x 2 = L,0
Am oblinut partea frac{ionarl 0, deci
0 1 121.
1AFa15y
=1.162+A.16+F=431 rrcr
11e1 .
10inb'.
reprezentate
64
informaticienii apeleazl
la
in
valori octale
sau
hexazecimalel.
se
rcalizeazdmult mai simplu conversiile intre dou6 baze oarecare, datoritl faptului cd
atat B, cat gi 1-6 sunt puteri ale bazei 2.
Regula de conversie a numerelor din baza B
(1-
6) tn baza 2
Qt
Pentru a converti un numir binar in baza 8 (16) vom asocia cifrele binare in
grupe de cflte 3, respectiv 4 incepdnd de la dreapta spre s6nga pentru partea
intreagl qi de la stinga spre dreapta pentru partea zecimalI, completdnd, eventual'
ultimele grupe cu zerouri nesemnificative.
Exemple
1. LLo L0L0 1110 1_010 L000 0010, 1l-LL 0000 0001 l-1rzr=6A882,F01C1161
2. L 1'tl 001 010 000 110, 110 101 1-ot=!71206'654$t'
pentru aceste conversii este util tabelul urmltor, care confine reprezentarea
binar6 a valorilor {0, 1, ..., 15}:
Sistem
zecimal
0
1
2
3
Sistem
binar
Sistem
zecimal
t_
10
L1
6
7
Sistem
Sistem
zecimal
Sistem
l-00
101
binar
1000
l_001
L1_0
10
11
101_0
101_L
binar
1L1
Sistem
zecimal
L2
13
L4
L5
Sistem
binar
110 0
1l-01
l-1L0
1111
l.
= an 'fn
* an-t 'fu
+ ... + at
'ft
65
INFORMATICA
fi
...100...
Exercilii
l. S[ se efectueze urmdtoarele
3.
(\"ri"1i
-
Informatic6
66
1.
1-1-
a(x gi x(b
a(x gi xSb sau c(x qi x(d
8. x82=0 qi x>9 9i x<1-00
9. a<b gi b<c
10. an84=0 9i ant100*0 sau anB400=0
6.
7.
11.
12.
x*y*O
13. a, b.
4.2. Reprezentarea
algoritmilor
Structura secvenliald
l.
a=23
4.b
5.
Date de intrare/iegire: xl , x2 , x3
Date de manevrd: aux real;
x4
, x5 reale,.
6.
intiare: a, b, c reale;
ieSire: aria, p, sp reale,.
CiteSte a, b, c,.
p<-a+b+c i sp+-p/2; ariae-' sp* (sp-a) * (sp-b) * (sp-c)
Scrie p, ' ',aria;
Dqte de
Date de
INFORMATICA
7.
Date de
Date de
intrare: D, H reale;
real;
ieSire: v
Citegte D, H;
/* Lransform distanla in metri 9i timpul ln secunde */
DeD*1000; HeH*3600;
v+-D/H;
Scrie v;
v2 real; D real;
d1 real; /*disEanl.a parcursi de primuL*/
t reaf; /* timpul dupi care se intdlnesc */
Cite$te D, v1, v2;
d1<-v1 *D,/ (vl"+v2 ) ; t<-d1 /v1 ;
t;
Scrie "d1= d1, "t=
v1 real-,'
9.
Nr. capete
Moment
Explicafie
Inilial
Ziua 1
Noaptea I
1-1
Ziua2
10
Noaptea 2
1,6
Ziua3
15
in locul
rdmas 10
5*n capete.
intare: n naEural;
nrt-5 *n,'
Scrie "Dupa ", n, " zile bafaurul va avea ", Dr, " capete";
ANEXE
68
Structura alternativd
3.
a, b lntregi ;
I Oa" de iegire: rezultatul testului
I ctte$te d, b;
I oace a-b=1 sau b-a=l- atunci Scrie
altfel Scrie
I
4.
Datedeintrare:
NDA";
'li\tru";
,a, b, c reare;
Citegte a, b, ci
s+--bla,' p+c/a; de-b*b-4*a*c;
Daci d<0 atunci Scrie "Ecuafia nu are rEdicini reale";
a1tfe1
aItfe1
DacE s<0
)
Date de inffare:
Date de manevrd:
x natural;
c1, c2, c3 naturale;
Citegte x;
,/* extrag cefe 3 cifre ale numdrului *,/
c3+-x810 ; c2<-x/LOZ10; c3<-xlL00 i
Daci c1<c2 Scri,e c2, c3;
a].tfeI Daci c2<c3 atsunci Scrie c1, c3;
altfeI Ssrie c2; c3;
6.
c2 , c3 caracter,'
nr /*numdrul de cifre disLincte */
citeste c1, c2, c3;
Dacd. cl=cZ qi c2=c3 atunci nr<-L;
altfel
" Daci c1=c3 sau cL=c2 sau c2=c3 atunci nrl-2;
altfel nrF3;
Scrie nr,'
Date de intrare:
DatedeieSire:
cl ,
69
INFORMATICA
7.
cm+-cm+am+bm;
Daci cm>60 atunci {cm+-cm-60, cgi<*1 ;}
'
,'
'
cg+-cg+ag+bg;
o""a
atunci ca+-cg-360 i
Scrie"gr36i
cg, ' grade ',cfi, ' minute ',.cs,.',
secllnde:i
8.
a, b, c reale;
Datedeiesire:rezu1tat,u1testu1ui+iari,a.',.,.
Datedeintrare:
x, y rea1e,'
Citegte x, yi
Daci x>0 ei y>0 atunci
Scrie (x+y) / (2*x*y) ;
' altfe1
DacE x=0 sau y=Q atunci
Daci x>y atunci Scrie x;
altfel Scrie y;
aItfel
Scrie lt/x+L/yl * (L/x-1-/y+2*x*y+x*x+y*y)
Datedeintrere:
fi vizitate cele
3 orage (ABC,.ACB, BAC). Vom calcula lungimea fiec[rui traseu posibil gi vom
10. Conform restric{iilor problemei exist6 doar 3 variante in care pot
Citegte a, b, ci
Dac5' a+bcc+b gi a+b<a+c atunci Scrie 'ABC";
altfel
Dace b+c<a+b gi b+e<a+c atunci Scrie UACBtr altEel Scrie trBACtr;
70
ANEXE
11.
, b1 , cL , d2 , b2 , c2 reale;
x, y reale,
eitegte a1, b1, cL, d2, b2, c2;
Daci a1=0 atuaci
DacE b1=0 atuaci
Daci c1=0 atuncL
Scrie "x gi y pot avea orice valoare rea15";
aItfel
Scrls "Sistemul nu are solufii " ;
altfel
/* aL=O, bt*O */
Daci a2=0 atunci
Dac5, c1*b2=cZ*bL atunci
Scrie "y=",c!/b1-," x poaEe avea orice valoare rea15";
a].tfel- Scrie "Sistemul nu are solufii";
altfel /* a2*0 * /
Scrie "x=", (c2*b1-c1*b2) / la2*b1 ) , " y=" ,ct/b]-i
altfel /* a1*0 * /
Dacd a1*b2=a2*bL atunci
Daci a1*cZ=c]-* a2 atunci
Scrie "x $i y pot, avea orice valoare reaIi";
aItfel
Scrie rrSistemul nu are solutii";
altfeI
{ye (c2*a1:a2*cll / (b2*aL-a2*bL) ;
x+(c1-b1*yl /aL;
Serig "x=. ", X, "y=t', y; )
Date de intrare: a1
DatedeieSire:
12.
Date de intrare: m1,,
Date de ieSire: mg
m2,
rl3
real;
rn4, m5 reale,.
aItfel
{mge
(m1+m2+m3+m4+m5 ) / 5 ;
Dac5, mg<6
13.
h2, h3 naturale;
citsegte h1, h2, h3;
Daci hL(h2 atsunci
Daci h2(h3 atunci
ScrLe "fonef Gigel Danut."
Datedeinffare:hL,
altfel
*/
atunci
Scrie " Ionel Danut Gj-gie1 "
altfel / r, h3<h]. * /
Scrle "Danut Ionel Gigel"
/*
Dac5. h1<h3
kr3<h2
atunci
7t
INFORMATICA
altfel /* }]2<hl */
Daci h1(h3 atunci
Scrie "Gigrel Ionel Danut";
altfel / *]r2<h1,, h3<h1 * /
Daci h2(h3 atunci
Scrie "Gigrel Danut Ionel"
altfeI /* h3<h2<h:.* /
Scrie "Danut. Gj-gel lonel";
Structura repetitivd
l.
2.
a. 36, 30; b. 169, 26 (sau oricare dou[ numere care au cel mai mare divizor
comun 1-3); c. se calculeazi c.m.m.d.c.(n, m) prin algoritmul lui Euclid,
simulAnd imp6rfirea prin sc6deri repetate.
a.4368; b. Algoritmul extrage succesiv cifrele din numerele a gi b, pAnd cdnd
unul dintre numere se termin6. La fiecare pas compard ultima cifr[ din a cu
ultima cifr[ din b, o alege pe cea mai mare qi o adaugd la sfArgitul numdrului
construit in variabila c, prin urmare o solulie posibil[ ar fi 8291-; c. o solulie
4.
de exemplu
5.
x(-0;
6.4;1. c, d; 8."Itfel
5.
9. Variabila m nu a fost inilializat[ cu 0. Ciclul este infinit deoarece se executd
numai instruc.tiunea mem+l-; (daci am fi dorit sd se execute gi instrucliunea
n+-nlp; ar fi trebuit sI scriem {m+-m+1; nen/p; }, formAnd astfel o
instrucfiune compus6).
10.
Citegte n;
se-L,' /*inifializim
suma divizorilor cu 1, pentru c5 1 este
lnt,otdeauna divizor */
Pentru d+-2, nr2 executS,
Daci ntd=0 atunci /* d est.e divizor al 1ui n *,/
se-s+d;
/* i\ adunim 1a sumd */
Daci s=n atunci Scrie ,,perfect',;
altfel Scrie "Nu est,e perfect,,';
72
AI\{EXE
11.
a, b naturale;
nt, sEr, sb, d naturale;
Date de ieSire:
Date de manevrd:
/* nu
saesa+d,' /* iL
am
adundm
la
sumd
*/
besa;
/* b trebuie si fie egal cu suma divizoril-or 1ui a */
Dac5, b>a atunqi
/* calculez suma divizorilor 1ui b */
tsb<-t;
Pentlrr, de-z, b/2 executi
Daci bBd=0 atunei /*d divizor al Iui b*/
sb+-sb+d; /* iL adundm la sum5 *,/
Daci a=sb atunci
/*am obtinut o pereche de numere prietene*/
{Scrie a, ' ', b; /* o afigez */
nr(-nr+1i)
/* si o numXr *,/
)
t2.
Date de intrare: x natural;
Date de ieSire: mare, mic naturale;
Date de manevrd: d, prim naturale;
Citegte x;
mare +- x-L;
ExecutE
{prim <- 1;
DacE mare>2
atunci
Daci mare*2
DacE
)
eat-tiry) priin=O;
INFORMATICA
mic + x+1,.
Executi
{prim <- 1;
/*Eest,ez dacd mic este prim */
Daci mic>2 atunci
Daci mict2 =0 atuncL prim <_ 0;
altfe1
{d +- 3;
Cat-tiq) d({mic Ai i:rim=L executi
DacE micgd=0 atunci prim=0;
al'tfel d+-d+2;
)
Daci prim*l atunci /*caut mai deparEe */
mic <- mic+1,.
73
cit-timp prim=0;
Scrie mare, , ', mic;
parcursul inversdrii */
Citegte n;
deoarece
n se disrruse pe
sn+-n,. ine-0,.
14.
late.de
,.
mine-a;
max<-a,.
max,.
74
ANEXE
Observa{i
cI, dac[
valoarea
natural; a intreg;
natural;
p inLregi;
CiteSte n; /*citesc numlrul de valori */
s<-0; /*initr.ializez suma cu 0, elementul neutru 1a adunare */
p<-1 ; ,/*ini1.ializez produsul cu 1, .elementul neutru Ia inmul!ire
Date de intrare: n
Date de manevrd: i
Date de ieqire: s,
Scrie srr
rr
s, "
*,/
*,/
p= " , pr'
t6.
n, a naturale;
naturale,'
i, exista, prim, r , sa
Rezultatul Eestului
Citegte n;
/*citesc numirul de valori */
g5sit
nici un palindrom prim */
existae-0; /*inifial nu am
Pentru i<-1,n executi
/*citesc succesiv valori-1e */
iCitegte a;
prim +- 1;
/*testez dacl a este prim */
Daci a>2 atunci
Daci a82 =0 atunci prim <- 0;
aItfe1
{ d +- 3;
Cat-titp d<G $i prim=1 executi
Daci a8d=O atunci prim=0 i
aItfeI d+-d+2;
Date de intrare:
Date de manevrd:
Date de-ieqire.'
IIYFORMATICA
75
altfe]. Scrie
,'DA.;
',NUl,i
17.
Date de intrare:
Date de manevrd:
Date de iegire:
CLtegte n;
oricaree-L;
n, a natural_e;
i, oricare, nr
naturale;
RezultaEul testului
/*citesc num5rul de valorl */
/*inilial
nre-O;
aLtfel Scrj.e
',N(f
";
l8.Voi citi succesiv valorile date gi pentru fiecare valoare cititi voi extrage cifrele
numirend in variabila nrO cdte cifre egale cu 0 am obfinut.
Date de
Date.de
intrare:
a natural;
nr0+-0;
/*inifiaI
Executi
CLtegte a;
/* citesc o valoare */
Daci a*-1 atunci
/*extrag cifrele numdrului a gi Ie num5r pe cele nule */
ExdcutE
{Daci aB10=0 atunci
ctt-tirp
Scrie
a*-:..;
nrO,.
9.vom aplica repetat algoritmul de carcur .pl sumei cifrelor unui numdr:
r.
Date de
intrare: n naEural;
76
ieSire: s natural
Citegte n,.
/*cifra de control*/
Date de
se-n;
suma
cifrelor
1ui n*/
{s+-s+n810; n<-nl10; }
)
/*suma calculat.d devine n*/
Scrie "cifra de control este ,,, s;
20. Nu vom parcurge toate numerele naturale mai mici dec0t n testand la fiecare
n(-s;
pas dace numlrul curent este sau nu petrat perfect, ci vom genera direct p6tratele
Date de intrare:
Date de manevrd:
Citegte n;
n naturale;
i natural;
i<-l_;
,1
lr
,.
l.
rr
:i
il
l
i natural;
Date de ieSire: s natural;
Date de manevrd:
Citegt,e n;
s<-0; /*in s calculez suma primelor i p5t.rate perefecxe */
Pentrrr i+-L, n executi
{se-s+i*i,. Scrie s; }
22-Yom construi toate frac{iile care au numitorul qi numdritorul in mul{imea {1, 2,
;.., n) $i le vom numdra numai pe cele ireductibile.
I
I
I
rl
rl
i:l
II
i
il
i
I
n natural
a, b, sd, sb, r nat.urale,.
nr natural ;
a, b, sd, sb, r naturale,.
Citegte n,.
nr(-1 ;
/* num5rim fracf,.ia t/l */
Pentnu a-1, n-1 executi
Pentru b<-a+i-, n executi
/*verific dacS fracfia a/b este ireductibila */
Date de inlrare:
Date de manevrd:
Date de ieSire:
,.
{sae--a; sbe-b;
i,
I
I
I
I
Scrie nr;
i
I
I
lir,
l,l
J:,
L.i
I
q_
i:t-
INTORMATICA
77
in gir.
Date de intrare:
Date de manevrd:
Date de ieSire:
Citegte n,.
Dac5,
n natural
i, s0, s1, s2 intregi;
s3 intreg ;
,.
altfel
L,.
DaqE n=1
scrie i;::='.'.s1-so;
i natuial;
mg real;
MO
real;
,.
MO(-o,'
MO<_MO+nota,. }
Citegte Teza;
(* (MO*3+Tez a) / 4;
Scrie mg,.
mg
asociativE,adicdcmmdc(dr,...rdn_1 , dr)
= cmmdc(cmmd.c(a1 , ...,
dn-r), a") ). vom utiliza o variabil[ d in care
vom memora ra fiecare pas
c.m.m.d.c. al valorilor citite p6ni la momentul
respectiv. variabila d va fi
initjalizatd. cu prima valoare citit[. La fiecare pas
citimt noua varoare gi calcur6m
dintre valoarea citita qi d prin algoritmul lui Eucrid.
,r.T.*.1..:
Date de intrare: n, a naturale,.
i, r naLura1,.
ieSire: d natural
Citegte n;
Citegte a; ,/*citesc prima
inilializa cmmdc *,/
Datedemanevrd:
Date de
,.
de-a;
T:i:::".1,.,.,u,
78
ANEXE
c caracter;
mesajul 'DA' sau uNU, (dupi cazl;
Est.e Iogric,.
Est,e e- adevSrat;
Executd
{Citegte c,.
Dac5, c*' tatunci
DacA ! (c>,0, gi cS'9,) atunci Este <-fals;
)
cat-tilnp c*' ,;
Daci Este=adevirat atunci Scrie ',DA,,i t
altfel Scrie ,NLru.
Singura rnodificare pe care trebuie sE o facem pentru ca algoritmul sI verifice dacl
secvenla este un numlr intreg se referl la primul caracter din secvenld (care ar
putea fi $i ' + sau ' - '). Pentru ca numtrrul s6 fie real acceptrm gi un singur
caracter punct.
27. Citesc propozifia caracter cu caracter, memor6nd succesiv caracterele citite in
'
aceeagi variabili c.
Date de intrare:
Date de ieSire:
nr<-
c caracter;
nr natural ;
/*numirul de cuvinte*/
0;
Executd
{Executi
Citegte c,.
CAt-tim6l c=' ' ;
Daci c*'.' atunei
{nre-nr+1",-
)
)
Cat-timp c*' -, i
Scrig "rlr= ,' , rlr i
INFORMATICA
79
BIBLIOGRAFIE
1' Andonie, *u?r.?rr., G6rbacea, IIie
2'
5'
Bostan, Gh.
6' cerchez,
probreme distractive
de rogicd. Editura perion, Bucuregti,
- curegere
Em.i.
petrion,
de profileme de informatrcd.
Editura Lumina,
$."ru}, r{.
chipin'u,
--
l0'
80
ANEXE
.......1I
3. REPREZENTAREA ALGORITMILOR.............
......18
3.
l.
3.2. RepnezeNTAREA
3.3. SrnucruRA
3.4.
ALCoRrrMrLon iu pseuoocoi
18
t8
."
sECVENlrruA............... ..
..
t9
.:i
Arlrcel'rr .................
1{
_..:+
.15
.JA
l9
30
3. I
0. Apr-rcal'rr ................
i3
l. PnoeLsME pllopusE
4. EXEMPLE DB IMPLEMENTARE.....
ALCoRTTM uL r-ur Euclro..
3.
59
..60
BIBLIOGRAFIE............
i0
"59
PureRe........
<i
.Jn
61
.66
.66
.66
79