Documente Academic
Documente Profesional
Documente Cultură
C Teorie
C Teorie
1 Algoritmi
1.1 Introducere
n scurta istorie, de aproi!ati" #$ de ani, a ca%cu%atoare%or e%ectronice, o dat&
cu suportu% 'ard(are, au e"o%uat spectacu%os )i %i!*a+e%e de pro,ra!are, nu!&ru%
)i di"ersitatea %or -iind ast&.i -oarte !are/
Reco!and&ri%e cu caracter ,enera%, standardi.&ri%e %i!*a+e%or de pro,ra!are s0
au i!pus a*ia %a !i+%ocu% deceniu%ui opt, adic& dup& aproape 1$ de ani de
eisten2& a ca%cu%atoare%or e%ectronice/ In aceste condi2ii, criterii%e de ca%i-icare a
pro,ra!e%or s0au di"ersi-icat, pe %3n,& cerin2e%e de -unc2ionare corect& )i de
per-or!an2& 4"ite.& de eecu2ie, capacitate5, ap&r3nd ce%e %e,ate de u)urin2a de
uti%i.are, respecti" u)urin2a cu care pro,ra!u% "a putea -i !odi-icat de a%2ii/
Aceste cerin2e de ca%itate au i!pus respectarea unor canoane 4re,u%i5 de
e%a*orare, care -or!ea.& 6n ansa!*%u te'no%o,ia pro,ra!&rii/
Pro,ra!area structurat& 6)i propune s& e%a*ore.e produse so-t(are 6n care s&
se distin,& c%ar structuri%e principa%e a%e pro,ra!u%ui 4si!i%ar structuri%or de
re.isten2& a c%&diri%or5, structuri care "or -i proiectate, pro,ra!ate )i testate 6nainte
de a*ordarea oric&rei pro*%e!e de deta%iu/
7ti%u% acesta de a*ordare a pro*%e!e%or, 6ncep3nd cu ansa!*%u% )i co*or3nd
treptat %a deta%ii 4top0do(n5, caracteri.ea.& -iecare etap& de %ucru pe parcursu%
e%a*or&rii unui pro,ra! structurat/ 8i%%ia!s 7/ sinteti.ea.& 9:; principa%e%e
reco!and&ri de pro,ra!are structura%&/
<o! pre.enta 6n continuare principa%e%e !i+%oace care se "or -o%osi pe parcursu%
e%a*or&rii pro,ra!e%or 6n %i!*a+u% C/
1.2. Algoritmi i organigrame
Pentru a e%a*ora un pro,ra! care s& re.o%"e o pro*%e!& dat&, este necesar&
etra,erea esen2ei pro*%e!ei, 6!p&r2ind so%u2ia 6n pa)i indi"idua%i de e-ectuat/
7ec"en2a pa)i%or a%t-e% o*2inu2i, necesari pentru so%u2ionarea pro*%e!ei, se
nu!e)te a%,orit!/ A%,orit!u% este s3!*ure%e care a dat na)tere %a discip%ina
In-or!atic&/ Cu"3ntu% a%,orit! pro"ine de %a !ate!aticianu% !usu%!an Abu Ja
far Mohammed ibu Musa al-Khowrizm 4=>$?0>#$?5, care 6n %ucrarea @Aita*
'isa* a%0adad a%0'indiBCca%cu%e nu!erice -o%osind o !etod& a%,e*ric&/ Dic2ionaru%
ep%icati" a% %i!*ii ro!3ne d& ur!&toarea de-ini2ie a a%,orit!u%ui B
Ansamblul de simboluri folosite n matematic i logic, permind gsirea n
mod mecanic (prin calcul) a unor reultate !
Ee!p%i-ic&! no2iunea de a%,orit!/
Ee!p%u%/:/ Procedura de rea%i.are )i turnare a unui e%e!ent de *eton/
:/ 7e aduc !ateria%e%e necesare prepar&ri *etonu%ui 4nisip,*a%ast,ci!ent,ap&5/
E/ 7e pune 6n -unc2iune *etoniera/
1/ 7e pun 6n *etonier& pe r3nd, *a%astu%, nisipu%, ci!entu%/
LIMBAJUL C TEORIE I APLICAI I :$
F/ 7e a!estec& co!po.i2ia pentru a o*2ine o!o,eni.area acesteia/
#/ 7e adau,& apa )i se continu& a!estecarea o anu!it& durat& de ti!p/
G/ 7e scoate din *etonier& *etonu% proasp&t )i se transport& %a %ocu% turn&rii//
=/ 7e -ace turnarea *etonu%ui 6n co-ra, pentru rea%i.area e%e!entu%ui dorit/
>/ Dac& cantitatea de *eton preparat )i turnat este !ai !ic& dec3t "o%u!u%
e%e!entu%ui se reia procesu% de %a punctu% :, dac& nu se opre)te procesu% de
preparare0turnare 47TOP5/ Aceast& procedur& cunoscut& de to2i constructorii,
are toate e%e!ente%e unui pro,ra! de ca%cu%ator/ Distin,e!B
o sec"en2& de ini2ia%i.are :,
o ter!inare nor!a%& >/
Ee!p%u% E/ Algoritmul lui Euclid HPentru a o*2ine c/!/!/d/c/ a dou& nu!ere
6ntre,i a )i * , * di-erit de $, 6!p&r2i! pe a %a * , dac& restu% 6!p&r2irii r: este
$, atunci * este c/!/!/d/c/ a ce%or dou& nu!ere, dac& restu% r: este di-erit de $,
se 6!parte * %a r: )i se o*2ine restu% rE, dac& rE este $ se consider& r: c!!dc
a% ce%or dou& nu!ere, dac& rE este di-erit de $ se 6!parte r: %a rE, re.u%t& rest
r1 )/a/!/d/
U%ti!u% rest nenu% este c!!dc a% ce%or dou& nu!ere a, */
Dup& aceste ee!p%e pute! s& de-ini! un a%,orit! I un sistem de reguli prin
care informaia iniial este transformat ntr-o informaie final (rezultat)
folosind un numr finit de calcule sau operaii intermediare (pai).
In-or!a2ia ini2ia%& pentru care un a%,orit! este ap%ica*i% se "a nu!i in-or!a2ia
ad!isi*i%& a a%,orit!u%ui respecti", tota%itatea in-or!a2ii%or ad!isi*i%e -or!3nd
do!eniu% a%,orit!u%ui/
Este a*so%ut necesar ca un a%,orit! s& -ie caracteri.at prin finitudine, claritate,
generalitate )i unicitate/
Finitudinea unui a%,orit! se re-er& %a -aptu% c& pentru trans-or!area date%or
de intrare 6n date%e de ie)ire 4so%u2ie5 se -o%osesc un nu!&r -init de ca%cu%e
4pa)i5/
Unicitatea const& 6n -aptu% c& dup& -iecare pas din procesu% de trans-or!are,
re,u%i%e a%,orit!u%ui deter!in& 6n !od unic pasu% ur!&tor/
Generalitatea a%,orit!u%ui se re-er& %a -aptu% c& pentru orice in-or!a2ie din
do!eniu% a%,orit!u%ui 4pentru orice dat& de intrare "a%id&5 se poate
deter!ina o !&ri!e de ie)ire 4so%u2ie5/ De ee!p%u, 6n ca.u% 6n care dori! s&
scrie! un pro,ra! care re.o%"& ecua2ia de ,radu% IB 1JFI$, nu "o! scrie un
pro,ra! care re.o%"& ecua2ia dat& !ai sus, ci un pro,ra! ,enera% care
re.o%"& orice ecua2ie de ,radu% I/
Prin claritatea a%,orit!u%ui se 6n2e%e,e -or!u%area precis& a re,u%i%or dup&
care au %oc trans-or!&ri%e date%or de intrare p3n& de"in date de ie)ire/
Repre.entarea ,ra-ic& a unui a%,orit! se nu!e)te organigram sau schem
logic/ Or,ani,ra!a este constituit& dintr0o serie de c&su2e denu!ite *%ocuri,
interconectate prin se,!ente direc2ionate, care arat&& c&i%e de deru%are a%e
LIMBAJUL C TEORIE I APLICAI I ::
a%,orit!u%ui/ Or,ani,ra!e%e sunt scrise -o%osind %i!*a+u% natura% )iKsau -o%osind
epresii !ate!atice sau %o,ice/
B%ocuri%e )i si!*o%uri%e care sunt -o%osite 6n sc'e!a %o,ic& suntB
c&su2a dreptun,'iu%ar&, speci-ic& 6ntreprinderea unei ac2iuni 4*%oc de ca%cu%5
c&su2a ro!*oida%&, speci-ic& %uarea unei deci.ii 4*%oc de deci.ie5
c&su2a para%e%o,ra!, speci-ic& citirea sau tip&rirea unor date 4*%oc de
intrareKie)ire5
c&su2a e%iptic&, speci-ic& 6nceputu% sau s-3r)itu% a%,orit!u%ui 4*%oc
de%i!itator5/
c&su2a circu%ar&, speci-ic& continu&rii a%,orit!u%ui ce se des-&)oar& pe !ai
!u%te pa,ini/
s&,e2i%e care unesc aceste *%ocuri/
n para,ra-u% ur!&tor "or -i pre.enta2i principa%ii a%,orit!i 6nt3%ni2i 6n te'nica
curent& de pro,ra!are/
1.2.1. Algoritmi liniari
A%,orit!ii %iniari sau sec"en2ia%i sunt acei a%,orit!i care con2in doar sec"en2e de
citireKscriere )i de ca%cu%/ Or,ani,ra!a unui a%,orit! sec"en2ia% are un parcurs
%iniar de %a de*utu% pro*%e!ei 47TART5 p3n& %a ter!inarea ei 47TOP5/
Eemplul !
7& se descrie a%,orit!u% re.o%"&rii ecua2iei de ,radu% I cu o necunoscut& B
aJ*I$/aL*R a$ )i s& se construiasc& or,ani,ra!a acestuia/
"ezol#are
:/ 7e citesc a )i *,a di-erit de $/
E/ 7e ca%cu%ea.& BI 0*Ka/
1/ 7e tip&re)te L
F/ 7TOP/
Start
a, b
x := -b/a
x
Stop
LIMBAJUL C TEORIE I APLICAI I :E
O*ser"&! c& 6n pasu% E a% a%,orit!u%ui a! -o%osit operatoru% $% , 6n %ocu%
operatoru%ui % /
Operatoru% $% poart& denu!irea de operator de atri*uire )i are
se!ni-ica2ia de atri*uire a "a%orii o*2inute prin e"a%uarea 4ca%cu%area5
epresiei din partea dreapt& a operatoru%ui, "aria*i%ei din st3n,a
operatoru%ui/
Un pro,ra! de ca%cu%ator "a e"a%ua 6ntotdeauna epresia din dreapta
operatoru%ui atri*uire 46n ca.u% nostru 0*Ka5 re.u%tatu% o*2inut -iind atri*uit
"aria*i%ei din st3n,a operatoru%ui4 6n ca.u% nostru 5/
Eemplul &
7& se descrie a%,orit!u% con"ersiei un,'iu%ui a din ,rade sea.eci!a%e 6n radiani
)i s& se rea%i.e.e or,ani,ra!a 4sc'e!a %o,ic& 5 acestuia/
"ezol#are
:/ 7e cite)te a epri!at 6n ,rade sea.eci!a%e/
E/ 7e ca%cu%ea.& noua "a%oare a %ui a epri!at 6n radiani a $% a'()!*+/
1/ 7e tip&re)te aL
F/ 7TOP/
1.2.2. Algoritmi ramificai
A%,orit!ii ra!i-ica2i sunt acei a%,orit!i care con2in pe %3n,& sec"en2e%e de
citireKscriere )i de ca%cu% ,)i sec"en2e de deci.ie/ In ur!a sec"en2ei de deci.ie doar
Start
a
a:= a*/180
a
Stop
LIMBAJUL C TEORIE I APLICAI I :1
o sin,ur& sec"en2& este posi*i%&, din dou& sec"en2e eistente/ Or,ani,ra!a unui
a%,orit! ra!i-icat pre.int& o *i-urcare 4ra!i-icare5 a parcursu%ui 6n ur!a *%ocu%ui
de deci.ie/
Eemplul ,
7& se descrie a%,orit!u% re.o%"&rii ecua2iei de ,radu% I, aJ*I$/aL*R, cu
"eri-icarea coe-icien2i%or introdu)i )i s& se construiasc& or,ani,ra!a acestuia/
"ezol#are
: 7e citesc coe-icien2ii a )i -.
E Dac& a este .ero tip&ri! !esa+ de eroareL 7TOP/
1 7e ca%cu%ea.& $% - -)a.
F 7e tip&re)te .
# 7TOP/
O*ser"&! B
O ie)ire anor!a%& a pro,ra!u%ui E, respecti" o,
O ie)ire nor!a%& 1/
n or,ani,ra!e%e ur!&toare, "o! renun2a %a *%ocu% 7TART pentru econo!ie de
spa2iu/
Eemplul .
7& se construiasc& a%,orit!u% care ca%cu%ea.& !odu%u% unui nu!&r )i s& se
construiasc& or,ani,ra!a acestuia/
"ezol#are
: 7e cite)te nu!&ru% nr.
E Dac& nu!&ru% este !ai !ic dec3t .ero, atunci nr $% -nr.
1 Dac& nu!&ru% este !ai !are sau e,a% cu $, atunci nr $% nr.
a, b
x := -b/a
x
a = 0
Eroare
STOP
DA NU
LIMBAJUL C TEORIE I APLICAI I :F
F 7e tip&re)te nu!&ru% nr.
# 7TOP/
Eemplul /
7& se construiasc& a%,orit!u% care deter!in& "a%oarea !ai!& dintre ce%e trei
"a%ori citite de %a tastatur& )i s& se desene.e sc'e!a %o,ic& a acestui a%,orit!/
"ezol#are !
:/ 7e citesc ce%e trei "aria*i%e a0-0c/
E/ 7e notea.& dI!a 4a,*,c5/
1/ 7e -ac co!para2ii%e B dac& aMI* )i aMIc re.u%t& dI a/
F/ dac& *MIa )i *MIc re.u%t& dI */
#/ dac& cMI* )i cMIa re.u%t& dI c/
G/ se tip&re)te !aId
=/ 7TOP
Aceast& !etod& i!p%ic& e-ectuarea a G co!para2ii/ Ur!&toarea !etod& -o%ose)te
!ai pu2ine co!para2ii/
"ezol#are &
:/ 7e citesc ce%e trei "aria*i%e a0 -0 c.
E/ 7e notea.& dI!a 4a,*,c5/
1/ 7e -ac co!para2ii%e B dac& aMI* )i aMIc re.u%t& dI a/
F/ Dac& aMI* )i aNc re.u%t& dIc/
#/ Dac& aN* )i *MIc re.u%t& dI*/
G/ Dac& aN* )i *NIc re.u%t& dIc/
=/ 7e tip&re)te !aId/
nr
nr := -nr
nr
nr < 0
DA NU
LIMBAJUL C TEORIE I APLICAI I :#
>/ 7TOP/
A%,orit!u% pentru deter!inarea "a%orii !ai!e dintre ce%e trei "a%ori a,*,c
Eemplul 1
7& se rea%i.e.e a%,orit!u% )i sc'e!a %o,ic& pentru ordonarea 6n sens cresc&tor a 1
nu!ere de tip intre,/
Re.o%"are Oie a, *, c ce%e 1 "a%ori 6ntre,i ce tre*uie ordonate, se notea.& cu
a,*,c ce%e 1 "a%ori de tip intre,/ 7e rea%i.& o -unc2ie ordonat care ordonea.& E
"a%ori ,P ast-e%B Dac& MP este necesar ca s& sc'i!*e %ocu% cu P/ Oo%osi! o
"aria*i%& te!porar& t )i e-ectu&! ur!&toare%e opera2ii B tIP, PI,
It, Dac& NP nu este necesar& per!utarea dintre )i P/ Aceast& -unc2ie se ap%ic&
7TART
TIPARETE
ME7AJ
CITETE
a,*,c
a>=b
b>=c
d=a
da
nu
da
d=c
d=c
da
nu
d=b
nu
a>=c
max=d
STOP
LIMBAJUL C TEORIE I APLICAI I :G
de 1 ori "a%ori%or a, *, c ast-e% B Ordonat 4a, *5 aN*/ Ordonat 4*, c5 5 *Nc dar
a?*/ Ordonat 4a, *5 aN*Nc
LIMBAJUL C TEORIE I APLICAI I :=
7TART
CITETE a,*,c
a>b
b>c
da
nu
da
nu
STOP
t=b
b=a
a=t
t=c
c=b
b=c
a>b
t=b
b=a
a=t
da
da
nu
7TART
CITETE
abc
x!1"=a
#!1"=b
$!1"=c
ordonat
x!1"#!1"
ordonat
#!1"$!1"
ordonat
x!1"#!1"
STOP
ti%are&te
abc
O'(O)AT *+
*>+
t=#
#=x
x=t
nu
da
'ET,')
LIMBAJUL C TEORIE I APLICAI I :>
Ordonarea a trei nu!ere 4"arianta :5
Ordonare a trei nu!ere 4"arianta E5
Dup& pri!e%e dou& ape%uri, 6n c a"e! !ai!u% dintre "a%ori%e ini2ia%e, dar despre
ordinea dintre a )i * nu pute! spune cu si,uran2& ni!ic 4e/ Ini2ia% aI#, *IF, cI15,
de aceea este necesar& )i o rearan+are a "a%ori%or a )i */ 4u%ti!u% ape%5/
1.2.3. Algoritmi ciclici
A%,orit!ii cic%ici sunt acei a%,orit!i care con2in *uc%e sau cic%uri 4re%uarea
anu!itor sec"en2e a%e a%,orit!u%ui de un nu!&r -init de ori5, 6n -un2ie de
6ndep%inirea unei condi2ii/ Or,ani,ra!a unui a%,orit! cic%ic con2ine un parcurs
LIMBAJUL C TEORIE I APLICAI I :9
care este re%uat de !ai !u%te ori 6n -unc2ie de o condi2ie i!pus& 6ntr0un *%oc de
deci.ie/
Eemplul 2
7& se descrie a%,orit!u% care ca%cu%ea.& su!a a n nu!ere citite de %a tastatur& )i s&
se construiasc& or,ani,ra!a acestuia/
"ezol#are
:/ 7e cite)te n/
E/ 7e ini2ia%i.ea.& o "aria*i%& contor i cu "a%oarea $/
1/ 7e cite)te un nu!&r de %a tastatur&/
F/ 7e adun& acest nu!&r %a su!& )i se incre!entea.& contoru% 4se !&re)te cu :5/
#/ Dac& "a%oarea contoru% este !ai !ic dec3t nu!&ru% n, se re"ine %a pasu% 1/
G/ 7e tip&re)te su!a/
n acest pro,ra! o*ser"&! c& sec"en2a 1 0 F se repet& de n ori/
n pasu% i BI i J :, se e"a%uea.& epresia din dreapta operatoru%ui 4"a%orii %ui i se
adau,& :5, re.u%tatu% o*2inut -iind atri*ut %ui i/ n ur!a acestei opera2ii i "a -i !ai
!are cu :/
n
s := 0
:= 0
nr
s := s ! nr
:= ! 1
< n
s
LIMBAJUL C TEORIE I APLICAI I E$
n epresia s BI s J nr, se e"a%uea.& epresia din dreapta operatoru%ui atri*uire,
4"a%orii %ui s se adau,& "a%oarea %ui nr5, re.u%tatu% o*2inut -iind atri*uit %ui s/ n
ur!a acestei opera2ii s cre)te cu nr/
Eemplul *
7& se descrie a%,orit!u% care ca%cu%ea.& -actoria%u% unui nu!&r 6ntre, )i s& se
construiasc& sc'e!a %o,ic& a acestuia/
"ezol#are
Oactoria%u% unui nu!&r n este produsu% nu!ere%or de %a : %a nu!&ru% n inc%usi"/
:/ 7e cite)te n/
E/ 7e ini2ia%i.ea.& o "aria*i%& -act cu "a%oarea :/
1/ 7e ini2ia%i.ea.& o "aria*i%& contor i cu "a%oarea :/
F/ 7e 6n!u%2e)te -act cu contoru% i, "a%oarea o*2inut& -iind atri*uit& "aria*i%ei
-act )i se incre!entea.& contoru% cu :/
#/ Dac& contoru% este !ai !ic sau e,a% dec3t nu!&ru% n, se re"ine %a pasu% F/
G/ 7e tip&re)te -act/
n acest pro,ra! o*ser"&! c& sec"en2a F se repet& de n ori/
Dac& o sc'e!& %o,ic& este ,reu de 6n2e%es, pute! parcur,e a%,orit!u% pentru un
anu!it nu!&r de pa)i, pe '3rtie/
7& 6ncerc&! s& parcur,e! a%,orit!u% nostru pentru nI1/
:/ n BI 1L "aria*i%ei n i se atri*uie "a%oarea 1,
E/ -act BI :L "aria*i%ei -act i se atri*uie "a%oarea :,
n
"a#t := 1
:= 1
"a#t := "a#t $
:= ! 1
% n
"a#t
LIMBAJUL C TEORIE I APLICAI I E:
1/ i BI :L "aria*i%ei contor i se atri*uie "a%oarea :,
F/ -act BI : Q : I :L se 6n!u%2e)te -act cu i, "a%oarea o*2inut& -iind atri*uit&
"aria*i%ei -act,
i BI : J : I EL se incre!entea.& contoru% i cu :,
#/ E R 1L da, se re"ine %a pasu% F,
F/ -act BI : Q E I EL
i BI E J : I 1L
#/ 1 R 1L da, se re"ine %a pasu% F,
F/ -act BI E Q 1 I GL
#/ F R 1L nu,
=/ tip&ri! -act, adic& G/
Eemplul 3
7& se deter!ine ce% !ai !are di"i.or co!un a dou& nu!ere intre,i )i po.iti"e,
4a%,orit!u% %ui Euc%id5/
"ezol#are
Pentru a deter!ina c/!/!/d/c/ a dou& nu!ere a )i *, 6ntre,i )i po.iti"e aM*, se "a
ap%ica ur!&toru% procedeuB
7e 6!parte a %a * )i se o*2ine un rest r, dac& rI$ c!!dc a% ce%or dou& nu!ere
este *, dac& nu se "a 6!p&r2ii * %a rest r )i se o*2ine un nou rest r:/
Dac& restu% r: I$ c!!dc este r, dac& nu se "a 6!p&r2ii r %a r: )i se continu& cic%u%
p3n& c3nd restu% de"ine I$/
U%ti!u% rest di-erit de .ero este c/!/!/d/c/ a% ce%or dou& nu!ere a,*/ Pentru a
re%ua procesu% 6!p&r2irii )i deter!inarea restu%ui, se consider& c& ce% !ai indicat
este -o%osirea unui cic%u cu pa)i necunoscu2i, %a care p&r&sirea cic%u%ui se -ace c3nd
restu% 6!p&r2irii de"ine .ero/
Pentru a nu -o%osi o !u%2i!e de "aria*i%e 6n care s& se depo.ite.e "a%ori%e
resturi%or se -o%ose)te o per!utare 6ntre a cu * )i * cu r/
SIaK*
rIa0*QS
Dac& rI$ c/!/!/d/c/ I*/
Dac& rT$ a de"ine * iar r de"ine * )i se reia procesu% /
Dac& aN* nu este necesar& per!utarea %ui a cu *, -iinc& dup& pri!u% cic%u se
rea%i.ea.& aceast& per!utare/
LIMBAJUL C TEORIE I APLICAI I EE
Ce% !ai !are di"i.or co!un a doua nu!ere
7TART
CITETE
a,*
r=-
da
nu
STOP
.=a/b
r=a0b1.
a=b
b=r
cmmd=b
A2ISEA3A
cmmd
LIMBAJUL C TEORIE I APLICAI I E1
2. Mediul de programare turbo c 2.0
Mediu% inte,rat de de."o%tare Tur*o C E/$ 4Inte,rated De"e%op!ent En"iron!ent5
per!ite editarea, depanarea pro,ra!e%or surs& scrise 6n %i!*a+u% C )i con2ine B
Co!pi%ator/
Editor/
Depanator/
Uti%itare/
4ansarea mediului integrat 5ur-o 6&.+
Mediu% inte,rat %ucrea.& su* pro!pteru% 7os )i %ansarea %ui se e-ectuea.& prin
e!iterea co!en.ii B
56 Enter/
Dac& directoru% de %ucru este TC/
Dac& directoru% 6n care se a-%& uti%itaru% TC este di-erit de directoru% TC, este
necesar ca 6n -i)ieru% Autoeec/*at, s& se speci-ice ca%ea spre directoru% ce con2ine
uti%itaru% TC/
Dup& e!iterea co!en.ii este a-i)at ecranu% principa% ,ce con2ine 6n partea
superioar& o %inie de !eniuri deru%ante pe "ertica%&, -ereastra de editare, -ereastra
de !esa+e )i %inia de re-erin2e rapide/
2.1. Mediul de lucru
Pentru a sta*i%i !ediu% de %ucru, tre*uie s& se e-ectue.e %a pri!a %ansare pe
ca%cu%ator con-i,urarea directoare%or/ 7e apas& tasta O:$ pentru a ape%a %inia de
!eniuri )i se tastea.& O, pentru desc'iderea !eniu%ui Options, sau se tastea.&
co!*ina2ia ALT )i O / 7e a%e,e din !eniu% Options, su*!eniu% Directories ce "a
desc'ide o -ereastr& ce con2ine ru*%ici%e B
Inc%ude directories/
Li*rarP directories/
Output directories/
Tur*o C/
La -iecare ru*%ic& sunt a-i)atedirectoare%e con-i,urate %a !o!entu% respecti"/
Pentru a -unc2iona corect, este necesar s& se !odi-ice ru*%ici%e 6n con-or!itate cu
directoare%e eistente pe ca%cu%ator/
7e "a considera c& eist& pe 'ardu% ca%cu%atoru%ui directoare%e B
CBUTC
CBUTCUIVCLUDE
LIMBAJUL C TEORIE I APLICAI I EF
CBUTCULIB
CBUTEMPC
Pentru a indica directoru% ce con2ine -i)iere%e 'eader 4cu etensia '5, se "a a%e,e
op2iunea 8nclude directories )i se apas& Enter/ n -ereastra ce apare se "a tasta
discu%,directoru%, ce con2ine -i)iere%e 'eader, 6n ca.u% de -a2& CBUTCUIVCLUDE
Pentru a indica directoru% ce con2ine -i)iere%e de *i*%iotec&, se "a a%e,e op2iunea
4i-rar9 directories )i se apas& Enter/ n -ereastra ce apare se "a tasta
discu%,directoru%, ce con2ine -i)iere%e 'eader, 6n ca.u% de -a2& CBUTCULIB /
Pentru a indica directoru% ce "a con2ine -i)iere%ede o*+, !ap, ee, se "a a%e,e
op2iunea :utput director9 )i se apas& Enter/ n -ereastra ce apare se "a tasta
discu%,directoru%, ce "a con2ine -i)iere%e de ie)ire, 6n ca.u% de -a2& CBUTEMPC /
Pentru a indica directoru% ce con2ine -i)iere%e necesare %ucru%ui cu !ediu% Tur*o,
%a op2iunea 5ur-o 6 se "a a%e,e CBUTC /
Dup& rea%i.area acestor con-i,ur&ri se "a ap&sa E7C, pentru a re"eni 6n !eniu%
:ptions )i se a%e,e su*!eniu% ;a#e options se apas& Enter, care "a rescrie
-i)ieru% TCCOVOIW/TC , de pe 'ardiscu% ca%cu%atoru%ui, iar %a o nou& %ansare a
!ediu%ui Tur*o C, set&ri%e se p&strea.&, ne-ind necesar o nou& con-i,urare/
O*ser"a2ieB
7e reco!and& s0& -ie rea%i.at directoru% de ie)ire TEMPC, pentru a se ,&i !ai u)or
-i)iere%e EXE, sau pentru a )ter,e -i)iere%e OBJ, MAP, EXE/
&.!.!. <pelarea meniului0 taste uni#ersale
Ape%area unui !eniu de pe *ara de !eniuri, se -ace cu co!*ina2ia de taste
ALTJtasta corespun.&toare pri!u%ui caracter din !eniu% dorit/
Ee!p%uB
ALTJO I!eniu% Oi%e/
ALTJO I!eniu% Options/
ALTJE I!eniu% Edit/
ALTJR I !eniu% Run/
ALTJC I!eniu% Co!pi%e/
Pentru o ape%are !ai rapid& a unui !eniu, sau a unei op2iuni dintr0un !eniu, se
pot -o%osi taste%e uni"ersa%e sau co!*ina2ia de taste/ C3nd se -o%osesc taste%e
uni"ersa%e, opera2ia curent& este 6ntrerupt& )i se eecut& opera2ia ata)at& tastei
ape%ate/ Doar 6n ca.u% c& 6n %ucru este o -ereastr& de dia%o,, se introduce
in-or!a2ia cerut& de -ereastra de dia%o, )i apoi se poate ape%a o tast& uni"ersa%&/
LIMBAJUL C TEORIE I APLICAI I E#
TA7TA Ounc2ia rea%i.at&
O: A-i)ea.& 'e%p pentru opera2ia curent&
OE 7a%"ea.& -i)ieru% curent
O1 ncarc& un -i)ier 6n procesu% de editare
OF Eecut& pro,ra!u% p3n& %a %inia curent& 4%inia pe care este cursoru%5
O# Ooca%i.areaKde-oca%i.area -erestrei curente
OG Bascu%area 6ntre -erestre%e acti"e
O= Ru%ea.& pro,ra!u% 6n !od depanare tras3nd 6n -unc2ii
O> Ru%ea.& pro,ra!u% 6n !od depanare s&rind peste -unc2ii
O9 Co!pi%are )i %e,are
O:$ Bascu%are 6ntre !eniu )i -ereastra acti"&
CTRLKO: A+utor doar 6n editare pentru o*iecte C
CTRLKOE Resetea.& pro,ra!u% HRunKpro,ra! reset
CTRLKO1 A-i)ea.& sti"a cu -unc2ii%e ape%ate
CTRLKOF E"a%uea.& sau !odi-ic& o epresie
CTRLKO= Adau,& o epresie (atc'
CTRLKO> Pune sau )ter,e un punct de 6ntrerupere
CTRLKO9 Eecut& pro,ra!u%
7YIOTKO:$ Indic& nu!&ru% "ersiuni Tur*o
ALTKO: Readuce pe ecran u%ti!u% a+utor
ALTKO1 A%e,e un -i)ier din %ista picZ
ALTKO# Bascu%area 6nte ecranu% uti%i.atoru%ui )i ecranu% Tur*o
ALTKOG Bascu%area 6ntre -ereastra (atc' )i -ereastra de !esa+e
ALTKO= 7a%t %a eroarea precedent&
ALTKO> 7a%t %a ur!&toarea eroare
ALTKO9 Co!pi%are )i rea%i.area -i)ieru%ui OBJ
ALTKB Desc'iderea !eniu%ui BreaZ
ALTKC Desc'iderea !eniu%ui Co!pi%e
ALTKD Desc'iderea !eniu%ui De*u,
ALTKE Intrarea 6n Editor
ALTKO Desc'iderea !eniu%ui Oi%e
ALTKO Desc'iderea !eniu%ui Options
ALTKP Desc'iderea !eniu%ui Pro+ect
ALTKR Desc'iderea !eniu%ui Run
ALTKX Ie)irea din Tur*o )i re"enirea 6n %inia de co!and& DO7
2.1.2.Meniul principal
Meniu% principa% per!ite a%e,erea ur!&toare%or !eniuriB
OILE Westionarea -i)iere%or, directoare%or )i ie)irea din pro,ra!u% Tur*o/
EDIT Per!ite editarea -i)ieru%ui surs&/
LIMBAJUL C TEORIE I APLICAI I EG
RUV Per!ite contro%u% eecu2iei pro,ra!u%ui re.u%tat 6n ur!a co!pi%&rii )i
%inc'edit&rii -i)ieru%ui surs&/
COMPILE Co!pi%ea.& )i crea.&-i)ieru% eecuta*i%/
PROJECT Per!ite contro%u% pro,ra!e%or cu surse !u%tip%e/
OPTIOV7 Per!ite sta*i%irea op2iuni%or de co!pi%are, de-inirea de !acrouri,
!odi-icarea -i)iere%or de con-i,urare/
DEBUW Contro%ea.& sesiunea de depanare a pro,ra!u%ui eecuta*i%/
BREAAK8ATCY Oaci%itea.& depanarea prin %ucru% cu puncte de 6ntrerupere )i
supra"e,'erea epresii%or/
2.1.2.1.4eniul 2I5E
Meniu% Oi%e poate -i ape%at prin ALTKO, sau tast3nd O 6n !eniu% principa%/
Op2iuni%e !eniu%ui B
Load I6ncarc& un -i)ier 6n editor, prin tastarea nu!e%ui -i)ieru%ui, sau se poate %&sa
-or!a ,enera%& '.6, care "a desc'ide o -ereastr&, ce con2ine %ista -i)iere%or cu
etensia C , -o%osind taste%e de na"i,are 4s&,e2i5, se se%ectea.& -i)ieru% dorit )i se
apas& Enter/
PicZ Iper!ite se%ectarea unui -i)ier din %ista u%ti!i%or > -i)iere editate, sau
se%ect3nd u%ti!a op2iune load file0 se poate speci-ica un a%t -i)ier dec3t ce%e
pre.entate/
Ve( IPer!ite crearea de -i)ier nou 6n procesu% de editare, cu nu!e%e ,eneric
VOVAME/C, care %a pri!a sa%"are poate %ua nu!e%e inpus de uti%i.ator/
7a"e I7a%"area -i)ieru%ui 6n procesu% de editare/
8rite To I7a%"area pe disc a -i)ieru%ui curent, su* un nou nu!e i!pus de
uti%i.ator/
DirectorP IA-i)ea.& %ista intr&ri%or 6ntr0un director speci-icat, sau se apas& Enter
pentru directoru% curent, per!i23nd 6nc&rcarea 6n editor a -i)ieru%ui se%ectat/
C'an,e Dir I A-i)ea.& directoru% curent )i per!ite sc'i!*area directoru%ui curent/
Os 7'e%% I Per!ite ie)irea te!porar& din !eniu% Tur*o )i introducerea de co!en.i
pe %inia DO7, iar pentru re"enire din DO7 6n !eniu, se -ace prin tastarea
cu"3ntu%ui Eit/
[uit I Per!ite p&r&sirea !ediu%ui Tur*o )i re"enire su* pro!pteru% DO7/
2.1.2.2. 4eniul Edit
Rea%i.area pro,ra!u%ui surs& se poate -ace cu orice editor A7CII, dar se
reco!and& -o%osirea editoru%ui propriu a% !ediu%ui Tur*o/
Lansarea procesu%ui de editare se -ace prin co!anda E785, din !eniu% EDIT sau
co!*ina2ia de taste <45)E , care are ca e-ect acti"area -erestrei de editare )i
cursoru% de editare se po.i2ionea.& 6n tet/
LIMBAJUL C TEORIE I APLICAI I E=
Introducerea tetu%ui se -ace nor!a% ca )i 6n a%te editoare, trecerea pe r3nd nou se
-ace ap&s3nd tasta E=5E"/
n partea superioar& a -erestrei de editare se a-%& %inia de stare, care o-er&
in-or!a2ii despre -i)ieru% ce se editea.&, starea taste%or specia%e de editare/
In-or!a2ii%e pre.entate pe %inia de stare sunt B
Line, co%, insert, ta*, -i%%, indent, nu!e%e -i)ieru%ui ce se editea.&/
Line I indic& nu!&ru% %iniei din -i)ier pe care este po.i2ionat cursoru% de editare/
Co% I indic& nu!&ru% co%oanei din -i)ier pe care este po.i2ionat cursoru% de
editare/
Insert I indic& !odu% de de editare cu posi*i%itatea de a insera tet %a po.i2ia
cursoru%ui de editare, dac& se apas& tasta Insert, se "a *ascu%a pe !odu% O"er(rite
ce are ca e-ect )ter,erea caracteru%ui de deasupra cursoru%ui de editare )i scrierea
nou%ui caracter editat/
Indent I indic& !odu% de %ucru autoindentare/
Ta* I indic& !odu% de a insera ta*uri 4spa2iu %i*er de > caractere5 6n editare/
Oi%% I dac& !odu% ta*u%are este acti", op2iunea -i%% co!p%ectea.& 6nceputu% %inii%or
cu un nu!&r opti! de ta*uri/
Unindent I per!ite ca tasta BACA7PACE s& e-ectue.e sa%t 6napoi cu un ni"e% de
indentare/
Vu!e -i)ier I indic& discu%, directoru% )i nu!e%e -i)ieru%ui ce se editea.&/
6omenzile de editare
6omenzi pentru deplasarea cursorului de editare
Dep%asarea cursoru%ui 6n cadru% -i)ieru%ui a-%at 6n procesu% de editare se rea%i.ea.&
-o%osind taste%e de na"i,are rapid& sau co!*ina2ii de taste ast-e% B
65"4); sau s&,eat& %a st3n,a I dep%asarea cursoru%ui spre st3n,a cu o po.i2ie/
65"4)7 sau s&,eat& %a dreapta I dep%asarea %a dreapta cu o po.i2ie a cursoru%ui/
65"4)< sau 65"4)sgeat st>nga I dep%asea.& cursoru% %a pri!u% caracter din
cu"3ntu% precedent/
65"4)F sau 65"4)sgeat dreapta I dep%asea.& cursoru% %a pri!u% caracter din
cu"3ntu% ur!&tor/
65"4)E sau sgeat n sus I dep%asea.& cursoru% de editare cu un r3nd 4%inie5 6n
sus/
65"4)? sau sgeat n @os I dep%asea.& cursoru% de editare cu un r3nd 4%inie5 6n
+os/
65"4)" sau AGUA I dep%asea.& cursoru% )i tetu% 6n sus cu un ecran de editare/
65"4)6 sau AG7= I dep%asea.& cursoru% )i tetu% 6n +os cu un ecran de editare/
65"4)B I dep%asea.& tetu% cu o %inie 6n +os dar cursoru% r&!3ne pe po.i2ia
curent&/
LIMBAJUL C TEORIE I APLICAI I E>
65"4)C I dep%asea.& tetu% cu o %inie 6n sus dar cursoru% r&!3ne pe po.i2ia
curent&/
65"4); sau D:EE I dep%asea.& cursoru% pe pri!a co%oan& 4%a inceputu% %iniei5
a %iniei curente/
65"4)F7 sau E=7 I dep%asea.& cursoru% pe u%ti!a co%oan& 4%a s-3r)itu% %iniei5 a
%iniei curente/
65"4)FE I dep%asea.& cursoru% pe pri!a %inie din ecranu% de editare/
65"4)F? I dep%asea.& cursoru% pe u%ti!a %inie din ecranu% de editare/
65"4)AGUA I dep%asea.& cursoru% %a pri!u% caracter din -i)ier/
65"4)AG7= I dep%asea.& cursoru% %a u%ti!u% caracter din -i)ier/
6omenzi de tergere sau inserare.
8=; I acti"ea.& sau de.acti"ea.& !odu% de inserare/
G<6H;A<6E I )ter,e caracteru% din st3n,a cursoru%ui de editare/
7E4 I )ter,e caracteru% din dreptu% cursoru%ui de editare/
65"4)5 I )ter,e cu"3ntu% din dreapta cursoru%ui de editare/
65"4)= I inserea.& o %inie 4r3nd5 ,oa%& 6n po.i2ia cursoru%ui de editare/
65"4)I I )ter,e %inia pe care este situat cursoru% de editare/
65"4)FI I )ter,e tetu% de %a po.i2ia curent& a cursoru%ui p3n& %a s-3r)itu% %iniei/
6omenzi di#erse.
5a- I inserea.& un spa2iu %i*er de > caractere sau cu o "a%oare i!pus& prin
op2iunea 5a- size din !eniu% :ptions)en#ironment/
65"4): )i F I acti"ea.& sau de.acti"ea.& !odu% de editare opti!& ast-e%B
Dac& !odu% de editare opti!& este acti" %a inceputu% -iec&rei %inii se co!p%ectea.&
cu un nu!&r opti! de spa2ii sau ta*uri/
65"4): )i 8 I acti"ea.& sau de.acti"ea.& !odu% de editare autoindentare ast-e% B
Modu% de autoindentare acti"at "a dep%asa cursoru% de editare dup& ap&sarea tastei
EVTER su* co%oana de 6nceput a %iniei %iniei anterioare/
65"4)H )i ; I sa%"ea.& -i)ieru% -&r& a p&r&si editoru%/
65"4)H )i A tip&re)te %a i!pri!ant& *%ocu% !arcat iar 6n %ipsa acestuia tip&re)te
tot -i)ieru%/
F, I 6ncarc& 6n editor un -i)ier eistent 6n procesu% de editare, sau crea.& un -i)ier
nou/
6omenzi de realizare0mutare0copiere0tergere a -locurilor.
Glocul repre.int& o por2iune de tet de%i!itat& de !arZeri/
n cadru% unui -i)ier poate eista un sin,ur *%oc asupra c&ruia se pot e-ectua
ur!&toare%e opera2ii B
LIMBAJUL C TEORIE I APLICAI I E9
Earcarea nceputului unui -loc %a po.i2ia curent& a cursoru%ui de editare prin
co!*ina2ia de taste 65"4)H )i apoi G/
Earcarea sf>ritului de -loc prin dep%asarea cursoru%ui de editare %a po.i2ia
dorit& )i rea%i.area co!*ina2iei de taste 65"4)H )i apoi H0 ce are ca e-ect
punerea 6n e"iden2& a *%ocu%ui, prin sc'i!*area cu%orii de -ond a .onei ocupat& de
*%oc/
6opierea unui -loc %a po.i2ia curent& a cursoru%ui B se dep%asea.& cursoru% de
editare %a po.i2ia dorit& )i se rea%i.ea.& co!*ina2ia de taste 65"4)H )i apoi 60 ce
are ca e-ect, copierea *%ocu%ui 6n prea%a*i% rea%i.at )i de%i!itarea acestei copii cu
!arZeri/
Jtergerea -locului se rea%i.ea.& prin co!*ina2ia de taste 65"4)H )i I0 ce are ca
e-ect )ter,erea *%ocu%ui !arcat/
<cti#area sau dezacti#area afiri -locului marcat se rea%i.ea.& prin
co!*ina2ia de taste 65"4)H )i D , dac& un *%oc este !arcat 4a-i)at cu un -ond
di-erit de restu% docu!entu%ui5, asupra %ui se pot e-ectua opera2ii%e de copiere,
!utare, ster,ere/
Eutarea unui -loc se rea%i.ea.& cu co!*ina2ia de taste 65"4)H )i K , ce are ca
e-ect !utarea *%ocu%ui !arcat %a po.i2ia curent& a cursoru%ui de editare/
8nserarea unui fiier dac& 6n cadru% -i)ieru%ui ce se editea.&, se dore)te inserarea
con2inutu%ui unui -i)ier eistent pe 'ard disc, se rea%i.ea.& co!*ina2ia de taste
65"4)H )i "0 care "a desc'ide o -ereastr& de dia%o,, 6n care se "a scrie ca%ea )i
nu!e%e -i)ieru%ui ce se inserea.&, tetu% inportat "a -i !arcat ca *%oc/
;crierea unui -loc intr-un fiier de pe 'ard disc se rea%i.ea.& prin co!*ina2ia de
taste 65"4)H )i B0 care "a desc'ide o -ereastr& de dia%o,, 6n care se "a speci-ica
ca%ea )i nu!e%e -i)ieru%ui 6n care se "a scrie *%ocu% !arcat/
Eeniul 6ompile.
Meniu% compile per!ite co!pi%area -i)ieru%ui surs& )i crearea pro,ra!u%ui
eecuta*i%/ 7e%ectarea !eniu%ui 6ompile se -ace prin co!*ina2ia de taste <45)6
sau tast3nd 6, c3nd !eniu% principa% este acti"/
Op2iuni%e !eniu%ui Co!pi%e sunt B
6ompile to o-@ I co!pi%ea.& -i)ieru% surs& scris 6n C )i crea.& un -i)ier o*iect cu
ace%a) nu!e ca )i -i)ieru% surs&, dar etensia este o*+/ A%e,erea acestei op2iuni se
poate -ace )i -o%osind co!*ina2ia de taste <45)F3/
EaLe ee file I crea.& -i)ieru% eecuta*i% prin opera2ii%e de co!pi%are )i
%inc'editare 4%e,are5, iar nu!e%e -i)ieru%ui eecuta*i% este indentic cu -i)ieru% surs&
dar "a a"ea etensia ee/
4inL ee file I rea%i.ea.& edi2ia de %e,&turi )i -i)ieru% eecuta*i%/
Guild all I crea.& -i)ieru% eecuta*i% co!pi%3nd )i %inc'edit3nd toate -i)iere%e
proiectu%ui/
Arimar9 6 file I 6ncarc& 6n editor -i)ieru% surs& sau 'eaderu% 6n care s0au detectat
erori %a co!pi%are/
LIMBAJUL C TEORIE I APLICAI I 1$
Get info I a-i)ea.& in-or!a2ii%e despre u%ti!a co!pi%are/
2.1.2.6. 4eniul 'un
Meniu% "un per!ite depanarea pro,ra!u%ui surs&, dup& ce au -ost e%i!inate
erori%e de co!pi%are )i %inc'editare/
Meniu% "un se ape%ea.& co!*ina2ia de taste <45)" sau tasta " c3nd !eniu%
principa% este acti"/
Op2iuni%e !eniu%ui Run sunt B
"un % 65"4)F3 eecut& pro,ra!u% eecuta*i% cu etensia ee, re.u%tat 6n ur!a
co!pi%&ri )i %inc'edit&ri, dac& sursa a -ost !odi-icat& de %a u%ti!a co!pi%are, "a
re-ace opera2ii%e de co!pi%are %inc'editare si apoi ru%ea.& -i)ieru% eecuta*i%/
Arogram reset % 65"4)F& 6nc'ide sesiunea curent& de depanare/
Go to cursor % F. eecu2ia pro,ra!u%ui se -ace p3n& %a po.i2ia curent& a
cursoru%ui de editare/
5race info % F2 eecu2ia pro,ra!u%ui se -ace instruc2iune cu instruc2iune,
inc%usi" 6n interioru% -unc2ii%or ape%ate, -&r& 6ns& a intra 6n -unc2ii%e de *i*%iotec&/
;tep o#er % F* eecut& pro,ra!u% instruc2iune cu instruc2iune , s&rind peste
ape%uri%e de -unc2ii, -&r& a se intra 6n interioru% -unc2iei ape%ate/
User scrin <45)F/ a-i)ea.& ecranu% uti%i.atoru%ui, re"enirea 6n procesu% de
editare se -ace ap&s3nd orice tast&/
2.1.2.7. 4eniul (ebug.
Meniu% 7e-ug se ape%ea.& -o%osind co!*ina2ia de taste <45)7 sau tast3nd 7 6n
!eniu% principa% acti"at/
Op2iuni%e !eniu%ui De*u, sunt B
E#aluate I per!ite e"a%uarea )i !odi-icarea "a%orii unei epresii, pentru
introducere de nu!e, iar e"a%uarea sau !odi-icarea desc'ide c3te o -ereastr&/
Oerestre%e -o%osite sunt B
E"a%uate
Resu%t/
Ve( "a%ue/
Find function I per!ite a-i)area 6n -ereastra de editare a de-ini2iei unei -unc2ii,
aceast& op2iune se poate uti%i.a nu!ai 6ntr0o sesiune De*u,/
6all stacL% per!ite desc'iderea unui !eniu intr0o -ereastr&, 6n care se poate
se%ecta -unc2ia, din %ista de -unc2ii ape%ate p3n& %a punctu% curent de eecu2ie a
pro,ra!u%ui )i per!ite "i.ua%i.area %iniei eecutate curent& dintr0o anu!it&
-unc2ie/
;ource de-ugging I per!ite introducerea a trei "a%ori, care "or deter!ina !odu%
de depanare introdus 6n -i)ieru% eecuta*i%/
LIMBAJUL C TEORIE I APLICAI I 1:
:n depanarea se -ace cu depanatoru% din Tur*o De*u,,er sau depanatoru%
inte,rat, )i aceast& "a%oare este i!p%icit&/
;tandalone depanarea se -ace doar cu Tur*o De*u,,er/
=one pro,ra!u% nu poate -i depanat 6n nici un !od/
7ispla9 sMapping I per!ite trei "a%ori care deter!in& ca.uri%e pentru care Tur*o
C rea%i.ea.& auto!at *ascu%area 6ntre ecranu% uti%i.atoru%ui )i ecranu% de editare 6n
cadru% unei sesiuni de depanare/
;mart trecerea se -ace %a -iecare scriere pe ecran a pro,ra!u%ui/
<lMa9s trecerea se -ace %a eecu2ia -iec&rei instruc2iuni/
=one trecerea dintr0un ecran in a%tu% nu se -ace 6n nici o situa2ie/
"efresh displa9 I re-ace con2inutu% ecranu%ui editoru%ui, dac& acesta a -ost distrus
accidenta%/
2.1.2.8. 4eniul 9rea:/;atc<.
Ape%area !eniu%ui GreaL)Match se -ace prin co!*ina2ia de taste <45)G0 sau
tast3nd G 6n cadru% !eniu%ui principa% acti"at/
Prin !eniu% BreaZK(atc' se poate e-ectua depanarea pro,ra!u%ui prin inter!ediu%
puncte%or de 6ntrerupere )i ur!&rirea epresii%or/
Op2iuni%e !eniu%ui GreaL)Match sunt B
<dd Match I per!ite introducerea unei epresii de supra"e,'ere 6n -ereastra de
ur!&rire/
7elete Match I )ter,e epresia curent& din -ereastra de ur!&rire/
Edit Match I per!ite intr0o -ereastr& separat& editarea epresiei curente din
-ereastra de ur!&rire/
"emo#e all Matches I )ter,e -ereasta de ur!&rire/
5oggle -reaLpoint I sta*i%e)te sau anu%ea.& un punct de 6ntrerupere 6n %inia 6n
care este po.i2ionat cursoru%/
6lear all -reaLpoint I )ter,e toate puncte%e de 6ntrerupere din cadru%
pro,ra!u%ui/
KieM neM -reaLpoint I dep%asea.& cursoru% %a ur!&toru% punct de intrerupere/
Ordinea de parcur,ere a puncte%or, este deter!inat& de ordinea 6n care au -ost
sta*i%ite )i nu de ordinea -i.ic& 6n -i)ier/
2.1.2.=. 4eniul o%tion&
Meniu% :ptions poate -i ape%at prin co!*ina2ia de taste <45): sau tast3nd : 6n
!eniu% principa% acti"at/
Prin inter!ediu% acestui !eniu se ape%ea.& su*!eniuri, prin care se sta*i%esc
op2iuni%e ,enera%e a%e !odu%ui de %ucru a%e co!pi%atoru%ui, !odu%ui de %ucru a%
LIMBAJUL C TEORIE I APLICAI I 1E
editoru%ui de %e,&turi, !odu% de %ucru a% depanatoru%ui, contro%ea.& %oca2ii%e
-i)iere%or, ar,u!ente%e pro,ra!u%ui/
7u*!eniuri%e !eniu%ui Options sunt B
6ompiler. 4inLer. En#ironment.
7irectories. <rguments. ;a#e options. "etrie#e options.
6:EA84E.
7u*!eniu% 6ompile per!ite sta*i%irea op2iuni%or co!pi%atoru%ui prin indicarea
!ode%u%ui de !e!orie,editarea !acrode-ini2ii%or,op2iuni pentru crearea -i)ieru%ui
o*iect, speci-icarea procesoru%ui pentru care se ,enerea.& codu%, a !ode%u%ui 6n
"ir,u%& -%otant&, !odu%ui de a%iniere, etc/
:piunea Eodel/
Per!ite sta*i%irea !ode%u%ui de !e!orie B
58=I/ I GF Ao pentru cod,date )i ta*e%e/
7MALL/ I GFAo pentru cod J GF Ao pentru date/
EE78UE/ I GFAo pentru date statice )i : Mo pentru cod/
6:EA<65/ I G# Ao pentru cod )i : Mo pentru date/
4<"GE. I :Mo pentru date )i : Mo pentru cod/
DUGE. I : Mo pentru date, :Mo pentru cod )i GF Ao pentru date statice/
:piunea 7efines/
Per!ite introducerea de !acrode-ini2ii pentru preprocesor/
MAXI#$L
7i!*o%u% MAX a -ost de-init cu "a%oarea #$/
:piunea 8nstruction set/
Per!ite speci-icarea procesoru%ui pentru care se "a ,enera codu%/
:piunea Floating point/
Per!ite sta*i%irea !odu%ui de %ucru 6n "ir,u%& -%otant&/
Uti%i.are coprocesor !ate!atic >$>=, >$E>=
E!u%are coprocesor !ate!atic
Vone H nu se -o%ose)te "ir,u%& -%otant&/
LIMBAJUL C TEORIE I APLICAI I 11
3. Structura unui program surs n limbajul .
Ce% !ai scurt pro,ra! surs& C este de -or!aB
&o' (an )*
+
,
Acest pro,ra! nu -ace ni!ic, dar este pro,ra!u% !ini!a% pe care co!pi%atoru% C
6% poate co!pi%a/
&o' (an )* este o -unc2ie/ Ounc2ia "oid !ain 45 nu poate %ipsi din nici un
pro,ra! C, -iind -unc2ia de intrare 6n pro,ra!/ Dup& nu!e%e -unc2iei, )i ce%e dou&
parante.e ur!ea.& o parante.& aco%ad& desc'is&, respecti" o parante.& aco%ad&
6nc'is&/ Ce%e dou& parante.e de-inesc corpu% -unc2iei/
Un pro,ra! C care "a a-i)a un !esa+ esteB
-n#./'e <st'o012
&o' (an )*
+
prnt")3A#est pro4ra( a"sea5a /n (esa63*7
prnt")38nA#esta este (esa6/.3*7
,
n acest pro,ra!, 6n corpu% -unc2iei "oid !ain 45 a"e! dou& r3nduri 6n p%us/ Un
r3nd care este ter!inat prinL 4punct )i "ir,u%&5 se nu!e)te o instruciune/ n ca.u%
nostru -unc2ia "oid !ain 45, con2ine dou& instruc2iuni/ Ounc2ia "oid !ain 45 poate
con2ine oric3te instruc2iuni dori!, -iecare instruc2iune tre*uind separat& prinL/
<o! anticipa )i "o! de."&%ui -aptu% c& print-45 4cu"3ntu% c'eie care apare 6n ce%e
dou& instruc2iuni5 este tot o -unc2ie, dar o -unc2ie de *i*%iotec&, adic& inc%us& 6n
%i!*a+/ Ounc2ia print-45 este -o%osit& pentru a-i)area !esa+e%or pe ecran/ Ounc2ia
print-45 este ec'i"a%ent& cu instruc2iunea (rite din Pasca%/
Oa2& de ce%e%a%te %i!*a+e de pro,ra!are, %i!*a+u% C nu are un set de instruc2iuni de
*a.&/ Ast-e%, pentru a -o%osi -unc2ia print-45, "a tre*ui s& indic&! nu!e%e -i)ieru%ui
*i*%iotec& 6n care aceast& -unc2ie este dec%arat&/ Ounc2ia print-45 este dec%arat& 6n
-i)ieru% stdio/', etensia ' pro"ine de %a nu!e%e 'eader, )i este un -i)ier de
*i*%iotec& care con2ine o !u%2i!e de -unc2ii de intrareKie)ire 4standard
inputKoutput5/
Pentru a inc%ude acest -i)ier 'eader 6n pro,ra!u% nostru, "o! ad&u,a un cu"3nt
c'eie %a 6nceputu% -i)ieru%ui, su* -or!aB
-n#./'e <st'o012
Cu"inte%e c'eie care 6ncep cu si!*o%u% \ 4die.5, se nu!esc directi"e procesor, sau
directi"e preprocesor/ In ca.u% nostru a! -o%osit directi"a inc%ude care inc%ude
-i)ieru% stdio/' 6n pro,ra!u% nostru/
7e re!arc& -aptu% c& %i!*a+u% C este un %i!*a+ *a.at pe -unc2ii/ Pe %3n,& -unc2ii%e
de *i*%iotec& )i -unc2ia "oid !ain 45, pute! de-ini )i -unc2ii proprii care ne a+ut& %a
se,!entarea pro,ra!u%ui/ De-inirea -unc2ii%or "a -i descris& !ai pe %ar, 6n
capito%u% Ounc2ii/
LIMBAJUL C TEORIE I APLICAI I 1F
7& "ede! un pro,ra! C !ai co!p%e )i s& 6ncerc&! s& pune! 6n e"iden2&
di-erite%e p&r2i a%e unui pro,ra! C/
-n#./'e <st'o012
-'e"ne P9 :01;1<
&o' tt./)*7
&o' (an )*
+
nt ra5a=<7
".oat ara7
ara=P9*ra5a*ra5a7
tt./)*7
prnt")3Ara #er#/./ 'e ra5a =' este ="3, ra5a, ara*7
,
&o' tt./)*
+
/* >/n#te #are a"sea5a /n (esa6*/
prnt")3Pro4ra( pentr/ #a.#/./. are /n/ #er#3*7
,
Pro,ra!u% nostru C con2ine %a 6nceput .ona directi"e%or preprocesor/ Directi"a
\inc%ude a! "&.ut0o !ai sus/ Directi"a \de-ine per!ite de-inirea unor constante/
In ca.u% nostru a! de-init constanta PI/
Pro,ra!u% con2ine dou& -unc2iiB -unc2ia "oid !ain 45 )i -unc2ia tit%u45/ Toate
-unc2ii%e de-inite de uti%i.ator, 6n ca.u% nostru -unc2ia tit%u45, tre*uiesc dec%arate %a
6nceputu% -i)ieru%ui, dup& .ona directi"e%or preprocesor/
Ounc2ia tit%u45 care este de-init& dup& -unc2ia "oid !ain 45 con2ine o sin,ur&
instruc2iune/ Inainte de instruc2iunea print-45, 6n corpu% -unc2iei tit%u45, a"e! un
tet cuprins 6ntre si!*o%uri%e KQ )i QK/ Acest tet se nu!e)te comentariu )i este
-o%osit pentru a -urni.a %&!uriri pri"ind p&r2i a%e pro,ra!u%ui, pentru pro,ra!ator/
Tete%e cuprinse 6ntre KQ )i QK sunt i,norate de c&tre co!pi%ator/
La 6nceputu% -unc2iei "oid !ain 45 este .ona de dec%arare a "aria*i%e%or/ In
pro,ra!u% nostru a"e! o "aria*i%& 6ntrea,& nu!it& ra.a, ini2ia%i.at& %a "a%oarea #,
)i o "aria*i%& rea%& nu!it& aria/
n continuare, -unc2ia "oid !ain 45 con2ine trei instruc2iuniB o instruc2iune de
ca%cu%, o instruc2iune de ape% a -unc2iei tit%u45 )i o instruc2iune de tip&rire -o%osind
-unc2ia print-45/
Aten2ie, %i!*a+u% C -ace distinc2ie intre %itere%e !ari )i !ici/
3.1. rearea unui program
Pentru a crea un pro,ra! 4un eecuta*i%5, -o%osind %i!*a+u% C, tre*uiesc parcurse
trei etapeB
:/ Crearea -i)ieru%ui surs& C
LIMBAJUL C TEORIE I APLICAI I 1#
E/ Co!pi%area pro,ra!u%ui
1/ LinZeditarea pro,ra!u%ui
Crearea -i)ieru%ui surs& C poate -i -&cut& 6n editoru% pro,ra!u%ui Tur*o C/
Pentru a crea un -i)ier surs&, se %ansea.& pro,ra!u% Tur*o C )i se desc'ide
!eniu% OILE cu co!*ina2ia ALTKO, apoi cu s&,eat& 6n +os se se%ectea.& op2iunea
VE8 care are ca e-ect desc'iderea auto!at& a -erestrei de editare/
7e editea.& %inie cu %unie -i)ieru%/ Tre*uiesc respectate re,u%i%e de sinta&, dup&
cu! au -ost pre.entate !ai sus/
Tetu% pro,ra!u%ui surs& poate -i sa%"at 6ntr0un -i)ier pe disc, se%ect3nd co!anda
7a"e din !eniu% Oi%e 4A%tJO5/ In -ereastra de dia%o, desc'is& %a pri!a sa%"are "a
apare nu!e%e ,eneric VOVAME/C, se tastea.& nu!e%e -i)ieru%ui 4respect3nd
con"en2ia DO75 )i se apas& tasta NEnterM/La o nou& sa%"are a -i)ieru%ui nu !ai
este necesar indicarea nu!e%ui -i)ieru%ui, consider3ndu0se "ec'iu% nu!e/
Dac& se dore)te op2inerea !ai !u%tor -i)iere surs& cu con2inut pu2in di-erit , se
reco!and& -o%osirea op2iunii 8rite to care desc'ide o nou& -ereastr& de dia%o, , 6n
care se "a speci-ica nu!e%e ce se d& -i)ieru%ui dup%icat, care ur!ea.& a -i
!odi-icat/
6ompilarea pro,ra!u%ui surs& se poate -ace se%ect3nd co!anda Co!pi%e to OBJ
din !eniu% Co!pi%e 4A%tJC5/ Co!pi%area crea.& un -i)ier o*iect 4o*+ect -i%e5/
Oi)ieru% o*iect este un -i)ier *inar cu etensia o*+, care con2ine trans-or!area
instruc2iuni%or cuprinse 6n -i)ieru% surs& C 6n instruc2ini care pot -i eecutate de
procesor 4cod !a)in&5/ Oi)ieru% o*+ nu poate -i ru%at direct de c&tre siste!u% de
operare/ E% este un -i)ier inter!ediar/n ur!a procesu%ui de co!pi%are , dac& sunt
erori de sinta& sau de ape%are a -unc2ii%or, acestea "or -i a-i)ate intr0o -ereastr& de
!esa+e, cu speci-icarea erorii )i po.i2ia 6n pro,ra! a erorii/
7e "or ana%i.a erori%e )i cau.e%e ce au produs aceste erori , iar dac& aceste erori
sunt ,reu de e%i!inat se "a ana%i.a cu aten2ie !eniuri%e %ui Tur*o C, respecti"
c&i%e de c&utare pentru -i)iere%e necesare %ucru%ui/
7e "or e%i!ina toate erori%e )i a*ia apoi se poate trece %a pasu% ur!&tor/
4inLeditarea -i)ieru%ui o*iect se poate -ace se%ect3nd co!anda LinZ to EXE din
!eniu% Co!pi%e 4A%tJC5/ LinZeditarea "a ad&u,a -i)ieru%ui o*iect, cod !a)in&
care per!ite accesu% %a dispo.iti"e%e de intrareKie)ire pentru un anu!it siste! de
operare/ In ur!a %inZedit&rii re.u%t& -i)ieru% eecuta*i%, cu etensia ee/ Acest
-i)ier, care se nu!e)te )i -i)ier pro,ra!, sau pro,ra! pe scurt, poate -i ru%at
4eecutat5 de c&tre siste!u% de operare/
6ompilarea)4inLeditarea poate -i -&cut& )i 6ntr0un sin,ur pas dac& se se%ectea.&
co!anda Run din !eniu% Run 4A%tJR5/ Aceast& co!and& co!pi%ea.&,
%inZeditea.& )i %ansea.& 6n eecu2ie pro,ra!u% nostru/
LIMBAJUL C TEORIE I APLICAI I 1G
3.2. !ipuri de date.
Un tip de dat& repre.int& o !u%2i!e de "a%ori pe care %e poate %ua o dat&/ In C
eist& tipuri de date standard )i tipuri de date de-inite de uti%i.ator/ Tipuri%e de
date standard 6n C "or -i pre.entate !ai +os/
6.2.1. Ti%ul >ntreg
Per!ite repre.entarea nu!ere%or 6ntre,i/ Tipuri !ai u.ua%e suntB
Vu!e%e
tipu%ui
Do!eniu% de "a%ori Lun,i
!ea
6n
octe2i
Repre.entare
unsi,ned
c'ar
$ ] E## : 6ntre, -&r& se!n
unsi,ned
int
$ ] G##1# E 6ntre, -&r& se!n
int 01E=G> ] 1E=G= E 6ntre, cu se!n
%on, 0E/:F=/F>1/GF> ]
E/:F=/F>1/GF=
F 6ntre, cu se!n
Dac& se dep&)e)te do!eniu% de "a%ori a% unui tip de dat&, -ie "a -i se!na%at& o
eroare %a eecu2ie, -ie re.u%tatu% a-i)at "a -i eronat/
6.2.2. Ti%ul real
Per!ite repre.entarea nu!ere%or rea%e/ Aten2ie, repre.entarea nu!ere%or rea%e 6n
orice siste! de ca%cu% este aproi!ati"&, pentru c& nu!&ru% de .eci!a%e care poate
-i re2inut este %i!itat de tipu% de dat&/
Vu!e%e tipu%ui Do!eniu% de "a%ori Lun,i!ea
6n octe2i
Repre.entare
-%oat 1/FE01> ] 1/FEJ1> F "ir,u%& !o*i%&
dou*%e :/=E01$> ] :/=EJ1$> > "ir,u%& !o*i%&
%on, dou*%e 1/FE0F91E ] :/:EJF91E :G "ir,u%& !o*i%&
6.2.6. Ti%ul caracter
Este -or!at din caractere%e codu%ui A7CII/ Codu% A7CII per!ite repre.entarea a
E#G de caractere/ Tipu% caracter este re2inut pe un octet/
Vu!e%e tipu%ui Do!eniu% de "a%ori Lun,i!ea
6n octe2i
Repre.entare
unsi,ned c'ar $ ] E## : 6ntre, -&r& se!n
c'ar 0:E> ] :E= : 6ntre, cu se!n
LIMBAJUL C TEORIE I APLICAI I 1=
3.3. onstante "i #ariabile
3.3.1. onstante
In C constante%e tre*uiesc precedate de cu"3ntu% c'eie const/ Dec%ararea unei
constante se -aceB
#onst ?tp/. 'e 'ata@ n/(e.eA#onstante = &a.oarea7
O constant& nu poate -i ini2ia%i.at& dec3t odat& cu dec%ararea ei/ Dac& tipu% de dat&
nu este preci.at, constanta este i!p%icit de tip 6ntre,/ Constante%e tre*uiesc
dec%arate %a 6nceputu% -unc2iei, sau %a inceputu% -i)ieru%ui dup& directi"e%e
preprocesor/
-n#./'e <st'o012
#onst a=B7
&o' (an )*
+
#onst b=:7
#onst ".oat p=:01;1<7
C
,
n pro,ra!u% de !ai sus, constanta a este dec%arat& dup& directi"e%e preprocesor/
Ea este i!p%icit de tip 6ntre, )i are "a%oarea E/ Constante%e * )i pi sunt dec%arate %a
6nceputu% -unc2iei !ain/ Constanta * este de tip 6ntre, )i are "a%oarea 1, pe c3nd
constanta pi este de tip -%oat )i are "a%oarea 1/:F:#L
Vu se per!it opera2ii de !odi-icare a "a%oari%or constante%or prin atri*uire,
co!pi%atoru% se!na%3nd o eroare %a co!pi%are/
-n#./'e <st'o012
#onst a=B7
&o' (an )*
+
#onst b=:7
#onst ".oat p=:01;1<7
C
a=;7 Eroare/ 7e 6ncearc& !odi-icarea "a%orii unei
constante
p=:01;7 Eroare/ 7e 6ncearc& !odi-icarea "a%orii unei
constante
,
3.3.2. $ariabile
Dec%ararea unei "aria*i%e 6n C se -aceB
tp/.A'eA'ata n/(e.eA&arab.e ?=&a.oare@7
<aria*i%e%e tre*uiesc dec%arate %a 6nceputu% -unc2iei, sau %a 6nceputu% -i)ieru%ui
dup& directi"e%e preprocesor/ <a%ori%e "aria*i%e%or pot -i !odi-icate pe parcursu%
pro,ra!u%ui/
LIMBAJUL C TEORIE I APLICAI I 1>
-n#./'e <st'o012
nt a=B7
&o' (an )*
+
nt b=:, #7
".oat '7
#1ar #1=DaD7
C
a=;7 Corect/ 7e !odi-ic& "a%oarea "aria*i%ei a/
#1=D1D7 Corect/ 7e !odi-ic& "a%oarea "aria*i%ei d/
,
<aria*i%e%e a, * )i c sunt de tip 6ntre,/ <aria*i%a a este dec%arat& %a 6nceputu%
-i)ieru%ui dup& directi"e%e preprocesor )i este ini2ia%i.at& cu "a%oarea E/ <aria*i%e%e
* )i c sunt dec%arate %a 6nceputu% -unc2iei !ain, "aria*i%a * este ini2ia%i.at& cu
"a%oarea E, "aria*i%a c este neini2ia%i.at&/ <aria*i%a d este de tip -%oat )i este
neini2ia%i.at&/ <aria*i%a c' este de tip c'ar )i este ini2ia%i.at& cu "a%oarea a/
7& re2ine! c& operatoru% I 6n C este operatoru% de atri*uire/ Re!arc&! c& tipu%ui
de dat& caracter i se poate atri*ui o "a%oare caracter/ O "a%oare caracter 6n C este
repre.entat& prin ^caracter^/ In ca.u% nostru, "aria*i%a caracter c' este ini2ia%i.at& cu
"a%oarea a/
3.3.2.1. $ariabile locale "i globale
A! "&.ut !ai sus c& "aria*i%e%e pot -i dec%arate -ie %a 6nceputu% -i)ieru%ui dup&
directi"e%e preprocesor, -ie 6n interioru% unei -unc2ii/ <aria*i%e%e care sunt
dec%arate 6n interioru% unei -unctii 46ntre aco%ade5 se nu!esc "aria*i%e %oca%e/
<aria*i%e%e %oca%e pot -i -o%osite doar 6n interioru% -unc2iei 6n care au -ost dec%arate/
<aria*i%e%e care au -ost dec%arate %a 6nceputu% -i)ieru%ui, dup& directi"e%e
preprocesor, pot -i -o%osite 6n toate -unc2ii%e pro,ra!u%ui/ Aceste "aria*i%e se
nu!esc "aria*i%e ,%o*a%e/
-n#./'e <st'o012
&o' test)*7
nt a=B7 <aria*i%a a este ,%o*a%&/
&o' (an )*
+
nt b7 <aria*i%a * este %oca%& 6n -unc2ia "oid !ain 45/
".oat p=:01;1<7
test)*7
,
&o' test)*
+
nt #7 <aria*i%a c este %oca%& 6n -unc2ia test45/
#=b*B7 Eroare/ <aria*i%a * este %oca%& 6n -unc2ia "oid !ain 45/
#=a*B7
,
n pro,ra!u% de !ai sus, "aria*i%a a este o "aria*i%& ,%o*a%& de tip 6ntre,,
ini2ia%i.at& cu E/ <aria*i%a * este o "aria*i%& de tip 6ntre, %oca%& 6n -unc2ia "oid
LIMBAJUL C TEORIE I APLICAI I 19
!ain 45, "aria*i%a de tip -%oat pi este %oca%& 6n -unc2ia "oid !ain 45 )i este
ini2ia%i.at& cu "a%oarea 1/:F:#/
<aria*i%a c de tip 6ntre, este %oca%& 6n -unc2ia test45/ Instruc2iunea cI*QEL "a
produce o eroare %a co!pi%are pentru c& "aria*i%a * -iind %oca%& 6n -unc2ia "oid
!ain 45 nu poate -i -o%osit& 6n -unc2ia test45/ Instruc2iunea cIaQEL este corect&
pentru c& "aria*i%a a este ,%o*a%&/
3.3.2.2. on#enia de denumire a #ariabilelor "i constantelor.
De)i nici c'iar p&rin2ii %i!*a+u%ui nu au !en2ionat de o con"en2ie de denu!ire a
"aria*i%e%or sau constante%or, 6n practica !odern& de pro,ra!are se reco!and&
-o%osirea unei con"en2ii de denu!ire a acestora pentru a u)ura !unca
pro,ra!atoru%ui/ In ca.u% pro,ra!e%or !ari, care con2in !ii de instruc2iuni, este
necesar& respectarea unei ordini pri"ind denu!irea "aria*i%e%or/ De ee!p%u, dac&
a! dec%arat o "aria*i%& de tip 6ntre, cu nu!e%e a, )i unde"a 6n pro,ra! 6i "o!
atri*ui "a%oarea 1/F, uit3nd -aptu% c& "aria*i%a este de tip 6ntre,, "aria*i%a a "a
con2ine doar 1, adic& partea 6ntrea,& a "a%orii/ Acest %ucru duce %a re.u%tate
eronate 6n continuare/ Autorii reco!and& -o%osirea a unu 0 trei %itere 6n -a2a
nu!e%ui unei "aria*i%e, pentru a indica tipu% de dat& a "aria*i%ei/
De ee!p%u
ntra5a, nt#ontor se!ni-ic& "aria*i%e de tip int
".are, ".x1 se!ni-ic& "aria*i%e de tip -%oat
.n4a, .n4b se!ni-ic& "aria*i%e de tip %on,
'b.s/(a, 'b."x se!ni-ic& "aria*i%e de tip dou*%e
#1nta.a, #1#o' se!ni-ic& "aria*i%e de tip c'ar
s5n/(e se!ni-ic& "aria*i%e de tip )ir de caractere/
3.%. &uncii. Introducere
Un pro,ra! scris 6n %i!*a+u% C este a%c&tuit din una sau !ai !u%te -unc2ii/ O
-unc2ie are ur!&toarea structur& B
TpA'eA'ata N/(e)Esta 'e#.arat.or para(etr.or "or(a.*
+
De#.arat7
9nstr/#t/n7
,
Pri!u% r3nd repre.int& antetu% -unc2iei, iar .ona dintre parante.e%e aco%ad&
repre.int& corpu% -unc2iei/
n %i!*a+u% C -unc2ii%e returnea.& sau nu o "a%oare )i 6n ca.u% c& returnea.&, tipu%
-unc2iei este indentic cu tipu% "a%oarei returnate 4int, -%oat, dou*%e, c'ar5, iar 6n
ca.u% c& nu returnea.& o "a%oare tipu% -unc2iei este "oid care tre*uie indicat, 6n
ca.u% c& nu este indicat se consider& c& -unc2ia returnea.& o "a%oare de tip 6ntre,,
c'iar dac& 6n cadru% -unc2iei nu este speci-icat ep%icit c& returnea.& o "a%oare/
O -unc2ie poate a"ea .ero sau !ai !u%2i para!etrii -or!a%i, 6n ca.u% c& nu are
para!etrii -or!a%i se "a speci-ica prin cu"3ntu% "oid sau nu se "a scrie ni!ic 6ntre
LIMBAJUL C TEORIE I APLICAI I F$
parante.e, 6n ca.u% c& sunt !ai !u%2i para!etri -or!a%i, ace)tia sunt separa2i prin
"ir,u%& 6ntre ei/
Prin inter!ediu% para!etri%or se trans-er& date%e de %a ape%area -unc2iei 6n
interioru% -unc2iei/ Mai +os, sunt pre.entate c3te"a ee!p%e/
&o' (an)&o'* sau &o' &o' (an )* -unc2ia principa%& cu nu!e%e (an
nu returnea.& "a%oare )i nu are para!etrii -or!a%i/
".oat "a#tora. )nt n* -unc2ia cu nu!e%e "a#tora. returnea.& o "a%oare
de tip ".oat )i are un para!etru -or!a% cu nu!e%e
n de tipu% nt/
p/ts )3Fr 'e #ara#tere3* -unc2ii standard de *i*%iotec& pentru a-i)area pe
!onitor a )iru%ui de caractere inc%use intre _ _/
".oat "xG )nt n, ".oat x* -unc2ia cu nu!e%e "xG returnea.& o "a%oare de tip
".oat )i necesit& %a ape%are para!etri -or!a%i de
tipu% nt, ".oat/
n cadru% unui pro,ra! o -unc2ie are o sin,ur& de-ini2ie, dar poate -i ape%at& de
!ai !u%te ori/ Ape%area unei -unc2ii se e-ectuea.& prin nu!e%e -unc2iei ur!at de
%ista para!etri%or e-ecti"i ast-e% B
N/(e ).sta para(etr.or e"e#t&*7
Para!etrii e-ecti"i pot -i o epresie, un nu!e de "aria*i%&/ Para!etrii e-ecti"i
tre*uie s& corespund& cu para!etrii -or!a%i ai -unc2iei prin ordine )i tip/ Dac&
-unc2ia returnea.& o "a%oare ea se ape%ea.& ca un operand din cadru% unei epresii/
a="a#tora. )6*7 -unc2ia -actoria% "a returna 6n "aria*i%a a "a%oarea
re.u%tat& prin ca%cu%u% -unc2iei cu para!etru% e-ecti" +/
Dac& para!etrii e-ecti"i sunt nu!e de ta*%ouri, o*%i,atoriu 6n antetu% -unc2iei se "a
indica para!etrii -icti"i ca -iind ta*%ouri/
'o/b.e a ?10@7
nt n7
C
#t( )n,n,a*7
C
Ounc2ia cit! "a a"ea antetu% B
&o' #t( )nt n, nt (, 'o/b.e ?@* sau
&o' #t( )nt n, nt (, 'o/b.e ?10@*
3.%.1. &uncii standard de intrare ie"ire
7etu% de opera2ii care per!it trans-eru% de date 6ntre peri-erice )i pro,ra!
-or!ea.& opera2ii%e de intrare ie)ire, opera2ii%e de introducere a date%or de %a un
peri-eric se nu!esc opera2ii de citire, iar opera2ii%e de ie)ire a date%or spre un
peri-eric se nu!esc opera2ii de scriere sau a-i)are 4tip&rire5/
Li!*a+u% C nu dispune de instruc2iuni speci-ice opera2ii%or de intrare ie)ire )i
pentru a rea%i.a aceste opera2ii -o%ose)te -unc2ii standard de intrare ie)ire/
Ounc2ii%e uti%i.ate ce% !ai -rec"ent sunt B
4et#1)*, 4ets)*, s#an")* pentru citirea dare%or de %a tastatar&,
p/t#1)*, p/ts)*, prnt")* pentru tip&rirea date%or pe ecran/
LIMBAJUL C TEORIE I APLICAI I F:
Ounc2ia 4et#1)* cite)te de %a tastatur& caracteru% tastei ap&sate -&r& ecou pe
ecranu% !onitoru%ui, )i returnea.& codu% A7CI I a% caracteru%ui/ Ape%u% -unc2iei se
-ace ast-e% B
4et#1 )*7 c3nd se dore)te s& se apese o tast& pentru
continuarea pro,ra!u%ui )i "i.ua%i.area -erestrei uti%i.atoru%ui/
p/t#1 )4et#1 )**7 c3nd -unc2ia ,etc' returnea.& codu% A7CII pentru
a -i a-i)at de -unc2ia putc'/
La ape%area -unc2iei 4et#1)* dac& se apas& tasta EVTER "a%oarea returnat& este
:1/
Ounc2ia 4ets)* cite)te de %a tastatur& un )ir de caractere ter!inat prin ap&sarea
tastei NEnterM/ Ounc2ia 4ets)* returnea.& adresa de 6nceput a .onei de !e!orie 6n
care se p&strea.& )iru% de caractere citite de %a tastatur&/ Citirea se e-ectuea.& cu
ecou pe ecranu% !onitoru%ui/ Para!etru% -unc2iei ,ets45 este adresa unui ta*%ou
unidi!ensiona% de tip c'ar 4caracter5, ape%u% -unc2iei ,ets45 este precedat de o
dec%ara2ie a unui ta*%ou de tip caracter ast-e% B
#1ar tabe.1 ?B0@7 dec%ararea unui ta*%ou cu nu!e%e ta*e%: de tip
c'ar cu %un,i!ea E$/
]
4ets ) tabe.1*7 cite)te )iru% de caractere )i 6% trans-er& %a adresa
%ui ta*e%:/
Ounc2ia s#an")* per!ite citirea date%or de %a tastatur& respect3nd un -or!at de
citire, iar ape%u% -unc2iei este de -or!a B
s#an" )#ontro., para(etr/1, para(etr/B, C, para(etr/.n*7
unde #ontro. este un )ir de caractere ce de-inesc -or!ate%e de citire a date%or de
intrare, para(etr/.1, para(etr/.B, C, sunt adrese%e %a care se p&strea.& date%e
citite/
7peci-icatorii de -or!at de-inesc con"ersii%e din -or!ate eterne 6n ce%e interne )i
6ncep cu caracteru% procent ` ur!at de : sau E %itere ce de-inesc -or!atu% ast-e% B
=# se -o%ose)te pentru a citi un sin,ur caracter,
#1ar '7
s#an" )H=#I,J' *7 cite)te caracteru% curent )i depo.itea.& codu%
A7CII a% caracteru%ui citit %a adresa "aria*i%ei d de tip caracter/
=s se -o%ose)te pentru a citi un )ir de caractere ter!inat prin caracteru% a%*
4spa2iu5, -ie %a caracteru% prin care se a+un,e %a %un,i!ea !ai!& de caractere
speci-icat& de -or!atu% de citire/ Dup& u%ti!u% caracter citit se p&strea.& auto!at
caractru% VUL/
#1ar text1 ?1<@7
LIMBAJUL C TEORIE I APLICAI I FE
s#an" )H=sI,Jtext1*7 se tastea.& LABORATOR, )iru% de caractere
LABORATOR este citit )i pus %a adresa ta*%ou%ui
tet:/
#1ar text1 ?;@7
#1ar textB ?<@7
s#an" )H=;sI,Jtext1*7
s#an" )H=<sI,JtextB*7 se tastea.& LABORATOR, )iru% de caractere
LABORATOR este citit )i pri!e%e F caractere
LABO sunt puse %a adresa ta*%ou%ui tet: iar
caractere%e RATOR sunt puse %a adresa ta*%ou%ui
tetE/
=' se -o%ose)te pentru a citi "a%ori 6ntre,i din do!eniu% H1E=G> %a J1E=G=, nu!e%e
poate -i precedat de se!nu% !inus )i op2iona% de se!nu% p%us/ Ounc2ia scan-
returnea.& o "a%oare 6ntrea,& I cu nu!&ru% de c3!puri citite corect/ Dac& 6n
speci-icatoru% de -or!at sunt dispuse ci-re, ce indic& %un,i!ea !ai!& a
c3!puri%or ce se citesc, este indicat s& se introduc& cu !are aten2ie )iru% de date
ce ur!ea.& a -i citite/
nt 7
s#an" )H='I,J*7 se cite)te o "a%oare intrea,& )i se stoc'ea.& %a
adresa "aria*i%ei i de tip int 4intre,5/
nt .,(,n 7 dec%ararea a trei "aria*i%e de tip int 4intre,5/
s#an" )H1=' =:' =B'I,J.,J(,Jn5 L dac& se tastea.& G#1E=G "a%oarea G "a -i
p&strat& 6n "aria*i%a %, "a%oarea #1E "a -i p&strat&
6n "aria*i%a ! iar "a%oarea =G "a -i p&strat& 6n
"aria*i%a n, respect3ndu0se %un,i!ea -or!ate%or
de citire/
Dac& data de intrare este a:E1F# -unc2ia scan- nu "a citi consider3nd c& este o
eroare, 6nceputu% datei 6ncepe cu un caracter di-erit de ci-r& )i "a returna "a%oarea
.ero/
=o se -o%ose)te pentru a citi un 6ntre, octa%
=x =K se -o%ose)te pentru a citi un 6ntre, de tip 'ea.eci!a%, ci-re%e 'ea.eci!a%e
!ai !ari de 9 se "or repre.enta prin %itere !ari sau !ici/
=/ se -o%ose)te pentru a citi 6ntre, .eci!a% de tipu% unsi,ned/
=" se -o%ose)te pentru a citi nu!ere%e .eci!a%e cu sau -&r& eponent )i p&strate 6n
-or!at -%otant si!p%& preci.ie, 6n do!eniu% !odu% 1,Fa:$
01>
1,Fa:$
1>
a date%or de
tip -%oat,
".oat a1,b7 dec%ara2ii de tip -%oat pentru a: )i *
LIMBAJUL C TEORIE I APLICAI I F1
s#an" )H=" ="I,Ja1,Jb*7 citirea a dou& "a%ori separate prin caracteru%, de
-or!at -%oat )i depo.itarea "a%ori%or citite %a
adrese%e %ui a: )i */
=." se -o%ose)te pentru a citi nu!ere%e .eci!a%e cu sau -&r& eponent )i p&strate 6n
-or!at -%otant du*%& preci.ie 6n do!eniu% :,=a:$
01$>
:,=a:$
1$>
a date%or de tip
dou*%e,
'o/b.e a 7 dec%ararea "aria*i%ei a de tip dou*%e
s#an" )H=."I,Ja*7 citirea unei date rea%e de tip dou*%e, care se
atri*uie "aria*i%ei a/
=E" se -o%ose)te pentru a citi nu!ere%e .eci!a%e cu sau -&r& eponent )i p&strate 6n
-or!at -%otant %on, dou*%e 6n do!eniu% 1,Fa:$
0F91E
:,:a:$
F91E
/
Ounc2ia p/t#1)* a-i)ea.& un sin,ur caracter pe !onitor )i are ca para!etru o
epresie sau o ape%are a -unc2iei 4et#1)*,
p/t#1 )4et#1 )**7 "a a-i)a caracteru% citit de -unc2ia ,etc'/
Ounc2ia p/ts)* a-i)ea.& pe !onitor )iru% de caractere de%i!itate de du*%u apostro-
sau )iru% de caractere din cadru% unui ta*%ou unidi!ensiona%/
p/ts )H8n Apasa o tasta pentr/ ter(narea pro4ra(/./I*7
are ca e-ect trecerea cursoru%ui de a-i)are pe r3nd nou datorit& caractere%or 8n )i
apoi se "a a-i)a )iru% de caractere Apasa o tasta pentr/ ter(narea
pro4ra(/.//
Ounc2ia prnt")* este -o%osit& pentru a a-i)a su* contro%u% unui -or!at, date%e de
ie)ire, -o%osind ape%area ast-e% B
prnt" )#ontro., para(etr/1, para(etr/B, C*7
unde #ontro. este un )ir de caractere care indic& -or!ate%e de a-i)are )i tetu% ce
se poate a-i)a, para(etr/1, para(etr/B, C, pot -i epresii sau denu!irea
"aria*i%e%or a c&ror "a%oare se "a a-i)a/
=# se -o%ose)te pentru a a-i)a un sin,ur caracter,
#1ar '7
prnt" )H=#I,'*7 a-i)ea.& caracteru% stocat %a adresa "aria*i%ei d,
de tip caracter/
=s se -o%ose)te pentru a a-i)a un )ir de caractere p&strat 6ntr0un ta*%ou,
#1ar text1 ?1<@7
prnt" )H=sI,text1*7 se a-i)ea.& )iru% de caractere pus %a adresa
ta*%ou%ui tet:/
prnt" )H=sI,IertonI*7 se a-i)ea.& )iru% de caractere erton dispuse intre @
@ /
Dac& 6n -or!atu% de tip&rire se -o%osesc "a%ori nu!erice, care s& indice %un,i!ea
.onei de a-i)are , "a a-ecta ast-e% tip&rirea B
prnt" )H*=8s*I,IertonI*7 se a-i)ea.& 6ntre caractere%e Q Q pe un spa2iu de >
caractere cu"3ntu% erton ast-e% B
LIMBAJUL C TEORIE I APLICAI I FF
Q ertonQ, dac& "a%oarea > din -or!atu% de tip&rire este precedat de caracteru% H,
a-i)area se "a -ace tot pe un spa2iu de > caractere, cu"3ntu% erton este ur!at de
spa2iu %i*er de 1 caractere ast-e% B Qerton Q/
=' se -o%ose)te pentru a a-i)a "a%ori intre,i din do!eniu% H1E=G> %a
J1E=G=,
nt 7
prnt" )H='I,J*7 se a-i)ea.& "a%oarea intrea,& depo.itat& %a adresa
"aria*i%ei i de tip int 4intre,5/
nt n,( 7
n=;<7
(=:0:
prnt" )H*8'*I,n*7 se a-i)ea.& Q F#Q %un,i!ea .onei este de >
caractere dispuse cu "a%oarea a%iniat& %a dreapta/
prnt" )H*08'*I,n*7 a-i)ea.& Q$$$$$$F#Q dispun3nd .erouri 6n -a2a
"a%orii .erouri p3n& %a %un,i!ea indicat&/
prnt" )H*-8'*I,n*7 a-i)ea.& QF# Q asi,ur3nd un spa2iu de >
caractere cu a%inierea %a st3n,a "a%orii/
=" se -o%ose)te pentru a a-i)a nu!ere%e .eci!a%e cu sau -&r& eponent )i p&strate
6n -or!at -%otant si!p%& preci.ie, 6n do!eniu% !odu% 1,Fa:$
01>
1,Fa:$
1>
a date%or
de tip -%oat/ Vu!&ru% .eci!a%e%or a-i)ate i!p%icit este G, dac& 6n speci-icatoru% de
-or!at se speci-ic& !&ri!ea c6!pu%ui aceasta de"ine prioritar&/ Dac& nu!&ru% de
.eci!a%e speci-icate 6n -or!at este !ai !ic dec3t nu!&ru% de .eci!a%e ca%cu%ate,
se "a rotun+i "a%oarea/
".oat a1,b7 dec%ara2ii de tip -%oat pentru "aria*i%e%e a: )i *
prnt")H=" ="I,Ja1,Jb*7 a-i)area a dou& "a%ori de -or!at -%oat )i
depo.itate %a adrese%e %ui a: )i */
".oat a1,b7
a1=B:7
b=;:0<L7
#=;:0:;7
prnt")H=" =" ="I,Ja1,Jb,J#*7 se a-i)ea.& ce%e 1 "a%ori cu un nu!&r de G
.eci!a%e 4nu!&r de .eci!a%e i!p%icit5 ast-e% B
E1/$$$$$$ F1/#G$$$$ F1/1F$$$$
prnt")H=<01" =L0B" =L01"I,Ja1,Jb,J#*7
se a-i)ea.& pe un c3!p de # caractere "a%oarea %ui a: cu : .eci!a%& ast-e% B
E1/$
"a%oarea * se "a a-i)a pe un c3!p de G caractere cu spa2iu de E caractere pentru
.eci!a%e ast-e% B F1/#G iar pentru "a%oarea c se "a a-i)a pe un spa2iu de G
caractere o sin,ur& .eci!a%&, prin rotun+irea "a%orii ast-e% B F1/1 a%inierea
"a%ori%or a-i)ate este %a dreapta pentru %un,i!ea c3!pu%ui re.er"at/
=." se -o%ose)te pentru a a-i)a nu!ere%e .eci!a%e cu sau -&r& eponent )i
p&strate 6n -or!at -%otant du*%& preci.ie 6n do!eniu% :,=a:$
01$>
:,=a:$
1$>
a date%or
de tip dou*%e,
'o/b.e a7 dec%ararea "aria*i%ei a de tip dou*%e
LIMBAJUL C TEORIE I APLICAI I F#
prnt" )H=."I,Ja*7 a-i)area "a%ori "aria*i%ei a de tip dou*%e/
=E" se -o%ose)te pentru a a-i)a nu!ere%e .eci!a%e cu sau -&r& eponent )i
p&strate 6n -or!at -%otant %on, dou*%e 6n do!eniu% 1,Fa:$
0F91E
:,:a:$
F91E
/
".oat ar7
C
prnt" )Hara=="8nI,ar*7 "a a-i)a tetu% ara= ur!at& de "a%oarea "aria*i%ei
ar )i apoi trecerea pe r3nd nou datorit& caractere%or specia%e 8n /
Pentru a dispune "a%ori%e pe c3!puri separate printr0un spa2iu de > caractere 4ta*5,
6n speci-icatoru% de -or!at se "or -o%osi caractere%e
".oat a1,b7
a1=B:7
b=;:0<L7
#=;:0:;7 de indicare a %ui ta* ast-e% 8t0
prnt")H="8t="8t="I,Ja1,Jb,J#*7se a-i)ea.& ce%e 1 "a%ori cu un nu!&r de G
.eci!a%e 4nu!&r de .eci!a%e i!p%icit5 ast-e% B
E1/$$$$$$ F1/#G$$$$ F1/1F$$$$
=e sa/ =E se -o%ose)te pentru a a-i)a nu!ere%e .eci!a%e de tip -%oat sau
dou*%e spre -or!atu% cu parte 6ntrea,&/parte -rac2iona%& eponent/ Vu!&ru%
.eci!a%e%or a-i)ate depinde de speci-icatoru% de -or!at, dac& preci.ia nu este
speci-icat&, se "or a-i)a G .eci!a%e 4 a se "edea ee!p%e%e de %a ` -5/
Eponentu% "a a"ea caracteru% e sau E dispus 6n -a2a -unc2ie de caracteru%
speci-icat 6n -or!at B
".oat a =;01B:;<L, b=B:0;<, #=00;<7
prnt" )Ha==e b==e #==E I,a,b,# *7
"a a-i)a B
a=;01B:;<Le!00 b=B0:;<e!01 #=;0<E-010
=4 sa/ =M se -o%ose)te pentru a a-i)a nu!ere%e .eci!a%e cu sau -&r& eponent
-ie ca 6n ca.u% speci-icatoru%ui de -or!at `- -ie ca 6n ca.u% speci-icatoru%ui de
-or!at `e 6n -unc2ie de !&ri!ea "a%ori ast-e% ca a-i)area s& ocupe un nu!&r
!ini! de caractere/ 7peci-icatoru% de -or!at `, sau `W "a a-i)a !ai! G
.eci!a%e dac& acestea sunt se!ni-icati"e/
".oat a=1B:0;<LN8, b=B:0;<7
prnt" )Ha==4 b==4 I,a, b*7
"a a-i)a
a=10B:;<L8e!0: b=B:0;</
Date%e de tip -%oat au o preci.ie de = .eci!a%e iar date%e de tip dou*%e au o preci.ie
de :# .eci!a%e/ Ounc2ii%e de intrare ie)ire au prototipuri%e 6n -i)iere%e st'o01 )i
#ono01 care tre*uie inc%use 6n -iecare -i)ier surs& /
=o date%e de tip intre, 4int5 sau date%e de tip intre, -&r& se!n 4unsi,ned5 sunt
con"ertite 6n octa% )i apoi sunt a-i)ate su* speci-icatoru% de -or!at B
LIMBAJUL C TEORIE I APLICAI I FG
prnt" )H!!=Lo!!I01B:*7 "a a-i)a pe un c3!p de G caractere "a%oarea :E1
con"ertit& 6n octa%I:=1 ast-e% B JJ :=1JJ , caractere%e JJ au -ost puse pentru a
se de%i!ita %un,i!ea c3!pu%ui a-i)at/
=x sa/ =K este -o%osit pentru a con"erti date%e de tip int sau unsi,ned 6n
'ea.eci!a% )i apoi -o%osind speci-icatoru% de -or!at %e "a a-i)a/ 7peci-icatoru%
` "a a-i)a ci-re%e !ai !ari de 9 cu caractere !inuscu%e, iar `X "a a-i)a cu
caractere !a+uscu%e/
prnt" )H=<x8t=xI,1B;,1B;*7 "a a-i)a pe un c3!p de # caractere B =c
ur!at de un spa2iu de : ta* apoi a-i)area cu caractere !a+uscu%e a "a%orii !ai !are
dec3t 9 ast-e% =C
`u este -o%osit& pentru a a-i)a o dat& de tip unsi,ned 6n .eci!a%/
=. poate precede caractere%e d, o, , X, u pentru a con"erti date%e din %on, 6n
%on, unsi,ned ast-e% B
`%d con"erte)te data de tip %on, 6n .eci!a%
`%u con"erte)te din %on, unsi,ned 6n .eci!a%
`%o con"erte)te din %on, sau %on, unsi,ned 6n octa%
`% con"erte)te din %on, sau %on, unsi,ned 6n octa%/
-n#./'e<st'o012
-n#./'e<#ono012
&o' (an )*
+
nt a,'7 dec%arare de "aria*i%& de tip 6ntre, !a 1E=G=
/ns4ne' b7 dec%arare de "aria*i%& de tip -&r& se!n G##1#
.on4 #7 dec%arare de "aria*i%& intrea,& %on, !a
E:F=F>1GF=
'=s#an" )3=/,=',=.'3,Jb,Ja,J#*7 citirea a trei "a%oriB unsi,ned, intre,, intre,
%on,/
prnt" )3/ns4ne' =/ nt =' .on4 =.'8n3,b,a,#*7a-i)area ce%or trei "a%ori
citite/
,
Dac& se introduc "a%ori%e G##1#, 1E=G=, 1F#G=>9, ce se a-%& 6n
Do!eniu% -iec&rei tip de "aria*i%&, aceste date "or -i citite corect )i apoi a-i)ate
corect/ Dac& se introduc "a%ori%e 0E1F, 11$$$, E1F#G=se "a o*ser"a c& data
HE1F nu "a -i citit& -inc& are se!nu% !inus, iar adoua "a%oare 11$$$ nu este
citit&, -inc& "a%oarea dep&)e)te do!eniu% "aria*i%ei de tip intre,/
7e reco!and& ca -unc2ie de do!eniu% "a%ori%or "aria*i%e%or -o%osite, s0& se
a%ea,& tipu% "aria*i%ei/
LIMBAJUL C TEORIE I APLICAI I F=
3.'. Instruciuni. ()presii. *peratori
3.'.1. Instruciuni.
Pre%ucrarea date%or de intrare, de ie)ire, sau din interioru% pro,ra!u%ui se
rea%i.ea.& cu a+utoru% instruc2iuni%or/ Ordinea de e-ectuare a acestor
instruc2iuni depinde de structura de contro% a pro,ra!u%ui/ 7tructura de contro%
a pro,ra!u%ui poate -i B
7tructura sec"en2ia%&/
7tructur& a%ternati"&/
7tructur& cic%ic& condi2ionat& anterior/
7tructur& se%ecti"&/
7tructur& cic%ic& condi2ionat& posterior/
3.'.1.1. Instruciunea #id.
Instruc2iunea "id& se rea%i.ea.& prin caracteru%L )i este -o%osit& unde se cere
pre.en2a unei instruc2iuni -&r& e-ect, 6n cadru% structuri%or cic%ice sau a%ternati"e/
3.'.1.2. Instruciunea e)presie.
Instruc2iunea epresie are -or!a B
exprese7
n -unc2ie de tipu% epresiei instruc2iunea epresie se nu!e)te de atrb/re sau
de ape./
A=<7 este o instruc2iune de atri*uire )i are ca e-ect
atri*uirea "a%orii # "aria*i%ei A/
O?B@=B0<7 este o instruc2iune de atri*uire )i are ca e-ect
atri*uirea "a%orii E,# "aria*i%ei indeate B9E;/
K=K!B7 este o instruc2iune de atri*uire )i are ca e-ect
!&rirea "a%orii %ui X cu E/
p/ts )HDat o &a.oareI*7 este o instruc2iune de ape% a -unc2iei puts/
9!!7 este o instruc2iune epresie )i !&re)te "a%oarea %ui
I cu o unitate/
P--7 este o instruc2iune epresie )i !ic)orea.&
"a%oarea %ui J cu o unitate/
3.'.1.3. Instruciunea compus.
Instruc2iunea co!pus& se rea%i.ea.& prin inc%uderea !ai !u%tor instruc2iuni )i
dec%ara2ii 6ntre dou& aco%ade desc'is inc'is/
LIMBAJUL C TEORIE I APLICAI I F>
+
'e#.arat7
nstr/#t/n7
,
Dec%ara2ii%e din cadru% unei instruc2iuni co!puse au e-ect nu!ai asupra
"aria*i%e%or dec%arate de e%e )i nu!ai in e-ectuarea instruc2iunii co!pus&/
Instruc2iunea co!pus& se -o%ose)te 6n cadru% structuri%or cic%ice sau a%ternati"e/
]
+
p/ts )H 'at &a.oarea e.e(ent/./I*7
s #an" )H='I, Ja?@*7
,
3.'.1.%. Instruciunea de atribuire.
A! a!intit 6n capito%u% @Tipuri de date/ Constante )i "aria*i%eC despre operatoru%
I/ Operatoru% I este operatoru% de atri*uire/ Instruc2iunea 6n care apare operatoru%
de atri*uire se nu!e)te instruc2iune de atri*uire/ 7intaa instruc2iunii de atri*uire
esteB
n/(eA&arab.a = exprese7
Ter!enu% st3n, a% instruc2iunii de atri*uire nu poate -i dec3t o "aria*i%&/ Dac& 6n
partea st3n,& a operatoru%ui nu se ,&se)te o "aria*i%&, co!pi%atoru% "a se!na%a o
eroare %a co!pi%are L"a%ue reSuired/
Ter!enu% drept a% instruc2iunii de atri*uire este o epresie/ O epresie este un
,rup de "aria*i%e )i constante %e,ate 6ntre e%e prin operatori !ate!atici 4adunare,
sc&dere, etc/5/
n !o!entu% ru%&rii pro,ra!u%ui, instruc2iunea de atri*uire este re.o%"at& 6n doi
pa)i/ Pri!u% pas, const& 6n e"a%uarea epresiei din dreapta operatoru%ui atri*uire/
Re.u%tatu% o*2inut este atri*uit "aria*i%ei din st3n,a operatoru%ui/
-n#./'e <st'o012
&o' (an )*
+
nt 7
'o/b.e '7
prnt")3Pro4ra( #are '/b.ea5a &a.or.e a B &arab.e3*7
prnt")38nTastat /n ntre4 s /n rea.:3*7
s#an")3=' =."3, J, J'*7
=*B7
'='*B7
prnt")38nD/b./. n/(ar/./ ntre4 este: ='3, *7
prnt")38nD/b./. n/(ar/./ rea. este: ="3, '*7
,
Dac& ce%e dou& nu!ere au -ost # )i F/=, pro,ra!u% "a produce pe ecran ur!&toru%
re.u%tatB
D/b./. n/(ar/./ ntre4 este: 10
D/b./. n/(ar/./ rea. este: Q0;00000
LIMBAJUL C TEORIE I APLICAI I F9
3.'.2. *peratori.
A! a!intit !ai sus c& o epresie este un ,rup de "aria*i%e )i constante %e,ate 6ntre
e%e prin operatori/ Ter!enii care inter"in 6ntr0o epresie se !ai nu!esc )i
operan.i/ Li!*a+u% C pune %a dispo.i2ia uti%i.atoru%ui un !are nu!&r de operatori/
<o! pre.enta 6n continuare principa%e%e ,rupe de operatori
3.'.2.1. *peratori aritmetici.
In C, a"e! ur!&torii operatori arit!eticiB
0 !inus unar
J p%us unar
Q 6n!u%2ire
K 6!p&r2ire
` restu% 6!p&r2irii 6ntre,i
J adunare
0 sc&dere
Eemplu
7& se scrie pro,ra!u% C care ca%cu%ea.& ecua2ia de ,radu% I 4"e.i or,ani,ra!a de
%a A%,orit!i %iniari5/ Coe-icien2ii a )i * sunt 6ntre,i/
"ezol#are
C'iar dac& coe-icien2ii a )i * sunt 6ntre,i, so%u2ia a ecua2iei poate -i rea%&, ast-e%
"o! dec%ara "aria*i%a de tip -%oat/
-n#./'e <st'o012
&o' (an )*
+
nt a, b7
".oat x7
prnt")3Pro4ra( #are re5o.&a e#/ata 'e 4ra'/. 9 ax!b=03*7
prnt")38nDat #oe"#ent ntre4 a s b 3*7
s#an")3=' ='3, Ja, Jb*7
x=-b/a7
prnt")3So./ta e#/ate ='x!='=0 este: ="3, a, b, x*7
,
Dac& %a !esa+u% Dat #oe"#ent ntre4 a s b, "o! tasta E )i 1,
pro,ra!u% "a produce pe ecran ur!&toru% re.u%tatB
So./ta e#/ate Bx!:=0 este: -10000000
O*ser"&! c& so%u2ia este incorect&/ Pro*%e!a const& 6n instruc2iunea de atri*uire
I0*KaL/ Epresia din partea dreapt& a operatoru%ui de atri*uire, care este e"a%uat&
pri!a, con2ine doi operan.i de tip 6ntre, )i doi operatori !inus unar )i 6!p&r2ire/
Pentru c& to2i operan.ii epresiei sunt de tip 6ntre,, pro,ra!u% "a e"a%ua epresia
)i "a atri*ui un 6ntre, "aria*i%ei din st3n,a, adic& / Re.u%tatu% 6ntre, este o*2inut
prin trunc'iere 4adic& e%i!inarea .eci!a%e%or5/ Pentru ca pro,ra!u% s& atri*uie
"aria*i%ei din st3n,a o "a%oare de tip rea% 4-%oat5, tre*uie ca unu% din ter!enii
LIMBAJUL C TEORIE I APLICAI I #$
epresiei s& -ie de tip -%oat/ Vu pute! s& sc'i!*&! tipu% de dat& a% "aria*i%e%or a
)i *, pentru c& 6n enun2 s0a cerut ca a )i * s& -ie 6ntre,i/
3.'.2.2. !+pecasting.
Din -ericire, %i!*a+u% C per!ite sc'i!*area tipu%ui de dat& a unei "aria*i%e 6ntr0o
epresie cu a+utoru% operatoru%ui tPpecast/ Operatoru% tPpecast este -o%osit su*
-or!aB
)tp 'e 'ata*n/(eA'eA&arab.a
De re2inut -aptu% c& tipu% de dat& a% "ari*i%ei nu este sc'i!*at 6n pro,ra!, ci doar
"a%oarea "aria*i%ei 6n epresia 6n care apare operatoru% tPpecast este !odi-icat& %a
tipu% tip de dat&/ Ast-e% 6nc3t pro*%e!a corect re.o%"at& esteB
-n#./'e <st'o012
&o' (an )*
+
nt a, b7
".oat x7
prnt")3Pro4ra( #are re5o.&a e#/ata 'e 4ra'/. 9 ax!b=03*7
prnt")38nDat #oe"#ent ntre4 a s b 3*7
s#an")3=' ='3, Ja, Jb*7
x=-)".oat*b/a7
prnt")3So./ta e#/ate ='x!='=0 este: ="3, a, b, x*7
,
O*ser"&! c& 6n epresia 0*Ka a! -o%osit operatoru% tPpecast, trans-or!3nd0o su*
-or!a 04-%oat5*Ka/ Pentru c& operatoru% tPpecast 4-%oat5 este 6n -a2a "aria*i%ei *,
pro,ra!u% "a considera "a%oarea %ui * de tip -%oat, ast-e% unu% din operan.ii din
epresie este de tip -%oat )i re.u%tatu% returnat 6n ur!a e"a%u&rii epresiei este
-%oat/ Re!arc&! 6n p%us c& tipu% de dat& a% "aria*i%ei * nu a -ost sc'i!*at, pentru
c& instruc2iunea
prnt")3So./ta e#/ate ='x!='=0 este: ="3, a, b, x*7
-o%ose)te speci-icatoru% de -or!at `d pentru a tip&ri "a%oarea "aria*i%ei *, care produce
re.u%tatu% a)teptat pe ecranB
So./ta e#/ate Bx!:=0 este: -10<00000
3.'.2.3. *peratori relaionali.
In %i!*a+u% C operatorii re%a2iona%i suntB
N !ai !ic
NI !ai !ic sau e,a%
M !ai !are
MI !ai !are sau e,a%
II e,a%
bI di-erit
<o! a!inti aici un operator care nu poate -i c%asi-icat 6n nici o ,rup&, dar care
este -oarte interesant, e% ne-iind pre.ent 6n nici unu% din ce%e%a%te %i!*a+e c%asice
de pro,ra!are, )i anu!e operatoru% deci.ie/ Operatoru% deci.ie ?, este -o%osit
LIMBAJUL C TEORIE I APLICAI I #:
pentru a se%ecta din dou& epresii, doar una, 6n -unc2ie de o condi2ie i!pus& 6n
st3n,a operatoru%ui/ 7intaa -o%osirii operatoru%ui epresie esteB
n/(eA'eA&arab.a = #on'te R exprese1 : expreseB7
Dac& condi2ia este ade"&rat&, "a%oarea epresiei : este atri*uit& "aria*i%ei/ Dac&
condi2ia nu este ade"&rat& 4-a%s&5, "a%oarea epresiei E este atri*uit& "aria*i%ei/
Eemplu
7a se scrie pro,ra!u% C care cite)te un nu!&r 6ntre, de %a tastatur& )i a-i)ea.&
!esa+u% Vu!aru% este p, dac& nu!&ru% este par, sau Vu!aru% este i, dac& nu!&ru%
este i!par, -o%osind doar operatorii arit!etici )i deci.ie/
"ezol#are
-n#./'e <st'o012
&o' (an )*
+
nt a, b7
#1ar p7
prnt")3Tastat /n ntre43*7
s#an")3='3, Ja*7
b=a=B7
p= b==0 R DpD:DD7
prnt")3N/(ar/. este =#3, p*7
,
A! -o%osit doi dintre operatorii pre.enta2i !ai sus/ In instruc2iunea de atri*uire
*Ia`EL, * "a a"ea "a%oarea $ dac& a este par )i : dac& a este i!par, pentru c&
operatoru% ` returnea.& restu% 6!p&r2irii %ui a %a E/
n epresia din ur!&toarea instruc2iune de atri*uire *II$ ? ^p^B^i^L condi2ia este *
e,a% cu .ero/ Dac& * este e,a% cu .ero, "aria*i%ei ip din st3n,a operatoru%ui de
atri*uire i se "a atri*ui epresia ^p^ 4adic& ipI^p^5/ Dac& * nu este e,a% cu .ero
4condi2ia nu este ade"&rat&5, "aria*i%ei ip i se "a atri*ui epresia ^i^ 4adic& ipI^i^5/ n
-ina%, pro,ra!u% "a a-i)a pe ecranB
N/(ar/. este
dac& "a%oarea "aria*i%ei a este i!par&/
Eemplu
7& se scrie pro,ra!u% C care cite)te dou& nu!ere rea%e de %a tastatur& )i co!par&
ce%e dou& nu!ere -o%osind operatoru% deci.ie/ Pro,ra!u% s& a-i)e.e Vu!&ru% a M
*, dac& a este !ai !are dec3t *, sau Vu!aru% a N *, dac& a este !ai !ic dec3t */
"ezol#are
-n#./'e <st'o012
&o' (an )*
+
".oat a, b7
#1ar op7
prnt")3Tastat 'o/a n/(ere rea.e3*7
s#an")3=" ="3, Ja, Jb*7
op= a2b R D2D:D<D7
prnt")3N/(ar/. =" =# ="3, a, op, b*7
,
7& re!arc&! instruc2iunea de atri*uire opI aM* ? ^M^B^N^L/ Condi2ia este aM*/ Dac&
condi2ia este ade"&rat&, "aria*i%a op de tip caracter "a pri!i "a%oarea ^M^/ Dac&
LIMBAJUL C TEORIE I APLICAI I #E
condi2ia este -a%s&, "aria*i%a op "a pri!i "a%oarea ^N^/ Dac& a este 1/# )i * este F/E,
pro,ra!u% "a a-i)a pe ecran !esa+u%B
N/(ar/. :0<00000 < ;0B00000
3.'.2.%. *peratorii logici.
In %i!*a+u% C eist& trei operatori %o,iciB
b ne,are
cc )i %o,ic
dd sau %o,ic
Operatoru% ne,are produce ur!&toru% re.u%tatB
dac& operandu% are o "a%oare di-erit& de $, re.u%tatu% este $, a%t-e% re.u%tatu%
opera2iei este :/
Operatoru% sau %o,ic produce ur!&toru% re.u%tatB
dac& ce% pu2in unu% din operan.i are o "a%oare di-erit& de $, re.u%tatu% este :, a%t-e%
este $/
Operatoru% )i %o,ic produce ur!&toru% re.u%tatB
dac& a!*ii operan.i sunt di-eri2i de $, re.u%tatu% este :, a%t-e% re.u%tatu% opera2iei
este $/
Eemplu
7& se scrie pro,ra!u% C care cite)te dou& nu!ere 6ntre,i de %a tastatur& )i "eri-ic&
dac& a!*e%e nu!ere sunt pare/ Dac& a!*e%e nu!ere sunt pare pro,ra!u% a-i)ea.&
!esa+u%B Vu!ere%e sunt pareB d/ In ce%e%a%te ca.uri pro,ra!u% "a a-i)aB Vu!ere%e
sunt pareB n/ <eri-icarea nu!ere%or se "a -ace -o%osind doar operatori/
-n#./'e <st'o012
&o' (an )*
+
nt a, b7
nt p1, pB7
#1ar pp7
prnt")38nPro4ra( #are &er"#a 'a#a B n/(ere ntre4 s/nt
pare3*7
prnt")38nDat B n/(ere ntre43*7
s#an")3=' ='3, Ja, Jb*7
p1= a=B R 0 : 17
pB= b=B R 0 : 17
pp= p1 JJ pB R D'D : DnD7
prnt")3A(be.e n/(ere s/nt pare: =#3, pp*7
,
3.'.2.'. *peratorii de incrementare "i decrementare.
7unt -o%osi2i pentru a aduna : sau pentru a sc&dea : %a "a%oarea unei "aria*i%e de
tip 6ntre,/ 7intaa operatori%or de incre!entare JJ, sau decre!entare 00 esteB
&arab.a!!
&arab.a--
LIMBAJUL C TEORIE I APLICAI I #1
Dac& operatoru% de incre!entare, decre!entare apare 6n ur!a nu!e%ui "aria*i%ei,
"o! spune c& opera2ia de incre!entareKdecre!entare este post-iat&/ Dac&
operatoru% de incre!entare sau decre!entare apare 6n -a2a "aria*i%ei
!!&arab.a
--&arab.a
"o! spune c& opera2ia de incre!entareKdecre!entare este pre-iat&/ Dac& opera2ia
de incre!entareKdecre!entare pre-iat& este -o%osit& 6ntr0o epresie, 6nt3i se
incre!entea.&Kdecre!entea.& "a%oarea "aria*i%ei, noua "a%oare -iind -o%osit& 6n
epresie/
Dac& opera2ia de incre!entareKdecre!entare post-iat& este -o%osit& 6ntr0o
epresie, 6nt3i se e"a%uea.& epresia cu "a%oarea "aria*i%ei
neincre!entat&Knedecre!entat& )i apoi se incre!entea.&Kdecre!entea.& "a%oarea
"aria*i%ei/
-n#./'e <st'o012
&o' (an )*
+
nt a, b7
a=:7
b=!!a7
prnt")38n9n#re(entare pre"x a==', b=='3, a, b*7
a=:7
b=a!!7
prnt")38n9n#re(entare post"x a==', b=='3, a, b*7
a=:7
b=--a7
prnt")38nDe#re(entare pre"x a==', b=='3, a, b*7
a=:7
b=a--7
prnt")38nDe#re(entare post"x a==', b=='3, a, b*7
,
Pro,ra!u% "a produce ur!&toru% re.u%tat pe ecranB
9n#re(entare pre"x a=;, b=;
9n#re(entare post"x a=;, b=:
De#re(entare pre"x a=B, b=B
De#re(entare post"x a=B, b=:
nainte de -iecare instruc2iune de tip&rire, "aria*i%a 6ntrea,& a are "a%oarea 1/
<aria*i%a a este -o%osit& 6n c3te o instruc2iune de atri*uire, ap%ic3nd asupra
"aria*i%ei operatorii de incre!entare pre-iKpost-i )i de decre!entare
pre-iKpost-i/
n toate ca.uri%e, "a%oarea "aria*i%ei a este incre!entat& sau decre!entat& de c&tre
operatori/ Dup& incre!entare, "aria*i%a a "a a"ea "a%oarea F, respecti" E dup&
decre!entare/
n epresii, -o%osind operatoru% pre-i, "aria*i%a * "a pri!i "a%oarea
incre!entat&Kdecre!entat& a "aria*i%ei a, pe c3nd -o%osind operatoru% post-i,
"aria*i%a * "a pri!i "a%oarea "aria*i%ei a neincre!entat&Knedecre!entat&/
LIMBAJUL C TEORIE I APLICAI I #F
3.'.3. Instruciunea if.
Instruc2iunea i- se -o%ose)te %a rea%i.area structuri%or a%ternati"e )i are ur!&toare%e
-or!e de scriere B
Oor!a :
" )exprese*
nstr/#t/nea 17
e.se
nstr/#t/nea B7
nstr/#t/nea :7
7e e"a%uea.& epresia din parante.e%e de dup& i- )i dac& aceast& epresie este
ade"&rat& 4are "a%oarea di-erit& de .ero5 se "a e-ectua instruc2iunea :, apoi se "a
continua pro,ra!u% cu unstruc2iunea 1 dina-ara instruc&iuni i-/ Dac& "a%oarea
epresiei din parante.e%e de dup& i- este -a%s& 4are "a%oarea .ero5 se "a e-ectua
instruc2iunea E )i se "a continua cu instruc2iunea 1/
Instruc2iuni%e : sau E pot -i instruc2iuni si!p%e sau co!puse sau c'iar o nou&
instruc2iune de tip i-, 6n acest u%ti! ca. se consider& instruc2iuni%e i- i!*ricate/
Oor!a E
se e"a%uea.& epresia )i dac& aceasta este ade"&rat&, se eecut& instruc2iunea :, iar
dac& epresia este -a%s&, se "a eecuta epresia E dina-ara instruc2iunii i-/
" )exprese*
nstr/#t/nea 17
nstr/#t/nea B7
Eemplu
7& se ca%cu%e.e ")x* =;x
B
!N pentru x<0 , ")x*=:x
B
-1 pentru x2=0/
"ezol#are
-n#./'e <#ono012 inc%uderea -i)iere%or ce con2in -unc2ii%or pentru
-n#./'e <st'o012 citirea )i a-i)area date%or/
-n#./'e <(at1012 inc%uderea -i)ieru%ui ce con2ine -unc2ii%e
!ate!atice/
&o' (an )* -unc2ia principa%&
+
".oat x,"x7 dec%ara2ii de "aria*i%e de tip rea% si!p%& preci.ie
p/ts )3Dat (ar(ea ./ x3*7 instruc2iune de ape%are a -unc2iei de a-i)are a
!esa+u%ui Dat (ar(ea ./ x
s#an" )3="3,Jx*7 instruc2iune de ape%are a -unc2iei de citire a %ui
cu -or!atu% de citire de tip intre,
" )x<0* 6nceputu% instruc2iunii " )i x<0 epresia de
condi2ionare 4deci.ie5
LIMBAJUL C TEORIE I APLICAI I ##
"x = ;*x*x!N7 dac& epresia de conditionare 4deci.ie5 este
ade"&rat&, se eecut& instruc2iunea : din cadru% %ui
i-, care este 6n acest ca. o instruc2iune de atri*uire
e.se
etic'eta ce de%i!itea.& instruc2iunea : de
instruc2iunea E a instruc2iunii i-
"x=:*x*x-17 dac& epresia de conditionare 4deci.ie5 este -a%s&,
se eecut& instruc2iunea E din cadru% %ui i-, care
este 6n acest ca. o instruc2iune de atri*uire
prnt" )3")x*=="8n3,"x*7 instruc2iunea 1, de dup& instruc2iunea i- cu ro%u%
de ape%are a -unc2iei de tip&rire cu -or!at de tip
rea% si!p%& preci.ie pentru "a%oarea "aria*i%ei "x,
8n are ro%u% s& indice trecerea %a r3nd nou
p/ts )3Apasa o tasta3*7 instruc2iune de ape%are a -unc2iei de a-i)are a
!esa+u%ui Apasa o tasta
4et#1 )*7 instruc2iune de ape%are a -unc2iei de citire a unui
caracter -&r& ecou, 6n acest ca. -o%osit& pentru
oprirea te!porar& a eecu2iei, p3n& %a ap&sarea
unei taste, co scopu% de a p&stra ecranu%
uti%i.atoru%ui pentru citirea date%or a-i)ate
,
Eemplu
n ee!p%u% de !ai +os este -o%osit& instruc2iunea i- 6n "arianta II, -&r&
-o%osirea ep%icit& a instruc2iunii E din corpu% ei/
7& se deter!ine -45IJF pentru N$, -45I
E
pentru MI$/
"ezol#are
-n#./'e <st'o012 inc%uderea -i)iere%or ce con2in -unc2ii%or pentru
-n#./'e <#ono012 citirea )i a-i)area date%or/
&o' &o' (an )*
+
".oat x,"x7
p/ts )3se #a.#/.ea5a "x =3*7
p/ts ) 3'at &a.oarea ./ x 3*7
s#an" )3="3,Jx*7 citirea "a%orii de tip rea% si!p%& preci.ie a %ui )i
dispunerea "a%orii citite %a adresa %ui
LIMBAJUL C TEORIE I APLICAI I #G
" )x<0* 6nceputu% instruc2iunii " )i x<0 epresia de
condi2ionare, dac& x<0 se "a eecuta instruc2iunea
co!pus& :, dac& nu se "a s&ri peste instruc2iunea
co!pus& : )i se continu& eecu2ia cu instruc2iunea
de dup& instruc2iunea i-
+ 6nceputu% instruc2iunii :co!puse
"x=x!;7
prnt" )3")x*=="8n3,"x*7
4oto sa.t17 sa%t necondi2ionat %a etic'eta sa%t :
, s-3r)itu% instruc2iunii co!puse :
"x=x*x7 instruc2iunea de dup& instruc2iunea i-
prnt" )3")x*==" 8n3,"x*7
sa.t1: etic'eta %a care se sare datorit& instruc2iunii ,oto
p/ts )3apasa o tasta 3*7
4et#1 )*7
,
Eemplu
7& se ca%cu%e.e aria unui cerc dac& ra.a cercu%ui este !ai !are dec3t .ero/
-n#./'e <#ono012
-n#./'e <(at1012
-n#./'e <st'o012
&o' (an )* -unc2ia principa%&
+
".oat r,a,p7 dec%ara2ii de "aria*i%e de tip rea% si!p%& preci.i,
separarea "aria*i%e%or din %ist& prin caracteru% ,
p/ts )3'at ra5a #er#/./3*7 instruc2iune de ape%are a -unc2iei de a-i)are a
)iru%ui de caractere 4!esa+u%5, da2i ra.a cercu%ui
s#an" )3="3 ,Jr*7 instruc2iune de ape%are a -unc2iei de citire cu
-or!at de tip rea% , pentru citirea datei r )i
dispunerea "a%orii citite %a adresa %ui r
" )r20* inceputu% instruc2iunii i- )i r20 epresia de
condi2ionare, dac& epresia r20 este ade"&rat& se
"a eecuta instruc2iunea co!pus& :, 6n ca. contrar
se "a continua eecu2ia cu instruc2iunea E
+ 6nceputu% instruc2iunii co!pus& :
p=:01;1<L7 instruc2iune de atri*uire
a=p*r*r7 instruc2iune de atri*uire
LIMBAJUL C TEORIE I APLICAI I #=
prnt")3ara #er#=="3,a*7instruc2iune de ape%are a -unc2iei de tip&rire
, s-3r)itu% instruc2iunii co!puse :
e.se
p/ts )HSa5a este <=0I*7 instruc2iunea E din cadru% instruc2iunii i-, de
ape%are a -unc2iei puts45, pentru a-i)area )iru%ui de
caractere dispus 6ntre du*%u apostroa-e
p/ts )3apasa o tasta3*7 instruc2iunea 1 din a-ara instruc2iunii i-, de ape%are
a -unc2iei puts45,pentru a-i)area )iru%ui de
caractere dispus 6ntre du*%u apostroa-e
4et#1)*7 instruc2iune de ape%are a -unc2iei de citire a unui
caracter, 6n ca.u% de -a2& cu ro%u% de a p&stra
ecranu% uti%i.atoru%ui p3n& %a ap&sarea unei taste
, 6nc'iderea corpu%ui -unc2iei principa%e "oid !ain
45
Eemplu
7& se ca%cu%e.e ")x*=;x
B
!N pentru x<0, ")x*=; pentru x=0, ")x*=:x
B
-1 pentru
x2=0/
"ezol#are
Pentru a ca%cu%a -45 pe ce%e 1 do!enii se "a -o%osi instruc2iunea i- de dou& ori,
una inc%us& 6n a%ta de tip i- i!*ricat, ast-e% B
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
&o' (an )*
+
".oat x,"x7
p/ts )3'at (ar(ea ./ x3*7
s#an" )3="3,Jx*7
" )x<0*
"x = ;*x*x!N7
e.se
" ) x==0* i- i!*ricat
"x=;7
e.se
"x=:*x*x-17
prnt" )3")x*=="8n3,"x*7
p/ts )3apasa o tasta3*7
4et#1 )*7
,
La eecu2ia pro,ra!u%ui, dup& citirea "a%orii ce este atri*ui& "aria*i%ei ,
instruc2iunea i- "a e"a%ua epresia x<0 / 7& consider&! c& s0a citit pentru o
"a%oare ne,ati"& I0E, dup& e"a%uarea epresiei x<0 0EN$, ade"&rat, se "a
continua eecu2ia cu instruc2iunea : a pri!u%ui i- "x = ;*x*x!N, apoi se "a
LIMBAJUL C TEORIE I APLICAI I #>
continua cu instruc2iunea 1 dina-ara instruc2iunii : i-, care "a a-i)a "a%oarea
%ui -45/ 7& consider&! c& "a%oarea citit& de %a tastatur& pentru este $, 6n
acest ca. instruc2iunea : i-, dup& e"a%uarea epresiei x<0 $N$ -a%s, ce are ca
e-ect continuarea eecu2iei cu instruc2iunea E din cadru% instruc2iunii: i-, dar
instruc2iunea E este tot o instruc2iune i-, care "a e"a%ua epresia din cadru% ei/
E"a%uarea epresiei x==0 4 indentic .ero )i nu I.ero5 re.u%t& ade"&rat )i se
eecut& instruc2iunea : din cadru% instruc2iunii E i-, -IF, se continu& cu
instruc2iunea 1 care este aceea)i cu instruc2iunea 1 de %a instruc2iunea : i-/
7& consider&! c& "a%oarea citit& pentru este 1, 6n acest ca. instruc2iunea : i-,
dup& e"a%uarea epresiei x<0 1N$ -a%s, ce are ca e-ect continuarea eecu2iei
cu instruc2iunea E din cadru% instruc2iunii: i-, dar instruc2iunea E este tot o
instruc2iune i-, care "a e"a%ua epresia din cadru% ei/
E"a%uarea epresiei x==0 :==0 4 indentic .ero )i nu I.ero5 re.u%t& -a%s )i se
eecut& instruc2iunea E din cadru% instruc2iunii E i-, "x=:*x*x-1, se continu&
cu instruc2iunea 1 care este aceea) cu instruc2iunea 1 de %a instruc2iunea : i-/
Aceste dou& instruc2iuni i- dispuse una 6n a%ta, se nu!esc instruc2iuni i-
i!*ricate/
Eemplu
7& se ca%cu%e.e x=-b/a, r&d&cina ecua2iei de -or!a ax!b=0 4dac& a este
di-erit de .ero5/ Dac& a este .ero se "a a-i)a !esa+u% ne'eter(nare dac& *
e,a% .ero se "a a-i)a !esa+u% so%utia este I$, dac& * este di-erit de .ero se "a
ca%cu%a "a%oarea %ui )i se "a a-i)a aceast& "a%oare/
"ezol#are
-n#./'e<st'o0127
-n#./'e<#ono0127
&o' (an )*
+
".oat x,a,b7
p/ts)3se #a.#/.ea5a ra'a#na e#/ate ax!b=03*7
p/ts)3'at pe a, b3*7
s#an")3=",="3,Ja,Jb*7 ape%area -unc2iei de citire de %a tastatur& cu
-or!atu% de tip re% si!p%& preci.ie a dou&
"a%ori separate prin caracteru% "ir,u%&
")a T= 0* instruc2iunea i- e"a%uea.& epresia aT= 0
4 a este di-erit de .ero5 )i dac& aceasta este
ade"&rat& se "a eecuta instruc2iunea : din
cadru% %ui i-
+ 6nceputu% corpu%ui instruc2iunii co!puse :
x=-b/a7
prnt" )3a==" b==" x==" 8n3,a,b,x*7
LIMBAJUL C TEORIE I APLICAI I #9
, ter!inarea corpu%ui instruc2iunii co!puse :
e.se
" )b==0*
p/ts )3e#/ate ne'eter(nata3*7
e.se
p/ts )3e#/ata n/ are so./te3*7
p/ts)3apasat o tasta3*7
4et#1)*7
,
Aro-leme propuse
:/ 7& se deter!ine aria unui triun,'i c3nd se dau ce%e 1 %aturiB a, *, c/ Ca ce%e 1
"a%ori date s& -or!e.e un triun,'i tre*uie s& se respecte condi2ii%eB
ce%e 1 nu!ere M $
6ntre nu!ere%e a, *, c, s& eiste re%a2ii%eB
a M *Jc
* M cJd
c M aJ*
Aria I ( )( )( ) c p b p a p p , unde p I
E
c b a + +
E/ 7& se deter!ine cantitatea de c&%dur& necesar& topirii unei cantit&2i de ,'ea2& cu
!asa m de %a te!peratura t
:
p3n& %a te!peratura t
E
/
Condi2iiB t
:
N $ )i t
E
M $
" I "
:
J "
E
J "
1
"
:
I
( ) m t c
g
:
$
"
E
I
m c
"
1
I
E
t c m
a
c
g
I c&%dura speci-ic& ,'e2ii
c I c&%dura %atent& de topire a ,'e2ii
c
a
I c&%dura speci-ic& a apei
Date de intrare B t
:
, t
E
, m
Date de ie)ire B "
1/ 7& se deter!ine a%un,irea sau scurtarea unui tirant, -o%osind -or!u%a
( ) #A l $ l K
/
unde
A I aria sec2iunii trans"ersa%e 9c!
E
;
l I %un,i!ea tirantu%ui 9c!;
# I !odu%u% de e%asticitate 9daVKc!
E
;
$ I -or2a ce ac2ionea.& 9daV; 4Dac& $ N $ co!presiune, a%t-e% 6ntindere5
Date de intrare B A, %, E, O/
LIMBAJUL C TEORIE I APLICAI I G$
Date de ie)ire B l
F/ 7& se deter!ine "a%oarea %ui O45B
( ) ( )
'
+
>
< +
: F
: :
$ 1
E
1
% %
% % %
% %
% $
Date de intrare B %
Date de ie)ire B $4%5
#/ 7& se citeasc& o "a%oare de %a tastatur& )i s& se "eri-ice dac& "a%oarea citit& este
un nu!&r/ Dac& "a%oarea este un nu!&r s& se a-i)e.e nu!&ru%, 6n ca. contrar s& se
a-i)e.e !esa+u% "a%oarea introdus& nu este un nu!&r/
G/ 7& se deter!ine so%u2ii%e % )i & a%e siste!u%uiB
a% J b& I c
d% J e& I f
7iste!u% este co!pati*i% dac&B $ d b e a
Date de intrare B a, b, c, d, e, f
Date de ie)ire B %, &
=/ 7& se ca%cu%e.e aran+a!ente de % %uate c3te &/
Date de intrare B %, &
Date de ie)ireB
&
%
A
>/ 7& se ca%cu%e.e nu!&ru% de co!*ina2ii a % %uate c3te &/
Date de intrare B %, &
Date de ie)ire B
&
%
'
Condi2ii B % M :, & N %, & M :
3.'.%. Instruciunea for.
Instruc2iunea -or se uti%i.ea.& pentru rea%i.area structuri%or cic%ice condi2ionate
anterior/ 7intaa instruc2iunii -or este B
"or )exprese17 expreseB7 exprese:*
9nstr/#t/ne s(p.a sa/ #o(p/sa7
Epresia : are ro%u% de a ini2ia%i.a "aria*i%a cic%u%ui -or, epresia E are ro%u% de a
condi2iona continuarea cic%u%ui -or, iar epresia 1 are ro%u% de a reini2ia%i.a "aria*i%a de
contor/ Instruc2iunea -or se eecut& ast-e% B
:/ se e"a%uea.& epresia : )i "a%oarea acestei epresi de"ine "a%oarea de 6nceput
a "aria*i%ei de contor din cic%u% -or/
E/ se e"a%uea.& epresia E )i dac& este ade"&rat& se eecut& instruc2iunea care
este 6n corpu% %ui -or, dac& epresia E este -a%s& se p&r&se)te cic%u% -or )i se
trece %a ur!&toarea instruc2iune/
LIMBAJUL C TEORIE I APLICAI I G:
1/ dup& eecutarea pasu%ui E se eecut& epresia 1 de !odi-icare a "a%orii
"aria*i%ei de contoar )i se reia pasu% E/
Instruc2iunea -or nu se eecut& niciodat& dac& epresia E are "a%oarea .ero de %a
6nceput/
Dac& i!ediat dup& antetu% instruc2iunii -or se pune L instruc2iunea -or "a e-ectua
instruc2iunea "id& p3n& c3nd condi2ia din epresia E este ade"&rat& a"3nd ro%u%
doar de 6nt3r.iere a e-ectu&ri pro,ra!u%ui/
Eemplu
Adunarea nu!ere%or natura%e de %a .ero %a nu!aru% n citit de %a tastatur&
s=1!B!:!;!CC0!n-1
"ezol#are
Pentru a rea%i.a aceast& su!& se "a eecuta repetat instruc2iunea co!pus& B
+
s=s!7
=!17
,
Ini2ia% sI$ )i iI$, )i se repet& instruc2iunea
+
s=s!7
=!17
,
p3n& c3nd iNn /
nsu!area se poate eecuta -o%osind instruc2iunea -or ast-e% B
s=07 =07
"or )=07<n7 =!1* Epresia: iI$ ini2ia%i.ea.& "aria*i%a contor i cu
"a%oarea $L epresiaE iNn este condi2ia de eecu2ie a
cic%u%ui -orL epresia1 iIiJ: este epresia de
reini2ia%i.are cu o unitate a "aria*i%ei contor /
s=s!7
-n#./'e <#ono012 inc%uderea -i)iere%or ce con2in -unc2ii%e de intrare
ie)ire
-n#./'e <st'o012
&o' (an )*
+
nt ,n,s7 dec%ararea "aria*i%e%or i, n, s de tip intre,
p/ts )3s =1!B!:!;!C00n-1R3*7 ape%area -unc2iei de a-i)are a )iru%ui de caractere
dispus 6ntre ,'i%i!e%e du*%e
p/ts )3'at pe n (a (ara 'e#Ut 5ero =R3*7
s#an" )3='3,Jn*7 ape%area -unc2iei de citire cu -or!at de tip
intre, a unei date de %a tastatur& )i dispunerea
"a%orii citite %a adresa %ui n
LIMBAJUL C TEORIE I APLICAI I GE
" )n<=0* condi2ionarea datei de intrare prin -o%osirea
instruc2iunii i-
p/ts )3n a "ost 'at 4rest3*7instruc2iunea : din corpu% %ui i-
e.se
+ instruc2iunea co!pus& E din corpu%
instruc2iunii i-
s=07 ini2ia%i.area su!ei cu .ero
"or )=17<n7=!1* antetu% instruc2iunii -or, prin care se
ini2ia%i.ea.& "aria*i%a de contor cu "a%oarea :,
apoi epresia de contro% a cic%u%ui -or iNn )i
epresia de reini2ia%i.are a "aria*i%ei de contor
iIiJ:
s=s!7 instruc2iunea de atri*uire pentru ca%cu%u%
su!ei sI:JEJ1J]]Jn
prnt")3s/(a = ='8n3,s*7 ape%area -unc2iei de tip&rire cu -or!at pentru
a-i)area su!ei )i sa%t %a r3nd nou prin -o%osirea
caractere%or 8n
p/ts )3apasa o tasta3*7 ape%area -unc2iei de a-i)are a )iru%ui de
caractere
4et#1 )*7 ape%area -unc2iei de citire a unui caracter de %a
tastatur&
, 6nc'iderea corpu%ui -unc2iei principa%e !ain
La pornirea pro,ra!u%ui se cite)te de %a tastatur& nu!&ru% de ter!eni n0: ai su!ei,
"a%oarea citit& este dispus& %a adresa %ui n/ 7& consider&! c& "a%oarea citit& a %ui n este
#/ <aria*i%a s este ini2ia%i.at& cu "a%oarea .ero, se ini2ia%i.ea.& "aria*i%a de contor i a
%ui -or cu "a%oarea :,
7u!a s I$J:I:,
dup& e-ectuarea pri!u%ui cic%u -or, se !&re)te "aria*i%a de contor cu o unitate datorit&
epresiei
iIiJ:,
se cuntro%ea.& dac& noua "a%oare a %ui
i IE
"eri-ic& epresia de condi2ionare
iNn/
<a%oarea %ui i este EN# ade"&rat,
se "a continua e-ectuarea instruc2iunii co!puse din interioru% %ui -or/
LIMBAJUL C TEORIE I APLICAI I G1
sIsJi re.u%t&
sI:JE
re.u%t&
sI:JE o*2in3ndu0se pri!i doi ter!eni ai su!ei s/
7e continu& cre)terea "aria*i%ei de contor cu o unitate
iI1,
se "eri-ic& condi2ia de continuare a instruc2iunii -or
iI1N# ade"&rat,
sIsJi re.u%t&
sI:JEJ1 o*2in3ndu0se pri!i trei ter!eni ai su!ei/
7e continu& cre)terea "aria*i%ei de contor cu o unitate
iIF,
se "eri-ic& condi2ia de continuare a instruc2iunii -or
iIFN# ade"&rat,
sIsJtQi re.u%t&
sI:JEJ1JF o*2in3ndu0se pri!i patru ter!eni ai su!ei/
7e continu& cre)terea "aria*i%ei de contor cu o unitate
iI#,
se "eri-ic& condi2ia de continuare a instruc2iunii -or
iI#N# -a%s,
se p&r&se)te instruc2iunea -or )i se continu& eecu2ia cu a-i)area pe !onitor a
su!ei ce%or patru ter!eni/
Eemplu
7& se rea%i.e.e pro,ra!u% ce adun& ter!eni a%ternan2i pentru s=1-B!:-C n/
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
&o' (an )*
+
nt ,n,s,t7
p/ts )H se #a.#/.ea5a s/(a s=1-B!:-;!<-C0nI*7
p/ts )3'at pe n 20=3*7
s#an" )3='3,Jn*7
" )n<=0* se e"a%uea.& epresia n<=0 )i dac& este
ade"&rat&, se a-i)ea.& !esa+u% n a "ost 'at
4rest )i se trece %a instruc2iunea de dup&
corpu% instruc)iunii i-/
p/ts )3n a "ost 'at 4rest3*7instruc2iunea : din corpu% %ui i-
e.se
+ 6nceputu% instruc2iunii co!puse E a instruc2iunii i-
s=07 ini2ia%i.area su!ei s cu "a%oarea .ero
LIMBAJUL C TEORIE I APLICAI I GF
t=-17 ini2ia%i.area ter!enu%ui tI:, -o%osit pentru
a%ternarea ter!eni%or din cadru% su!ei s
"or )=17<=n7=!1* antetu% instruc2iuni -or, ini2ia%i.area %ui i cu :,
condi2ionare iNIn, reini2ia%i.area "aria*i%ei i
cu o cre)tere I: %a -iecare cic%u parcurs
+ inceputu% corpu%ui instruc2iunii -or
t=-t7 instruc2iune de atri*uire cu scopu% a%tern&rii
se!nu%ui ter!enu%ui ce se adau,&
s=s!*t7 instruc2iune de atri*uire pentru ca%cu%u% su!ei
ter!eni%or cu se!n a%ternant
, s-3r)itu% corpu%ui instruc2iunii -or
prnt" )3s/(a = ='8n3,s*7
, s-3r)itu% instruc2iunii E a instruc2iuni i-
p/ts )3apasa o tasta3*7
4et#1 )*7
,
La pornirea pro,ra!u%ui se cite)te de %a tastatur& nu!&ru% de ter!eni ai su!ei, "a%oarea
citit& este dispus& %a adresa %ui n/ 7& consider&! c& "a%oarea citit& este #/ <aria*i%a s
este ini2ia%i.at& cu "a%oarea .ero, apoi ter!enu% t ia "a%oarea H:, se ini2ia%i.ea.&
"aria*i%a de contor i a %ui -or cu "a%oarea :, se rea%i.ea.& sc'i!*area de se!n a %ui t,
t de"ine e,a% cu :/
7u!a s I$J:Q:I:,
dup& e-ectuarea pri!u%ui cic%u -or, se !&re)te "aria*i%a de contor cu o unitate datorit&
epresiei
iIiJ:,
se contro%ea.& dac& noua "a%oare a %ui
i IE
"eri-ic& epresia de condi2ionare
iNIn/
<a%oarea %ui i este ENI# ade"&rat,
se "a continua e-ectuarea instruc2iunii co!puse din interioru% %ui -or/
tI0t
re.u%t& tI0:,
sIsJtQi re.u%t&
sI:J40:5QE
re.u%t&
sI:0E o*2in3ndu0se pri!ii doi ter!eni aisu!ei s/
7e continu& cre)terea "aria*i%ei de contor cu o unitate
iI1,
LIMBAJUL C TEORIE I APLICAI I G#
se "eri-ic& condi2ia de continuare a instruc2iunii -or
iI1NI# ade"&rat,
tI040:5I:,
sIsJtQi re.u%t&
sI:0EJ1 o*2in3ndu0se pri!ii trei ter!eni ai su!ei/
7e continu& cre)terea "aria*i%ei de contor cu o unitate
iIF,
se "eri-ic& condi2ia de continuare a instruc2iunii -or
iIFNI# ade"&rat,
tI04:5I0:,
sIsJtQi re.u%t&
sI:0EJ10F o*2in3ndu0se pri!ii patru ter!eni ai su!ei/
7e continu& cre)terea "aria*i%ei de contor cu o unitate
iI#,
se "eri-ic& condi2ia de continuare a instruc2iunii -or
iI#NI# ade"&rat,
tI040:5I:,
sIsJtQi re.u%t&
sI:0EJ10FJ# o*2in3ndu0se pri!ii cinci ter!eni ai su!ei/
7e continu& cre)terea "aria*i%ei de contor cu o unitate
iIG,
se "eri-ic& condi2ia de continuare a instruc2iunii -or
iIGNI# -a%s,
se p&r&se)te instruc2iunea -or )i se continu& eecu2ia cu a-i)area pe !onitor a
su!ei ce%or cinci ter!eni/
Eemplu
7& se a-i)e.e "a%ori%e -unc2iei -45IF
E
J1J# pe inter"a%u% HE %a JE cu pasu%
I$,:/
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
&o' (an )*
+
".oat ,x,"x7
p/ts )Hse #a.#/.ea5a ")x*=;xB!:x!< pt0 x=-B .a B #/ pas/. 001I*7
"or )x=-B7x<=B7x=x!001* antetu% instruc2iuni -or, ini2ia%i.area %ui cu
"a%oarea 0E, indentic& cu 6nceputu% inter"a%u%ui
pentru , condi2ionare NIE, %i!ita din dreapta
a inter"a%u%ui pentru , reini2ia%i.area
"aria*i%ei cu o cre)tere I$/: %a -iecare cic%u
parcurs
+ 6nceputu% instruc2iunii co!puse din corpu% %ui -or
"x=-;*x*x!:*x!<7 ca%cu%u% %ui - %a -iecare cic%u pentru
prnt" )3>)x*=="8n3,"x*7
LIMBAJUL C TEORIE I APLICAI I GG
, 6nc'iderea corpu%ui instruc2iunii co!puse )i
inc%usi" 6nc'iderea instruc2iunii -or
p/ts)3apasa o tasta3*7
4et#1 )*7
,
La eecu2ia pro,ra!u%ui se "a ini2ia%i.a "aria*i%a de contor din cic%u% -or cu "a%oarea H
E, se parcur,e instruc2iunea co!pus&, se deter!in& "a%oarea %ui - pentru I0E, se
a-i)ea.& "a%oarea ca%cu%at& pentru -, se reini2ia%i.ea.& "aria*i%a de contoar cu o
cre)tere e,a%& cu pasu% dat de epresia IJ$/: )i se "eri-ic& dac& noua "a%oare pentru
respect& condi2ia NE din epresia E a instruc2iunii -or/
La a% doi0%ea pas
I0EJ$/:I0:/9
0:/9NE ade"&rat
se reia eecu2ia instruc2iunii de atri*uire -, se continu& cic%u% -or p3n& c3nd
"a a"ea "a%oarea E, %i!ita superioar& a inter"a%u%ui de de-inire pentru /
pentru IE se ca%cu%ea.& -, se reini2ia%itea.& cu noua "a%oare
IEJ$/:IE/:
E/:NE -a%s
cic%u% -or se 6nc'ide )i se continu& pro,ra!u% cu instruc2iunea de dup&
instruc2iunea -or/
Eemplu
7& se ca%cu%e.e nb I:aEa1a ] an, unde n se cite)te de %a tastatur&, n M$/
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
&o' (an )*
+
nt n,7 dec%ararea a dou& "aria*i%e si!p%e de tip 6tre,
".oat p7 dec%ararea unei sin,ure "aria*i%e si!p%e de tip
rea% si!p%& preci.ie 4 -%oat5
p/ts )3'at n/(ar/. n=R3*7 a-i)area )iru%ui de caractere dintre @'at n/(ar/.
n=R C
s#an" )3='3,Jn*7 citirea unei date de tip 6ntre, de %a tastatur&
" )n<=0* instruc2iunea i- de condi2ionare
p/ts )3n este 4rest3*7 instruc2iunea : a instruc2iunii i-
e.se
+ 6nceputu% instruc2iuni E a instruc2iuni i-
p=17 ini2ia%i.area produsu%ui cu "a%oarea :
"or )=17<=n7=!1*
p=p*7 ca%cu%u% produsu%ui pI:aEa1a ] an
LIMBAJUL C TEORIE I APLICAI I G=
prnt")3NT==48n3,p*7 a-i)area -actoria%u%ui, -o%osind repre.entarea ca
"a%oare si!p%& preci.ie sau su* -or!a "a%oare
repre.entat& cu eponent pentru a uti%i.a opti!
spa2iu% ocupat pentru a-i)are `,
prnt")3NT==01"8n3,p*7 a-i)area -actoria%u%ui cu parte 6ntrea,& )i o sin,ur&
.eci!a%& prin contro%u% -or!atu%ui de a-i)are
=01"
, 6nc'iderea instruc2iunii E a instruc2iunii i-
p/ts)3apasa o tasta3*7
4et#1 )*7
,
Eemplu
7& se citeasc& ter!enii unui "ector )i s& se 6n!u%2easc& "ectoru% cu un sca%ar,
!&ri!ea "ectoru%ui, ter!enii "ectoru%ui c3t )i sca%aru% se citesc de %a tastatur&/
"ezol#are
\inc%ude Nconio/'M
\inc%ude Nstdio/'M
&o' (an )*
+
nt n,,V7 dec%ararea a trei "aria*i%e si!p%e de tip 6ntre,
".oat a?10@,b?10@7 dec%ararea "aria*i%e%or indeate de tip "ector cu
!&ri!ea I:$
p/ts )3'at (ar(ea &e#tor/./ n=R3*7
s#an" )3='3,Jn*7 citirea !&ri!ii "ectoru%ui
"or )=17<=n7=!1* instruc2iunea -or -o%osit& pentru citirea ter!eni%or
"ectoru%ui
+
prnt")3'at a?='@=3,*7 a-i)area nu!&ru%ui ter!enu%ui ce se cite)te
s#an" )3="3,Ja?@*7 citirea ter!enu%ui ?@ a% "ectoru%ui a
, 6nc'eierea opera2iei de citire a ter!eni%or
"ectoru%ui
p/ts)3'at (ar(ea s#a.ar/./ V=3*7
s#an" )3='3,JV*7 citirea sca%aru%ui de tip 6ntre,
"or )=17<=n7=!1* ca%cu%u% produsu%ui "ectoru%ui a cu sca%aru% V
b?@=a?@*V7
"or )=17<=n7=!1* a-i)area ce%or doi "ectori a9; )i *9;
+
prnt" )3a?='@=="8t3,,a?@*7
prnt")3b?='@=="8t3,,b?@*7
LIMBAJUL C TEORIE I APLICAI I G>
,
p/ts)3apasa o tasta3*7
4et#1 )*7
,
Un "ector a9; se caracteri.ea.& prin nu!&ru% de ter!eni )i "a%oarea -iec&rui
ter!en / Pentru a citi "a%oarea ce se atri*uie -iec&rui ter!en, este ne"oie s& se
rea%i.e.e un ,rup de instruc2iuni, care s& per!it& a-i)area nu!&ru%ui ter!enu%ui )i
citirea "a%orii ter!enu%ui/
Acest ,rup de instruc2iuni tre*ui re%uat pentru -iecare ter!en, re%uarea ,rupu%ui se
"a rea%i.a prin inter!ediu% instruc2iunii cic%ice -or/ Pri!a instruc2iune
"or )=17<=n7=!1* "a rea%i.a prin inter!ediu% instruc2iunii co!puse B
a-i)area nu!&ru%ui ter!enu%ui "ectoru%ui
citirea "a%orii ter!enu%ui "ectoru%ui
Pentru orice opera2ie asupra ter!eni%or unui "ector este necesar ape%area
instruc2iunii -or prin care s0& se parcur,& opera2ia dorit& asupra ter!eni%or
"ectoru%ui/ Ast-e% instruc2iunea a doua -or are ca scop 6n!u%2irea ter!eni%or
"ectoru%ui cu un sca%ar/ Instruc2iunea a treia -or are ca scop a-i)area ter!eni%or
"ectoru%ui a c3t )i a "ectoru%ui */
Eemplu
7& se citeasc& ter!enii unui "ector )i s& se caute dac& o "a%oare citit& de %a
tastatur& apar2ine "ectoru%ui, !ari!ea "ectoru%ui, ter!enii "ectoru%ui c3t )i
"a%oarea c&utat&, se citesc de %a tastatur&/
"ezol#are
-n#./'e <st'o012
-n#./'e <#ono012
&o' (an )*
+
".oat t,a?10@7
nt ,n7
p/ts )3se 'eter(na 'a#a o &a.oare #tta apartne &e#tor/./3*7
p/ts ) 3'at (ar(ea &e#tor/./ 3*7
s#an" )3='3,Jn*7
"or )=17<=n7!!* instruc2iunea -or pentru citirea ter!eni%or
"ectoru%ui
+
prnt" )3'at ter(en/. ='= 3,*7
s#an" )3="3,Ja?@*7
,
p/ts )3'at &a.oarea #are se #a/ta 'a#a apartne &e#tor/./3*7
s#an" )3="3,Jt*7
"or )=17<=n7!!* instruc2iunea -or pentru parcur,erea tuturor
ter!eni%or "ectoru%ui )i co!pararea -iec&rui
ter!en cu "a%oarea c&utat&
" )t==a?@* instruc2iunea de deci.ie
p/ts )3&a.oarea #a/tata apartne &e#tor/./3*7
e.se
LIMBAJUL C TEORIE I APLICAI I G9
7
p/ts )3apasa o tasta 3*7
4et#1 )*7
,
Aro-leme propuse
:/ 7& se deter!ine "a%oarea %ui sin 45 dat& de re%a2iaB
sin 45I 0
1
K1bJ
#
K#b0
=
K=b]//J40:5
n
/
EnJ:
K4EnJ:5
Date de intrare B "a%oare nu!eric& rea%& a %ui epri!at& 6n radiani
Date de ie)ire B "a%oarea %ui sin 45
E/ 7& se deter!ine "a%oarea %ui cos 45 dat& de re%a2iaB
cos 45I:0
E
KEbJ
F
KFb0
G
KGb]/J40:
n
5/
En
K4En5
Date de intrare B "a%oare nu!eric& rea%& a %ui epri!at& 6n radiani
Date de ie)ire B "a%oarea %ui cos 45
F/ 7& se a-i)e.e "ite.aI" )i spa2iu% s:I parcurs 6n -iecare secund& a unui corp 6n
c&dere %i*er& de %a 6n&%2i!ea I'/
Date de intrareB in&%2i!ea '/
Date de ie)ire ", s:/
Ti!pu% tota% de c&dere ItI g h K E "I,/t s:I,4t
E
iJ:
0t
E
i
5
Constant& ,I9/>: !Ks
E
/
#/ 7& se deter!ine "a%oarea !ai!& a ter!enu%ui unui "ector /
Date de intrareB !&ri!ea )i ter!enii "ectoru%ui
Date de ie)ireB "a%oarea !ai!& a ter!enu%ui /
G/ 7& se ca%cu%e.e CIA/a:JB/*:
A, B "ectori cu aceea)i !&ri!e
a:, *: doi sca%ari
Date de intrareB nI!&ri!ea "ectori%or
Ter!enii ce%or doi "ectori
<a%oarea ce%or doi sca%ari
Date de ie)ireB "ectoru% C/
=/ 7& se a-i)e.e "a%ori%e -unc2iei -45I,/
E
KE pentru a,* iar pasu% de cre)tere
a %ui este p/
Date de intrare a, *, p/
Date de ie)ire "a%oarea %ui -45 /
>/ 7& se deter!ine su!a sI:0E
E
J1
E
0F
E
]/n
E
Date de intrareB !&ri!ea n/
Date de ie)ireB "a%oarea su!ei s/
LIMBAJUL C TEORIE I APLICAI I =$
9/ 7& se deter!ine "a%oarea %ui e I:J:K:bJ:KE:J:K1:J]:Knb cu preci.ia cerut&
de uti%i.ator prin epsi%on/
Date de intrareB nu!&ru% de ter!eni, epsi%on/
Date de ie)ire "a%oarea %ui e/
:$/ 7& se deter!ine !edia arit!etic& )i ,eo!etric& a n nu!ere po.iti"e citite de
%a tastatur&/
MaI4n:JnEJn1J]nn5Kn
M,I
n
nn n n n /// 1 / E / :
Date de intrare nu!&ru% de nu!ere )i "a%oarea acestora/
Date de ie)ire Ma )i M,/
3.'.'. Instruciunea ,-ile.
Instruc2iunea ('i%e este -o%osit& pentru rea%i.area unei structuri cic%ice
condi2ionate anterior )i are sintaa B
W1.e )exprese 'e #on'tonare*
9nstr/#t/ne s(p.a sa/ #o(p/sa7
7e e"a%uea.& epresia dintre parante.e )i dac& aceasta este ade"&rat& se
e-ectuea.& instruc2iunea din corpu% %ui ('i%e, dup& care se trece
%a instruc2iunea ur!&toare/
Dac& epresia are "a%oare -a%s&, nu se "a eecuta instruc2iunea din corpu% %ui
('i%e )i se trece direct %a instruc2iunea ur!&toare, ast-e% instruc2iunea din
corpu% %ui ('i%e poate s& nu se eecute niciodat&/ n corpu% instruc2iunii ('i%e
poate eista o nou& instruc2iune ('i%e, 6n acest ca., se nu!esc instruc2iuni
('i%e i!*ricate/
Instruc2iunea ('i%e se poate considera ca o instruc2iune cic%ic& condi2ionat&
Anterior, de-inind o structur& repetiti"&/
Eemplu
7& se a-i)e.e "a%ori%e -unc2iei -45IF
E
J1J# HE %a JE cu pasu% I$/: pt/ /
-n#./'e <#ono012
-n#./'e <st'o012
&o' (an )*
+
".oat ,x,"x7
p/ts )Hse #a.#/.ea5a ")x*=;x
B
!:x!< pt0 x=-B .a B #/ pas/. 001I*7
x=-B7 ini2ia%i.area %ui cu "a%oarea de 6nceput a
inter"a%u%ui
W1.e ) x<=B* instruc2iunea ('i%e condi2ionea.& eecu2ia c3t
ti!p x<=B
+ 6nceputu% corpu%ui instruc2iunii ('i%e
"x=-;*x*x!:*x!<7
prnt" )3x==" >)x*=="8n3,x,"x*7
LIMBAJUL C TEORIE I APLICAI I =:
x=x!0017 !odi-icarea "aria*i%ei de condi2ionare, pentru a se
parcur,e do!eniu% %ui
, s-3r)itu% corpu%ui %ui ('i%e
p/ts)3apasa o tasta3*7
4et#1 )*7
,
:-ser#aie
Dac& "aria*i%a ce intr& 6n epresia de condi2ionare a %ui ('i%e nu se !odi-ic&
6n interioru% corpu%ui instruc2iunii ('i%e, "a re.u%ta un cic%u in-init/
n ca.u% de -a2&, 6nainte de eecu2ia instruc2iunii ('i%e, are "a%oarea HE ce
este !ai !ic& dec3t E, ast-e% epresia x<=B este ade"&rat& )i se 6ncepe
eecu2ia instruc2iunii co!puse din corpu% %ui ('i%e ast-e% B
7e ca%cu%ea.& "x=-;*x*x!:*x!<7 pentru x=-B
7e a-i)ea.& "a%oarea %ui )i -45 cu instruc2iunea
prnt" )3x==" >)x*=="8n3,x,"x*7
x=x!0017 se !odi-ic& "a%oarea %ui cu $/:/ de"ine H:/9 )i
se "eri-ic& dac& noua "a%oare a %ui respect&
condi2ionarea din epresia %ui ('i%e )i se continu&
p3n& c3nd "a%oarea %ui de"ine !ai !are dec3t E/
Eemplu
7& se a-i)e.e "a%ori%e -unc2iei tri,ono!etrice sin 45 pentru do!eniu% $ %a 1#9
de ,rade sea,esi!a%e, din ,rad 6n ,rad, cu "i.ua%i.area pa,in& cu pa,in& a
"a%ori%or/
"ezol#are
Pentru ca%cu%u% -unc2iei sin 45 se "a ape%a -unc2ia de *i*%iotec&
sn)para(etr/* din -i)ieru% !at'/' cu o*ser"a2ia c& para!etru% -unc2iei
sin4par5 tre*uie epri!at 6n radiani/ Ast-e%, se "a con"erti un,'iu% din ,rade
sea,esi!a%e 6n radiani parIQPIK:>$
Pentru a a-i)a pa,in& cu pa,in&, se "a condi2iona ca dupa -iecare "a%oare a %ui
I!odu% de E1 s& se citeasc& un caracter de %a tastatur&, cu scopu% de a opri
te!porar eecu2ia pro,ra!u%ui 6n ecranu% uti%i.atoru%ui, pentru citirea "a%ori%or
din pa,ina curent&/
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
-'e"ne P9 :01;1<QBL< de-inirea constantei PI
&o' (an )*
+
nt x7
'o/b.e sx,x17
x1=P9/180007
x=07
LIMBAJUL C TEORIE I APLICAI I =E
W1.e )x<=:<Q* condi2ionarea eecu2iei instruc2iunii ('i%e
+
sx=sn )x*x1*7 ca%cu%u% %ui s ca sin4 5, este trans-or!at 6n
radiani pentru a ape%a corect -unc2ia !ate!atic&
dou*%e sin 4"a%oare dou*%e5
prnt" )3sn ?='@==010."8n3,x,sx*7
x=x!17 !odi-icarea "a%orii %ui pentru a parcur,e
do!eniu% $ ] 1#9 ,rade
" ))x!1*=B:==0* condi2ionarea a-i)&rii !esa+u%ui )i a)teptarea
apas&rii unei taste dup& E1 de %inii a-i)ate 4dac&
restu% 6!p&r2irii %ui %a E1 este .ero, adic&
!odu%o E15
+
p/ts )3Apasat o tasta pentr/ a a"sa pa4na /r(atoare3*7
4et#1 )*7
,
, 6nc'iderea corpu%ui instruc2iunii ('i%e
p/ts)3apasa o tasta pentr/ ter(narea pro4ra(/./ 3*7
4et#1 )*7
,
Eemplu
7& se citeasc& !ai !u%te "a%ori rea%e separate prin spa2iu a%* sau Enter )i s&
se deter!ine su!a acestor "a%ori/ Ter!inarea )iru%ui de "a%ori se re%i.ea.&
prin ap&sarea unei taste %iter& sau caracteru% "ir,u%&/
"ezol#are
Datorit& -aptu%ui c& nu se cunosc nu!&ru% de "a%ori ce se "or citi, nu se poate
ap%ica instruc2iunea cic%ic& -or, se "a pune o condi2ie care s& detecte.e c3nd
"a%oarea ce se cite)te nu !ai este o "a%oare rea%&/
Ounc2ia scan- 4`-//5 returnea.& "a%oarea :, pentru o citire e-ectuat& su*
contro%u% de -or!at )i "a%oarea $ pentru ca.u% c& nu s0a e-ectuat citirea/
Instruc2iunea ('i%e "eri-ic& condi2ia ca citirea s& ai*& %oc 4"a%oarea returnat&
de -unc2ia scan- s0& -ie II:5/
-n#./'e <st'o012
-n#./'e <#ono012
&o' (an )*
+
".oat t,s7
p/ts )3Se #tes# &a.or rea.e separate prn spat/ s se a"sea5a
s/(a .or 3*7
p/ts ) 3n#1'erea sr/./ #/ #ara#ter/. &r4/.a
'at &a.or.e 3*7
s=07
LIMBAJUL C TEORIE I APLICAI I =1
W1.e )s#an" )3="3,Jt*==1* instruc2iunea ('i%e condi2ionea.& eecu2ia
instruc2iunii sIsJt, dac& -unc2ia scan- 45
returnea.& "a%oarea :/ corespun.&toare citiri unei
date rea%e ur!at& de spa2iu %i*er sau Enter/ Dac&
data citit& este un caracter a%-a sau "ir,u%&,
condi2ia %ui ('i%e nu !ai este ade"&rat&, -inc&
-unc2ia scan- "a returna "a%oarea $ 4nu s0a citit
"a%oarea5, se p&r&se)te ('i%e/
s=s!t7 instruc2iunea din corpu% %ui ('i%e , care rea%i.ea.&
su!a "a%ori%or introduse de %a tastatur&/
prnt" )3s/(a &a.or.or ntro'/se ==0:" 8n3,s*7 `/1- per!ite a-i)area
"a%ori%or rea%e cu 1 .eci!a%e
p/ts )3apasa o tasta 3*7
4et#1 )*7
,
Eemplu
7& se citeasc& ter!enii a doi "ectori de tip rea% si!p%& preci.ie, s& se
deter!ine produsu% sca%ar ai ce%or doi "ectori/
"ezol#are
7e consider& c& ter!enii pri!u%ui "ector sunt 6n a, iar ter!enii ce%ui de0a% doi%ea
"ector sunt 6n */ Datorit& -aptu%ui c& nu se cere p&strarea ter!eni%or citi2i )i
doar produsu% sca%ar, nu este necesar dec%ararea de ta*%ouri de tip "ectori/
Dac& "ectoru% a are ter!enii a:, aE, a1, ]an iar "ectoru% * are ter!enii *:, *E,
*1, ]*n , produsu% sca%ar a "ectori%or a )i * este dat de su!a
a:Q*:JaEQ*EJa1Q*1]/anQ*n/
7e "or citi perec'i de "a%ori ce repre.int& ter!enu% ai, *i, iar 6nc'iderea )iru%ui
de perec'i de "a%ori se rea%i.ea.& ca )i 6n ee!p%u% anterior, prin a tasta un
caracter %iter& sau caracteru% "ir,u%&/
-n#./'e <st'o012
-n#./'e <#ono012
&o' (an )*
+
".oat a,b,p7
nt 7 dec%ararea "aria*i%ei i de tip intre, pentru ase a-i)a
nu!&ru% ter!enu%ui care se cite)te,sau se poate
-o%osi %a indicarea nu!&ru%ui -ina% de ter!eni ai
"ectoru%uia sau "ectoru%ui *
p/ts )3Se #tes# &a.or rea.e pere#1 a ter(en.or a 'o &e#tor 3*7
p/ts ) 3 9n#1'erea sr/./ #/ #ara#ter/. &r4/.a sa/ #ara#ter
.tera3*7
LIMBAJUL C TEORIE I APLICAI I =F
p=0007
=17
prnt" )3Dat &a.oar pentr/ a?='@ s b?='@3,,*7
W1.e )s#an" )3=" ="3,Ja,Jb*==B* condi2ia de continuare a
instruc2iunii co!puse din corpu% %ui ('i%e
+
p=p!a*b7
=!17
prnt" )3Dat &a.or pentr/ a?='@ s b?='@3,,*7
,
prnt" )3Pro'/s/. s#a.ar a ter(en.or #e.or B &e#tor ==0:" 8n3,p*7
p/ts )3Apasa o tasta 3*7
4et#1 )*7
,
Aro-leme propuse
:/ 7& se rea%i.e.e un pro,ra! care s& ca%cu%e.e
F 1 O
E
+
, M$
condi2ionat de o paro%& de intrare -or!ate din E01 ci-re/
Dat& de intrareB paro%& )i
Dat& de ie)ire
O
E/ 7& se deter!ine nb pentru nN:$$ nbI:QEQ1Q//Qn
Dat& de intrareB n
Dat& de ie)ire nb
1/ 7& se citeasc& ter!eni unui "ector )i s& se deter!ine "a%oarea !ini!& a
ter!enu%ui "ectoru%ui/
Dat& de intrareB ter!eni "ectoru%ui/
Dat& de ie)ire !ini!u% din ter!eni "ectoru%ui/
3.'... Instruciunea do ,-ile.
Instruc2iunea do ('i%e este uti%i.at& pentru rea%i.area structuri%or cic%ice
condi2ionate posterior )i are sintaa B
'o
9nstr/#t/ne s(p.a sa/ #o(p/sa7
W1.e )exprese*7
Instruc2iunea se eecut& ast-e% B
:/ 7e eecut& instruc2iunea si!p%& sau co!pus& de dupo do,
E/ 7e e"a%uea.& epresia dintre parante.e%e de dup& ('i%e )i dac& aceasta este
ade"&rat&, se reia eecu2ia instruc2iunii de dup& do, dac& "a%oarea epresiei
este -a%s& se 6nc'eie instruc2iunea do0('i%e )i se continu& pro,ra!u% cu
ur!&toarea instruc2iune/
:-ser#aie
Indi-erent de "a%oarea epresiei dintre parante.e%e de dup& ('i%e, instruc2iunea din
corpu% do0('i%e se eecut& ce% pu2in odat&, de unde apare )i denu!irea de
structur& condi2ionat& posterior/
Eemplu
LIMBAJUL C TEORIE I APLICAI I =#
7& se a-i)e.e "a%ori%e -unc2iei -45IF
E
J1J# pentu inter"a%u% de %a Z %a
JE, are pasu% de cre)tere I$/:, dac& Z ME se "a ca%cu%a )i a-i)a pentru acest
Z "a%oarea -unc2iei -45, dac& ZNE se "a deter!ina -45 de %a Z, %a %i!ita
superioar& a inter"a%u%ui 4E5 /
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
&o' (an )*
+
".oat ,x,"x7
p/ts )Hse #a.#/.ea5a ")x*=;x
B
!:x!< pt0 x V .a B, 'a#a V <B, #/ pas/.
001I*7
p/ts )HDat &a.oarea 'e n#ep/t a ./ x= VI*7
s#an" )H ="I,Jx*7
'o
+ 6nceputu% corpu%ui instruc2iunii do0('i%e
"x=-;*x*x!:*x!<7
prnt" )3x==" >)x*=="8n3,x,"x*7
x=x!0017 !odi-icarea "aria*i%ei condi2ionat& de ('i%e
pentru a se ter!ina do!eniu% pt/
, s-3r)itu% corpu%ui %ui do0('i%e
W1.e )x<=B* instruc2iunea ('i%e condi2ionea.& continuarea
eecu2iei instruc2iunii co!puse din corpu% %ui do0
('i%e c3t ti!p x<=B
p/ts)3apasa o tasta3*7
4et#1 ) *7
,
Ca.u% I/ Presupune! c& s0a dat pentru IZ "a%oarea 1, 6n acest ca. se "a
ca%cu%a -45 pentru aceast& "a%oare, se "a a-i)a "a%oarea %ui )i -45, dup& care
se !a+orea.& "a%oarea %ui cu $/: )i se e"a%uea.& epresia x<=B , 1/: nu este
!ai !ic dec3t E, epresia este -a%s&, se p&r&se)te cic%u% do ('i%e/
Ca.u% II/ Presupune! c& s0a citit pentru "a%oarea $, 6n acest ca. se "a
ca%cu%a -45 pentru aceast& "a%oare, se "a a-i)a "a%oarea %ui )i -45, dup& care
se !a+orea.& "a%oarea %ui cu $/: I$J$/:I$/: )i se e"a%uea.& epresia
x<=B , este !ai !ic dec3t E, epresia este ade"&rat&, se reia ca%cu%u% %ui -45 )i
ca%cu%u% pentru noua "a%oare a %ui I$/:J$/:I$/E]p3n& c3nd are "a%oarea E,
se e-ectuea.& u%ti!u% ca%cu% )i se p&r&se)te cic%u% do ('i%e/
Eemplu
7& se deter!ine nu!&ru% !ini! de !onede )i *acnote cu care se poate p%&ti o
su!& nu!&r intre, po.iti", !onede%e -o%osite sunt B :$$, #$$, :$$$, iar
*acnote%e sunt B E$$$, :$$$$, #$$$$, :$$$$$/
"ezol#are
LIMBAJUL C TEORIE I APLICAI I =G
Ca%cu%u% 6ncepe prin a deter!ina nu!&ru% 6ntre, de *acnote cu "a%oarea
!ai!& :$$$$$ din care este rea%i.at& su!a "/
Pentru a ape%a "a%ori%e di-erite a%e !onede%or sau *acnote%or s0a -o%osit
"ectoru% !oneda cu = ter!eni, a c&ror "a%oare repre.int& "a%ori%e i!puse 6n
enun2u% pro*%e!ei/
Pentru aceasta se 6!parte su!a " %a "a%oarea *acnotei !ai!e,
9=N
n=&/(one'a ?@7
n I partea 6ntrea,& a 6!p&r2iri %a :$$$$$ care "a indica nu!&ru% de *acnote de
:$$$$$/
Pentru a deter!ina restu% 6!p&r2iri %a :$$$$$ se "a ap%ica epresia B
&=&=(one'a ?@
ast-e% noua "a%oare a %ui " con2ine !u%tip%i ai !onede%or sau *acnote%or cu
"a%ori !ai !ici de :$$$$$/
7e repet& procedeu% de !ai sus, prin !odi-icarea ter!enu%ui %a care se "a
6!p&r2ii noua su!& 4restu% de %a 6!p&r2irea cu :$$$$$5, -ind necesar
decre!entarea %ui i cu : B
=-17 re.u%t& iIG
n=&/(one'a ?L@7 re.u%t& nu!&ru% de *acnote cu "a%oarea de #$$$$
&=&=(one'a ?<@ re.u%t& restu% 6!p&r2iri %a #$$$$
Ace)ti pa)i se repet& p3n& c3nd "a%oarea restu%ui este .ero, "a%oarea su!ei
tre*uie s& -ie !u%tip%u de :$$ 4"a%oarea !ini!& a !onedei i!pus& 6n enun2u%
pro*%e!ei5/
\n#./'e <st'o012
-n#./'e <#ono012
&o' (an )*
+
.on4 &,n7 dec%arara2ii a tipu%ui intre, %on, pentru a se putea
e-ectua opera2ii pe intre,i cu "a%ori !ai !ari de
1EGF=
.on4 7
.on4 (one'a ?8@7
p/ts )3Se #a.#/.ea5a n/(ar/. 'e ba4note s (one'e pt0 o &a.oare 'ata
3*7
p/ts ) 3Dat &a.oarea ntrea4a (/.tp./ 'e 1003*7
s#an")3=.'3,J&*7 citirea unei date de tip intre, %on, `%d
(one'a ?1@=1007 atri*uirea "a%ori%or ter!eni%or "ectoru%ui !oneda
(one'a ?B@=<007
(one'a ?:@=10007
(one'a ?;@=B0007
(one'a ?<@=100007
LIMBAJUL C TEORIE I APLICAI I ==
(one'a ?L@=<00007
(one'a ?N@=1000007
=N7 ini2ia%i.area %ui i cu "a%oarea !a corespun.&toare
nu!&ru%ui ter!enu%ui !ai! a% "ectoru%ui
!oneda
'o 6nceperea cic%u%ui do ('i%e
+
n=&/(one'a ?@7
" )n* dac& "a%oarea su!ei s este !ai !ic& de :$$ sau
nu este !u%tip%u de :$$, "a re.u%ta nI$ )i nu se "a
a-i)a nu!&ru% *acnote%or sau !onede%or, datorit&
-aptu%ui c& su!a nu poate -i repre.entat& de nici o
!anod&
" )<<*
" )n==1*
" )==1*
p/ts )3O (one'a 'e 100 .e3*7
e.se
prnt" )3o (one'a a =.' .e8n3,(one'a ?@*7
e.se
" )==1*
prnt" )3=.' (one'e 'e 100.e8n3,n*7
e.se
prnt" )3=.' (one'e =.' .e8n3,n,(one'a ?@*7
e.se
" )n==1*
prnt" )3O ba#nota a =.' .e 8n3,(one'a ?@*7
e.se
prnt" )3=.' ba#note a =.' .e3,n,(one'a ?@*7
,
W1.e )&=&=(one'a ?--@*7 epresia de condi2ionare a cic%u%ui do ('i%e este
ca restu% 6!p&r2irii s& -ie di-erit de .ero )i
sup%i!entar se -ace decre!entarea cu : a "a%orii
%ui i
p/ts )3Apasa o tasta 3*7
4et#1 )*7
,
Aro-leme propuse
:/ 7& se rea%i.e.e un pro,ra! care s& a-i)e.e 1 F O
E
+ indi-erent de
"a%oarea %ui iar dac& F $ s& a-i)e.e "a%ori%e %ui
O pe acest inter"a%
cu pasu% de cre)tere a %ui
# , $
Dat& de intrareB
Dat& de ie)ireB
O
E/ 7& se citeasc& tasta ap&sat& )i dac& aceasta nu este ci-r& atunci se e-ectuea.&
pro,ra!u% de ca%cu% a %ui
O pe inter"a%u% :$ $ cu pasu% :/
LIMBAJUL C TEORIE I APLICAI I =>
: E F O
E
+ + /
Dat& de intrareB "a%oarea introdus&
Dat& de ie)ireB
O
3.'./. Instruciunea brea0.
Instruc2iunea breaV este -o%osit& 6n cadru% corpu%ui unui cic%u a% instruc2iuni%or
"or, 'o-W1.e, W1.e, sWt#1 )i %a 6nt3%nirea acestei instruc2iuni se ter!in&
eecu2ia cic%u%ui/ Eecu2ia se continu& cu instruc2iunea de dup& cic%u% 6n care s0a
6nt3%nit instruc2iunea breaV/ 7intaa instruc2iunii *reaZ este B
breaV7
Eemplu
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
&o' (an )*
+
nt ,s7
".oat n,6,x,"x7
'o
+
p/ts )3'at &a.oarea ./ x3*7
" )s#an")3="3,Jx* == 1* dac& data citit& este de tip rea%, -unc2ia scan- "a
returna "a%oarea :
breaV7 instruc2iunea breaV -or2ea.& ie)irea din cic%u% do
('i%e
p/ts )3n/ s-a #tt /n n/(ar3*7
p/ts )3se rea #trea 3*7
""./s1 )st'n*7 -unc2ia ""./s1 are ro%u% de a ,o%i re,istru% asociat
tastaturii pentru re%uarea citirii
,
W1.e )1*7
"or )6=x76<=x!<76!!*
+
"x=;*67
prnt" )3"/n#ta "x==4 8n3,"x*7
,
p/ts )3Apasa o tasta3*7
4et#1 )*7
,
3.'.1. Instruciunea continue.
Instruc2iunea continue se uti%i.ea.& 6n corpu% cic%u%ui do ('i%e, ('i%e sau -or )i
per!ite a*andonarea itera2iei/
Instruc2iunea continue 6n cadru% instruc2iuni%or ('i%e )i do ('i%e -or2ea.&
oprirea itera2iei curente, se e"a%uea.& epresia care sta*i%e)te continuarea sau
ter!inarea cic%u%ui/
LIMBAJUL C TEORIE I APLICAI I =9
n cadru% instruc2iunii -or, instruc2iunea continue -or2ea.& a*andonarea itera2iei
curente )i se eecut& pasu% de reini2ia%i.are/
Instruc2iunea continue este -o%osit& 6n cadru% instruc2iuni%or i- i!*ricate din
cadru% unui cic%u -or, do ('i%e, ('i%e/
3.'.2. &uncia e)it.
Ounc2ia eit are prototipu% B
<oid eit 4int cod5
Para!etru% de tip intre, de-ine)te starea pro,ra!u%ui %a !o!entu% ape%&rii -unc2iei eit/
<a%oarea $ a para!etru%ui indic& o ter!inare nor!a%& a eecu2iei pro,ra!u%ui/
<a%oarea di-erit& de $ a para!etru%ui indic& o ter!inare anor!a%& a pro,ra!u%ui/
La ape%u% -unc2iei eit, se "idea.& *u--ere%e -i)iere%or desc'ise 6n citire, se 6nc'id toate
-i)iere%e desc'ise )i se 6ntrerupe pro,ra!u%/
Prototipu% -unc2iei eit este 6n std%i*/' )i process/'/
-n#./'e <st'o012
-n#./'e <#ono012
-n#./'e <st'.b012
-n#./'e <pro#ess012
&o' (an )*
+
".oat a,b,p7
p/ts )3Se #tes# &a.or rea.e pere#1 3*7
prnt" )3Dat &a.oar pentr/ a s b separate prn spat/8t3*7
" )s#an" )3=" ="3,Ja,Jb*T=B*
+
p/ts )3/na sa/ a(be.e &a.or '"erte 'e &a.or rea.e3*7
ext )1*7 ape%area -unc2iei eit cu para!etru% : pentru o
ter!inare anor!a%& 4 eroare de citire a uneia sau
a!*e%e "a%ori5
,
e.se
p=a*b7
prnt" )3Pro'/s/. s#a.ar a*b= =0:" 8n3,p*7
p/ts )3Apasa o tasta 3*7
4et#1 )*7
ext )0*7 ape%area -unc2iei eit cu para!etru% $ pentru o
ter!inare nor!a%&
,
3.'.10. Instruciunea s,itc-.
Instruc2iunea sWt#1 este -o%osit& %a rea%i.area structuri%or se%ecti"e, 6n %ocu%
instruc2iuni%or i- i!*ricate/ Instruc2iunea s(itc' poate -i uti%i.at& %a rea%i.area
!eniuri%or, a%e,erea de op2iuni, )i are -or!a B
sWt#1 )exprese*
+
#ase #1:
LIMBAJUL C TEORIE I APLICAI I >$
nstr/#t/n 1
breaV7
#ase #B:
nstr/#t/n B
breaV7
#ase #::
nstr/#t/n :
breaV7
#ase #n:
nstr/#t/n n
breaV7
C
#ase 'e"a/.t:
nstr/#t/n
breaV7
,
unde #1, #B, #:, C, #n sunt constanteL nstr/#t/n1, nstr/#t/nB, C,
nstr/#t/n n sunt ,rupuri de instruc2iuni/
Eecu2ia instruc2iunii sWt#1 se -ace ast-e% B
7e e"a%uea.& expresa dintre parante.e )i se co!par& "a%oarea epresiei cu
"a%ori%e constante%or #1, #B, C, #n/
7e eecut& 4r/p/. 'e nstr/#t/n de dup& constanta # a c&rei "a%oare este
e,a%& cu "a%oarea exprese, apoi se iese din instruc2iunea sWt#10
Dac& "a%oarea exprese nu este e,a%& cu nici o constant& #1, #B, C, #n se "a
eecuta 4r/p/. 'e nstr/#t/n de dupa etic'eta 'e"a/.t0 Dac& etic'eta
'e"a/.t )i instruc2iuni%e de dup& ea %ipsesc )i "a%oarea epresiei este di-erit& de
oricare dintre constante, se iese din instruc2iunea s(itc'/
:-ser#aie
Din instruc2iunea sWt#1 poate %ipsi etic'eta 'e"a/.t )i instruc2iunea ata)at& %ui
'e"a/.t, dar tre*uie s& eiste !ini! o constant& #0
Instruc2iunea breaV este uti%i.at& dup& -iecare ,rup de instruc2iuni ata)ate
constante%or cu ro%u% de ie)ire din instruc2iunea s(itc'/
Eemplu
7& se cree.e un pro,ra! C care prin a%e,erea unei op2iuni dintr0un !eniu s&
eecute di-erite opera2ii asupra date%or de intrare a, * )i s& tip&reasc& "a%ori%e
ca%cu%e%or e-ectuate/ Op2iuni%e se indic& prin "a%ori nu!erice/
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
&o' (an )*
+
nt n7
".oat a,b,#,',e,"7
p/ts )3------------ XEN9U--------- 3*7
LIMBAJUL C TEORIE I APLICAI I >:
p/ts )3----ADUNASE====1 ----3*7
p/ts )3----SYADESE====B ----3*7
p/ts )3----9NXUET9SE==: ----3*7
p/ts )3----9XPAST9SE==; ----3*7
p/ts )3----SAD9YAE====< ----3*7
p/ts )3----9ES9SE=====L ----3*7
p/ts )3===='at &a.oarea opt/n===== 3*7
s#an" )3='3,Jn*7 se cite)te op2iunea a%eas& de uti%i.ator
" )nT=L* dac& op2iunea este !ai !ic& de G se eecut&
pro,ra!u%
+
p/ts )3'at 'o/a n/(ere3*7
s#an" )3=" ="3,Ja,Jb*7 se citesc dou& "a%ori de tip rea% 4-%oat5
sWt#1 )n* se e"a%uea.& epresia dintre 4 5 )i "a%oarea acestei
epresii trans-er& eecu2ia %a constanta ce are
"a%oarea e,a%& cu "a%oarea epresiei , de ee!p%u
dac& nIE se trans-er& eecu2ia %a case E
+
#ase 1: dac& "a%oarea %ui nI: trans-eru% eecu2iei se -ace
%a case :
#=a!b7 instruc2iunea : din ,rupu% de instruc2iuni a%e %ui
case :
prnt")3S/(a=="3,#*7 instruc2iunea E din ,rupu% de instruc2iuni a%e %ui
case :
breaV7 -or2ea.& ie)irea din instruc2iunea s(itc'
#ase B: dac& "a%oarea %ui nIE trans-eru% eecu2iei se -ace
%a case E
#=a-b7
prnt" )3D"erenta=="3,#*7
breaV7
#ase :: dac& "a%oarea %ui nI1 trans-eru% eecu2iei se -ace
%a case 1
#=a*b7
prnt" )3Pro'/s=="3,#*7
breaV7
#ase ;: dac& "a%oarea %ui nIF trans-eru% eecu2iei se -ace
%a case F
#=a/b7
prnt" )39(partre=="3,#*7
breaV7
#ase <: dac& "a%oarea %ui nI# trans-eru% eecu2iei se -ace
%a case #
#=sZrt)a*b*7
prnt" )3Sa'#a.=="3,#*7
breaV7
,
,
e.se
p/ts )3pro4ra(/. sa ter(nat3*7
p/ts )3apasat o tasta pentr/ esrea 'n pro4ra(3*7
LIMBAJUL C TEORIE I APLICAI I >E
4et#1 )*7
,
Aro-leme propuse
:/ 7& se a-i)e.e .i%e%e s&pt&!3nii 6n ro!3n& )i en,%e.& 6n -unc2ie de "a%oarea
nu!eric& din do!eniu% : %a =/
Dat& de intrareBo "a%oarea nu!eric&
Dat& de ie)ireB nu!e%e .i%ei
E/ 7& se rea%i.e.e un pro,ra! cu op2iuni nu!erice care per!iteB
:/ citirea unui "ector )i a-i)area acestuia
E/ citirea unui "ector )i 6n!u%2irea cu un sca%ar a acestui "ector
1/ citirea a doi "ectori )i adunarea acestora
F/ citirea a doi "ectori )i sc&derea acestora
#/ ie)ire/
3.'.11. Instruciunea goto.
Instruc2iunea 4oto se uti%i.ea.& pentru a indica ie)irea din !ai !u%te instruc2iuni
" i!*ricate sau din !ai !u%te instruc2iuni "or )i trans-eru% eecu2iei %a
instruc2iunea de dup& et#1eta indicat& de instruc2iunea 4oto/
Et#1eta este un nu!e ur!at de caracteru% : 4dou& puncte5, n/(e.e repre.int&
c'iar denu!irea etic'etei/ Etic'ete%e se -o%osesc 6n interioru% corpu%ui -unc2iei 6n
care este ape%at& instruc2iunea 4oto / 7intaa instruc2iunii 4oto este B
4oto n/(e7
C
n/(e:
C
Instruc2iunea 4oto poate -ace sa%t nu!ai %a o etic'et& ur!at& de o instruc2iune ce
se a-%& 6n corpu% -unc2iei din care -ace parte )i ea/
Eemplu
7& se ca%cu%e.e -unc2ia ")x* =;x/)x-B*, pentru # "a%ori cresc&toare a%e %ui cu
:, "a%oarea %ui este citit& de %a tastatur&, dac& "a%oarea epresiei x-B=0, se "a
ie)i din cic%u% -or )i se "a a-i)a !esa+u% '&5are prn 5ero0
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
&o' (an )*
+
nt ,s7
".oat n,6,x,"x7
p/ts )3se 'eter(na ")x*=);x*/)x-B* 'a#a x-B n/ este e4a. #/ 5ero3*7
p/ts )3'at &a.oarea 'e n#ep/t a ./ x 3*7
s#an" )3="3,Jx*7
"or )6=x76<=x!<76!!*
+
" )6-B == 0*
4oto eroare7 sa%t %a instruc2iunea de dup& etic'eta eroare
LIMBAJUL C TEORIE I APLICAI I >1
e.se
"x=);*6*/)6-B*7
prnt" )3x= =" "/n#ta "x==4 8n3,x,"x*7
,
4oto s"rst7 sa%t %a instruc2iunea de dup& etic'eta s-irsit
eroare: etic'eta eroare
p/ts )3'&5are prn 5ero3*7
s"rst: etic'eta s-irsit
p/ts )3Apasa o tasta3*7
4et#1 )*7
,
3... Apelul prin #aloare "i apelul prin referin al unei funcii.
O -unc2ie are ur!&toarea structur& B
TpA'eA'ata N/(e)Esta 'e#.arat.or para(etr.or "or(a.*
+
De#.arat7
9nstr/#t/n7
,
La ape%u% unei -unc2ii, -iec&rui para!etru -or!a% i se atri*uie "a%oarea
para!etru%ui e-ecti" corespun.&tor )i 6n acest ca. se consider& c& ape%u% -unc2iei
se -ace prin #aloare/
Ounc2ia 6n acest ca. nu "a !odi-ica "a%oarea para!etru%ui e-ecti"/
Dac& se dore)te ca -unc2ia ape%at& s& !odi-ice "a%oarea para!etru%ui e-ecti" se "a
-o%osi ape%u% prin referin ce se rea%i.ea.& prin -o%osirea ca para!etru e-ecti"
nu!e%e unui ta*%ou iar dac& para!etru% e-ecti" este o "aria*i%& si!p%& se "or -o%osi
pointeri/ De ee!p%uB
nt n, 6, a?10@7
C
>/n#ta1 )n, 6, a*7
C
La ape%area -unc2iei >/n#ta1 para!etri e-ecti"i n )i 6 sunt de tipu% para!etri
ape%a2i prin #aloare, >/n#ta1 nu poate !odi-ica "a%oarea acestora, dar
para!etru% a este de tip ta*%ou )i 6n acest ca. ape%u% para!etru%ui se -ace prin
referin, ce per!ite -unc2iei >/n#ta1 s& !odi-ice "a%oarea ter!eni%or ta*%ou%ui
a?10@/
3./. *peraii asupra #ectorilor.
n !a+oritatea pro*%e!e%or te'nice de pre%ucrare a date%or de intrare, ie)ire
4presiune, te!peratur&, de*it, "ite.e, !ase, caracteristici ,eo!etrice, etc/5 este
necesar dispunerea %or 6n ta*%ouri cu una sau dou& di!ensiuni/
Pentru citirea, pre%ucrarea, a-i)area acestor ta*%ouri se "or rea%i.a -unc2ii speci-ice
opera2iei dorite de tip B
Citirea unui "ector/
Opera2ii asupra unuia sau !ai !u%tor "ectori/
LIMBAJUL C TEORIE I APLICAI I >F
A-i)area unui "ector/
Citirea unui ta*%ou cu dou& di!ensiuni 4!atrice5/
Opera2ii asupra unuia sau !ai !u%tor ta*%ouri cu dou& di!ensiuni/
A-i)area unui ta*%ou cu dou& di!ensiuni/
Pentru 6n2e%e,erea a%,orit!u%ui se "or -o%osi dou& "ariante ast-e% B Pri!a "a -o%osi
toate instruc2iuni%e necesare 6ntr0un sin,ur -i)ier surs&, a doua "a -o%osi -unc2ii
speci-ice scrise 6n -i)iere separate de -i)ieru% surs&/
Eemplu
7& se scrie un pro,ra! care cite)te ter!enii unui "ector, a-i)ea.& ter!enii
"ectoru%ui/ Citirea !&ri!ii "ectoru%ui c3t )i a ter!eni%or "ectoru%ui se e-ectuea.&
de %a tastatur&/
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
(an) *
+
nt n,7 "aria*i%a n pentru !&ri!ea "ectoru%ui, "aria*i%a
pentru contor
'o/b.e a?10@7 "aria*i%a indeat& a unui ta*%ou cu o di!ensiune
!ai!& de :$ ter!eni 9:$;
p/ts )3'at (ar(ea &e#tor/./ n=R3*7
s#an" )3='3,Jn*7 citirea !&ri!ii "ectoru%ui
Pentru a citi ter!enii unui "ector se "a -o%osi un cic%u -or cu "aria*i%a de contor de %a
: %a n cu pasu% :, %a -iecare pas se "a a-i)a denu!irea ter!enu%ui ce se cite)te )i apoi se
cite)te data de intrare a c&rei "a%oare este depo.itat& %a adresa "aria*i%ei indeate a?@
"or )=17<=n7=!1* cic%u% "or de citire a% "ectoru%ui a?@
+ inceputu% instruc2iunii co!puse
prnt")3'at a?='@=3,*7 !esa+ de indicare a ter!enu%ui ce se cite)te
s#an" )3=."3,Ja?@*7 citirea datei de intrare de tip rea% 4dou*%e 5
care se atri*uie ter!enu%ui ?@
, s-3r)itu% instruc2iunii co!puse )i a cic%u%ui
-or
"or )=17<=n7=!1* cic%u% "or de a-i)are a "ectoru%ui a?@
prnt" )3a?='@==."8t3,,a?@*7 ape%area -unc2iei de a-i)are cu -or!at a
"aria*i%e%or , a?@ )i %a -iecare ape%are a
-unc2iei de a-i)are se dep%asea.& po.i2ia
cursoru%ui cu un ta*u%ator 4spa2iu de >
caractere5 Ut
p/ts)3apasa o tasta3*7
4et#1 )*7
,
Pentru re.o%"area ace%ea)i pro*%e!e se pot -o%osi dou& -unc2ii #t& )i tp&, care
au a"anta+u% c& pot -i uti%i.ate 6n toate -i)iere%e care necesit& opera2ii de citire sau
LIMBAJUL C TEORIE I APLICAI I >#
de a-i)are a unui "ector/ Ounc2ia #t& are doi para!etrii -or!a%i B n de tip
"aria*i%& si!p%& )i a?10@ de tip "aria*i%& indeat&, ast-e%, ape%u% para!etru%ui n se
-ace prin "a%oare iar ape%u% para!etru%ui a?10@ se -ace prin re-erin2&/
>ser: #t&0#
#t& )nt n, 'o/b.e a?:0@* antetu% -unc2iei #t&, ce con2ine tipu% -unc2iei
prin %ips& 6ntre,, denu!irea -unc2iei #t&, para!etrii -or!a%i ai -unc2iei n de tip
6ntre, )i a?10@ )ta*%ou%5 de tip dou*%e
+ 6nceputu% corpu%ui -unc2iei cit"
nt 7 "aria*i%& %oca%& de tip 6ntre, -o%osit& 6n cadru%
-unc2iei cit"
'o/b.e t7 "aria*i%& %oca%& de tip dou*%e -o%osit& 6n cadru%
-unc2iei cit"
"or )=17<=n7!!* cic%u% -or pentru citirea date%or de %a tastatur& )i
trans-erarea acestora 6n ta*%ou% a9:$;
+
prnt" )3Dat e.e(ent/. =' =3,*7
s#an" )3=."3,Jt*7
a?@=t7
, 6nc'iderea cic%u%ui -or
p/ts )3S-a #tt &e#tor/.3*7
, 6nc'iderea corpu%ui -unc2iei cit"
Pentru a-i)area e%e!ente%or unui "ector s0a rea%i.at -unc2ia tip" ast-e%B
>ser tp&0#
tp& )nt n, 'o/b.e a?:0@* antetu% -unc2iei tp&, ce con2ine tipu% de dat& a%
-unc2iei prin %ips& 6ntre,, denu!irea -unc2iei
tp&, para!etri -or!a%i ai -unc2iei B n de tip
6ntre, )i a?10@ ta*%ou de tip dou*%e
+ 6nceputu% corpu%ui -unc2iei tip"
nt 7 "aria*i%& %oca%& de tip 6ntre, -o%osit& 6n cadru% -unc2iei tip"
"or )=17<=n7!!* cic%u% -or pentru a-i)area "ectoru%ui a?@
prnt" )3 =."8t 3,a?@*7
p/ts )38n3*7
, 6nc'iderea corpu%ui -unc2iei tip"
n -i)ieru% de !ai +os se pre.int& -o%osirea -unc2ii%or #t& )i tp& sa%"ate 6n dou& -i)iere
cit"/c )i tip"/c/
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
-n#./'e H#t&0#I inc%uderea -i)ieru%ui #t&0# care con2ine -unc2ia
cit# creat& anterior de c&tre uti%i.ator
-n#./'e Htp&0#I inc%uderea -i)ieru%ui tp&0# care con2ine -unc2ia
tip# creat& anterior de c&tre uti%i.ator
LIMBAJUL C TEORIE I APLICAI I >G
&o' (an )*
+
nt n7
'o/b.e b?10@7 "aria*i%a indeat& a unui ta*%ou cu di!ensiunea
!ai!& de :$ ter!eni 9:$;
p/ts )3'at (ar(ea &e#tor/./ n=R3*7
s#an" )3='3,Jn*7 citirea !&ri!ii "ectoru%ui
#t& )n, b*7 ape%area -unc2iei de citire a unui "ector, para!etrii
e-ecti"i sunt n )i b, ce sunt trans-era2i -unc2iei, %a
re"enirea din -unc2ia cit" 6n para!etru% * de tip
ta*%ou prin re-erin2& se ,&sesc ter!enii citi2i ai
"ectoru%ui a 6n -unc2ia cit"/
tp& )n,b*7 ape%area -unc2iei de a-i)are a unui "ector,
para!etrii e-ecti"i sunt n )i "ectoru% b/
p/ts)3apasa o tasta3*7
4et#1 )*7
,
:-ser#aie
Oi)ieru% surs& este !u%t !ai scurt dec3t -i)ieru% ce e-ectuea.& opera2ii%e de citire,
a-i)are, 6n interioru% -i)ieru%ui/ n p%us, -unc2ii%e ape%ate pot -i uti%i.ate de to2i
uti%i.atorii care inc%ud -i)iere%e ce con2in -unc2ii%e dorite/ n ee!p%e%e ce ur!ea.&
se "or -o%osi -unc2ii speci-ice opera2ii%or dorite, ast-e% pro,ra!e%e "or con2ine c3t
!ai !u%te ape%&ri de -unc2ii/
Eemplu
7& se adune ter!enii unui "ector )i s& se a-i)e.e "ectoru% precu! )i su!a
ter!eni%or/ M&ri!ea "ectoru%ui, ter!enii "ectoru%ui se citesc de %a tastatur&/
"ezol#are
7e "a crea o -unc2ie s/(& care adun& ter!enii unui "ector/ Ounc2ia s/(& "a -i
sa%"at& 6n -i)ieru% s/(&0#/ Pentru citirea ter!eni%or "ectoru%ui )i a-i)area
"ectoru%ui se "or -o%osi -unc2ii%e #t&, tp&/
Oi)ieru% s/(&0# ce con2ine -unc2ia s/(& este
".oat s/(& )nt n, 'o/b.e a?10@* antetu% -unc2iei s/(&, ce con2ine tipu%
-%oat a% -unc2iei, denu!irea -unc2iei
s/(&, para!etrii -or!a%i ai -unc2iei B n
de tip 6ntre, )i a?10@ ta*%ou de tip
dou*%e
+ 6nceputu% corpu%ui -unc2iei su!"
nt 7 "aria*i%& %oca%& de tip 6ntre,
'o/b.e s7 "aria*i%& %oca%& de tip dou*%e -o%osit& 6n
cadru% -unc2iei s/(&
s=07 ini2ia%i.area su!ei cu "a%oarea .ero
"or )=17<=n7!!* cic%u% -or pentru ca%cu%u% su!ei
ter!eni%or "ectoru%ui
s=s!a?@7
LIMBAJUL C TEORIE I APLICAI I >=
ret/rn )s57 instruc2iunea de returnare a "a%orii %ui s
6n -unc2ia din care a -ost ape%at& -unc2ia
s/(&
, 6nc'iderea corpu%ui -unc2iei s/(&
Oi)ieru% surs& a% pro,ra!u%ui principa% "a -i
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e <(at1012
-n#./'e H#t&0#I inc%uderea -i)ieru%ui #t&0# care con2ine -unc2ia
#t&
-n#./'e Htp&0#I inc%uderea -i)ieru%ui tp&0# care con2ine -unc2ia
tp&
-n#./'e Hs/(&0#I inc%uderea -i)ieru%ui s/(&0# care con2ine -unc2ia
s/(&
&o' (an )*
+
nt n7
'o/b.e b?10@, s7 "aria*i%a indeat& a unui ta*%ou cu di!ensiunea
!ai!& de :$ ter!eni 9:$; )i "aria*i%a si!p%& s
6n care se "a depo.ita "a%oarea su!ei ter!eni%or
"ectoru%ui
p/ts )3'at (ar(ea &e#tor/./ n=R3*7
s#an" )3='3,Jn*7
#t& )n,b* 7 ape%area -unc2iei de citire a unui "ector
s= s/(& )n,b*7 ape%area -unc2iei s/(& care returnea.& o "a%oare
de tip -%oat, pe care o atri*uie "aria*i%ei s
tp& )n,b*7 ape%area -unc2iei de a-i)are a unui "ector
prnt" )Hs/(a ter(en.or &e#tor/./ ==." 8nI,s*7
p/ts)3apasa o tasta3*7
4et#1 )*7
,
Eemplu
7& se deter!ine nu!&ru% de .i%e cu te!peraturi%e su* .ero, nu!&ru% de .i%e cu
te!peratura de .ero ,rade )i nu!&ru% de .i%e cu te!peratura peste .ero ,rade/
Te!peraturi%e .i%e%or sunt citite pe un inter"a% de !ai! 1$ .i%e, introducerea
date%or -&c3ndu0se de %a tastatur&/
"ezol#are
Oi)ieru% surs& a% pro,ra!u%ui principa%
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e H#t&0#I inc%uderea -i)ieru%ui #t&0# care con2ine -unc2ia
#t&
&o' (an )*
+
nt n, 7
'o/b.e b?:0@7
LIMBAJUL C TEORIE I APLICAI I >>
nt po5, ne4, n/.7
p/ts )3'at n/(ar/. 'e 5.e pt0 #are s-a #tt te(perat/ra n=R3*7
s#an" )3='3,Jn*7
po5=07
n/.=07
ne4=07
p/ts )3'at te(perat/ra 5.e.or 8n3*7
#t& )n,b* 7 ape%area -unc2iei de citire a unui "ector #t&
"or )=17<=n7!!*
" )b?@?6@<0*
ne4=ne4!17
e.se
")b?@?6@==0*
n/.=n/.!17
e.se
po5=po5!17
prnt" )35.e #/ te(perat/r po5t&e= ='8n3,po5*7
prnt" )35.e #/ te(perat/r ne4at&e= ='8n3,ne4*7
prnt" )35.e #/ te(perat/ra 'e 5ero = ='8n3,n/.*7
p/ts )38n apasa o tasta3*7
4et#1 )*7
,
Pentru pro*%e!a anterioar& se poate e-ectua o -unc2ie ,enera%& care poate
deter!ina nu!&ru% de ter!eni ne,ati"i, nu%i )i po.iti"i dintr0un "ector citit/
A"3nd 6n "edere c& o -unc2ie poate returna o sin,ur& "a%oare iar 6n acest ca. este
necesar& returnarea a 1 "a%ori, se "a -o%osi un ta*%ou #?:@ cu 1 ter!eni/ Ounc2ia care
-ace acest %ucru este n/(ter(& )i "a -i sa%"at& 6n -i)ieru% n/(ter(&0#0
n/(ter(& ) nt n, 'o/b.e a?:0@, 'o/b.e #?:@*
+
nt po5,ne4,n/., 7 dec%arare de "aria*i%e %oca%e uti%i.ate de -unc2ie
po5=07 ini2ia%i.area cu "a%oarea $ a "aria*i%e%or -o%osite ca
)i contor
n/.=07
ne4=07
"or )=17<=n7!!* cic%u% -or de parcur,ere a tuturor ter!eni%or
"ectoru%ui
" )a?@?6@<0* deter!inarea ter!eni%or ne,ati"i
ne4=ne4!17 ad&u,area unei unit&2i %a contoru% ne,
e.se
")a?@?6@==0* deter!inarea ter!eni%or nu%i
n/.=n/.!17 ad&u,area unei unit&2i %a contoru% nu%
e.se
po5=po5!17 ad&u,area unei unit&2i %a contoru% po5
#?0@=po57 trans-eru% "a%ori%or contoare%or 6n "ectoru% #
#?1@=n/.7
#?B@=ne47
, 6nc'iderea corpu%ui -unc2iei
Oi)ieru% surs& ce inc%ude -unc2ia n/(ter(& "a -i/
-n#./'e <#ono012
-n#./'e <st'o012
LIMBAJUL C TEORIE I APLICAI I >9
-n#./'e H#t&0#I inc%uderea -i)ieru%ui #t&0# care con2ine -unc2ia
#t&
-n#./'e Hn/(ter(&0#I inc%uderea -i)ieru%ui n/(ter(&0# care con2ine
-unc2ia n/(ter(& ce deter!in& ter!enii po.iti"i,
nu%i, ne,ati"i dintr0un "ector
&o' (an )*
+
nt n, ,#?:@7
'o/b.e b?:0@7
p/ts )3'at n/(ar/. 'e 5.e pt0 #are s-a #tt te(perat/ra n=R 3*7
s#an" )3='3,Jn*7
p/ts )3'at te(perat/ra 5.e.or 8n3*7
#t& )n,b* 7 ape%area -unc2iei de citire a unui "ector
n/(ter(& )n,b,#*7 ape%area -unc2iei de deter!inare a ter!eni%or po.,
nu%i, ne,/
prnt" )35.e #/ te(perat/r po5t&e= ='8n3,#?0@ *7
prnt" )35.e #/ te(perat/r ne4at&e= ='8n3,#?B@ *7
prnt" )35.e #/ te(perat/ra 'e 5ero = ='8n3,#?1@ *7
p/ts )38n apasa o tasta3*7
4et#1 )*7
,
Eemplu
7& se deter!ine "a%oarea !ini!& a presiunii apei 6n circuitu% de a%i!entare cu ap&
a% ora)u%ui/ <a%oarea presiunii este dat& din or& 6n or& pe durata a EF ore/
Pentru a deter!ina "a%oarea !ini!& a presiunii, se "or citi 6n ce%e EF de ore, EF de
"a%ori 6ntr0un "ector * )i apoi se "a ape%a -unc2ia (n&, care "a returna "a%oarea
!ini!& a presiunii apei din circuitu% ora)u%ui/ Dac& "a%ori%e presiunii sunt
trans-erate auto!at printr0un siste! de ac'i.i2ii de date intr0un -i)ier, date%e "or -i
citite cu o -unc2ie specia%& din -i)ier, apoi se "a ap%ica -unc2ia (n& asupra acestor
date/
"ezol#are
A%,orit!u% -unc2iei (n& cons& 6n a a%e,e o "aria*i%& %oca%& (n, care ini2ia% este
e,a%& cu pri!u% ter!en a "ectoru%ui ce se pre%ucrea.&, apoi se co!par& aceast&
"aria*i%& (n pe r3nd cu ter!enii "ectoru%ui/ Dac& (n este !ai !ic dec3t
ter!enu% ana%i.at, "a%oarea "aria*i%ei (n r&!3ne ne!odi-icat&, dac& "a%oarea
"aria*i%ei (n este !ai !are dec3t ter!enu% ana%i.at, "aria*i%ei (n i se atri*uie
"a%oarea ace%ui ter!en/ Parcur,3nd to2i ter!enii "ectoru%ui, 6n -ina% "aria*i%a (n
"a con2ine "a%oarea ce%ui !ai !ic ter!en a% "ectoru%ui/ Ounc2ia (n& "a -i sa%"at&
6n -i)ieru% !in"/c/
'o/b.e (n&)nt n, 'o/b.e a?:0@* antetu% -unc2iei !in" ce are ca para!etrii
-or!a%iB n Inu!&ru% de ter!eni ai "ectoru%ui
)i a91$; "ectoru% ce preia ter!enii "ectoru%ui
LIMBAJUL C TEORIE I APLICAI I 9$
citit 6n cadru% pro,ra!u%ui principa% 4trans-er
prin re-erin2&5/ Ounc2ia returnea.& spre
-unc2ia ape%ant& o "a%oare de tip dou*%e/
+ 6nceputu% corpu%ui -unc2iei !in",
nt 7 "aria*i%& %oca%& pentru cic%u% -or,
'o/b.e (n7 "aria*i%& %oca%& -o%osit& %a pre%ucrarea ter!eni%or
"ectoru%ui
(n=a?1@7 ini2ia%i.area %ui !in cu "a%oarea pri!u%ui ter!en
a% "ectoru%ui
"or )=17<=n7=!1* cic%u% de co!parare a %ui !in cu toti ter!eni
"ectoru%ui
" )(n<=a?@* condi2ia de contro% a "a%orii %ui !in/
7 dac& !in este !ai !ic sau e,a% cu ter!enu%
curent, "a%oarea %ui !in nu se !odi-ic&
e.se
(n=a?@7 atri*uirea %ui !in a "a%orii ter!enu%ui !ai !ic
dec3t !in
ret/rn )(n*7 returnarea "a%orii %ui !in spre -unc2ia ape%ant&
, 6nc'iderea corpu%ui -unc2iei !in"
Pro,ra!u% principa% ce ape%ea.& -unc2ia !in"/
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e H#t&0#I inc%uderea -i)ieru%ui #t&0# care con2ine -unc2ia
#t&
-n#./'e H(n&0#I inc%uderea -i)ieru%ui (n&0# care con2ine -unc2ia
(n& ce deter!in& "a%oarea !ini!& a ter!eni%or
unui "ector
&o' (an )*
+
nt n, b?:0@7
'o/b.e (n7
p/ts )3'at n/(ar/. 'e ore pt0 #are s-a #tt pres/nea n=R3*7
s#an" )3='3,Jn*7
p/ts )3'at pres/nea .a ora n'#ata prn n/(ar/. e.e(ent/./8n3*7
#t& )n,b* 7 ape%area -unc2iei de citire a unui "ector
(n=(n& )n,b*7 ape%area -unc2iei de deter!inare a "a%orii !ini!e
a ter!eni%or/
prnt" )3pres/nea (n(a [n B; ore= =."8n3, (n*7
p/ts )38n apasa o tasta 3*7
4et#1 )*7
,
Eemplu
7& se deter!ine nu!&ru% de apari2ii a%e unui nu!&r din inter"a%u% : %a F# %a
tra,eri%e %oto din !ini! E etra,eri/ Vu!&ru% de nu!ere asupra c&rora se -ace
studiu% este !ai! :$$ )i aceste nu!ere sunt introduse de %a tastatur&/ Vu!&ru% a
c&rui apari2ie se dore)te, este cerut de -unc2ia stat#1, iar citirea nu!ere%or
LIMBAJUL C TEORIE I APLICAI I 9:
etrase se -ace cu -unc2ia #t&nt pentru nu!ere 6ntre,i/ Ounc2ia stat#1 "a -i
sa%"at& 6n -i)ieru% stat#10#0
nt stat#1)nt n, nt b?100@* -unc2ia de tip intre, cu doi para!etrii de tip int
+ 6nceputu% corpu%ui -unc2iei
nt ,V, sta7
p/ts )3'at n/(ar/. #a/tat pt 'eter(narea apart.or3*7
s#an" )3='3,Jsta*7
V=07
"or )=17<=n7=!1*
" )sta == b?@*
V=V!17
e.se
7
ret/rn )V*7 -unc2ia "a returna "a%oarea 6ntrea,& a nu!&ru%ui
de apari2ii a%e nu!&ru%ui c&utat
,
Ounc2ia #t&nt "a -i sa%"at& 6n -i)ieru% #t&nt0#0
#t&nt )nt n, nt a?100@*
+
nt 7
"or )=17<=n7!!*
+
prnt" )3Dat e.e(ent/. =' =3,*7
s#an" )3='3,Ja?@*7
,
p/ts )3S-a #tt &e#tor/.3*7
,
Ounc2ia s"rst "a -i sa%"at& 6n -i)ieru% s"rst0#0
&o' s"rst )* -unc2ia nu returnea.& "a%oare )i nu are para!etrii/
+
p/ts )38n Apasa o taasta3*7
4et#1 )*7
,
Pro,ra!u% principa% stats#1 "a -i sa%"at 6n -i)ieru% stats#10# care "a ape%a
-unc2ii%e de citire a%e unui "ector cu ter!eni 6ntre,i, apoi "a ape%a -unc2ia de
deter!inare a apari2ii%or unei "a%ori 6n cadru% "ectoru%ui, iar 6nc'iderea
pro,ra!u%ui se -ace prin ape%area -unc2iei s-irsit/
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e 3#t&nt0#3
-n#./'e 3stat#10#3
-n#./'e 3s"rst0#3
&o' (an )*
+
nt n,V, a?100@7
p/ts )3'at (ar(ea &e#tor/./ ) n/(ar/. 'e &a.or * n=R3*7
s#an" )3='3,Jn*7
#t&nt )n,a*7 ape%area -unc2iei de citire a unui "ector cu "a%ori
intre,i
LIMBAJUL C TEORIE I APLICAI I 9E
V=stat#1 )n,a *7 ape%area -unc2iei de c&utare a nu!&ru%ui de
apari2ii a%e unei "a%ori
prnt" )3n/(ar/. 'e apart este =='8n3,V*7
s"rst )*7 ape%area -unc2iei s-irsit
,
Aro-leme propuse
O*ser"a2ieB %a re.o%"area pro*%e!e%or propuse se "or -o%osi -unc2ii%e deduse %a
capito%e%e anterioare sau se "or rea%i.a noi -unc2ii de u. ,enera%/
:/ 7& se citeasc& un "ector cu ter!enii de tip intre, )i se
deter!ine dac& acest "ector con2ine un nu!ar dat )i ce po.i2ie ocup& acest nu!&r/
Date intrareB nI!&ri!ea "ectoru%ui
Ai Iter!enii "ectoru%ui AInu!&ru% c&utat
Date ie)ire B po.i2ia ocupat& de nu!&ru% A
E/ 7& se citeasc& un "ector cu ter!enii de tip intre, )i s& se ordone.e 6n sens
cresc&tor ter!enii "ectoru%ui/
Date de intrare B n, a
i
Date de ie)ire B *
i
"ectoru% cu ter!enii ordona2i/
1/ 7& se citeasc& doi "ectori cu !&ri!ea n cu ter!enii de tip 6ntre, )i s& se
deter!ine "ectoru% c
i
care con2ine ter!eni "ectoru%ui ai )i ter!enii neco!uni
dintre a
i
)i *
i
/
Date de intrareB nI!&ri!ea ce%or doi "ectori a
i
, *
i
Iter!eni "ectori%or ai, *i
Date de ie)ire B "ectoru% c
i
/
F/ 7& se deter!ine ter!enu% cu "a%oare !ai!& dintr0un "ector citit de %a tastatur&/
Date de intrare B n, a
i
Date de ie)ire B !a 4a
i
5/
#/ 7& se ca%cu%e.e CIA
:
aa
:
JA
E
aa
E
J] A
!
aa
!
/
Date de intrare B a
:
, a
E
, a
1
, ], a
!
"a%ori a%e unor sca%ari citi2i de %a tastatur&
A
:
, A
E
, ] , A
n
"ectori de tip dou*%e de !&ri!e n citi2i de %a tastatur&
<a%oarea ! Inu!&ru% de "ectori
Date de ie)ire B C I
m
i
ai Ai
:
G/ 7& se co!pare "a%ori%e te!peraturii de %i"rare a apei ca%de pe o perioad& de EF
ore, 4citiri%e te!peraturii s0au -&cut 6n -iecare or&5 )i s& se co!pare aceste
te!peraturi cu o "a%oare %i!it& in-erioar& dat& de %a tastatur&/ Dac& "a%ori%e
te!peraturi%or citite sunt su* "a%oarea de te!peratur& %i!it&, s& se a-i)e.e aceste
"a%ori )i nu!&ru% %or/
Date de intrare B "a%ori%e te!peraturii 6n EF ore, "a%oarea te!peraturii %i!it&
Date de ie)ire B nu!&ru% de "a%ori su* te!peratura %i!it&, )i aceste "a%ori/
LIMBAJUL C TEORIE I APLICAI I 91
=/ 7& se citeasc& 6ntr0un "ector -rec"en2a curentu%ui tri-a.ic din or& 6n or& )i s& se
deter!ine dac& aceast& -rec"en2& este 6n a-ara do!eniu%ui de -unc2ionare nor!a%&
dat& de inter"a%u% F9/9Y. %a #$/:Y./
Date de intrare B "a%oarea -rec"en2ei )i nu!&ru% de citiri/
Date de ie)ire B nu!&ru% de citiri din a-ara do!eniu%ui de -unc2ionare nor!a%&/
>/ 7& se co!pare doi "ectori de !&ri!ea n, de tip -%oat )i s& se deduc& "ectoru% c
care con2ine ter!enii e,a%i din cei doi "ectori/
Date de intrare B n, a
i
, *
i
Date de ie)ire B c
i
/
3.1. *peraii asupra tablourilor cu dou dimensiuni.
7& se rea%i.e.e -unc2ii pentru citirea unui ta*%ou cu dou& di!ensiuni )i a-i)area
unui ta*%ou cu dou& di!ensiuni/ <a%ori%e din ta*%ou% citit sau a-i)at sunt de tip
dou*%e/ Un ta*%ou cu dou& di!ensiuni are ter!enii indea2i cu doi coe-icien2i i )i
+/
1
1
1
]
1
11 1E 1:
E1 EE E:
:1 :E ::
a a a
a a a
a a a
Pentru a accesa un ter!en a% ta*%ou%ui cu dou& di!ensiuni este necesar& indicarea
%iniei )i co%oanei ter!enu%ui dorit, ceea ce i!p%ic& -o%osirea a dou& cic%uri -or care
s& !odi-ice "a%oarea independent& a ce%or doi indici/
Ounc2ia #t(, care e-ectuea.& citirea unui ta*%ou *idi!ensiona% -o%ose)te dou&
cic%uri i!*ricate, cic%u% eterior a"3nd "aria*i%a contor i, care parcur,e r3nduri%e
ta*%ou%ui *idi!ensiona%, cic%u% interior a"3nd "aria*i%a contor +, parcur,e pentru
-iecare r3nd, toate co%oane%e ta*%ou%ui/ 7& ur!&ri! !odu% de incre!entare a% ce%or
doi contori/ La 6nceput, "aria*i%a contor a cic%u%ui eterior i "a a"ea "a%oarea : )i
se intr& 6n cic%u% interior, adic&
iI:, +I: se "a citi ter!enu% de pe pri!u% r3nd, pri!a co%oan& a
::
n continuare, se continu& cic%u% interior,
iIconst I:, + cre)te cu o unitate +I+J:IE se cite)te a% doi%ea ter!en de pe pri!a
%inie a
:E
]
iI:, +I! se cite)te u%ti!u% ter!en de pe pri!a %inie a
:!
7e 6nc'eie cic%u% interior + )i se cre)te cu o unitate "aria*i%a contor i/ 7e reia cic%u%
interior, "aria*i%a contor + pornind de %a :, pentru a citi ter!enii de pe %inia E/
iIE, +I: se cite)te a
E:
iIE, +IE se cite)te a
EE
]
iIE, +I! se cite)te a
E!
LIMBAJUL C TEORIE I APLICAI I 9F
7e reia cic%u% eterior p3n& c3nd se citesc toate e%e!ente%e ta*%ou%ui/
Pe ace%a)i principiu se e-ectuea.& tip&rirea e%e!ente%or unui ta*%ou cu dou&
di!ensiuni/ Pentru a putea -i reuti%i.at&, -unc2ia #t( "a -i sa%"at& 6n -i)ieru%
#t(0#
#t( )nt n, nt (,'o/b.e a?10@?10@* -unc2ia cit! cu para!etrii n, !, a
+ 6nceputu% corpu%ui -unc2iei
nt ,67 dec%ararea "aria*i%e%or %oca%e contor
'o/b.e t7 "aria*i%& necesar& citiri "a%ori de tip dou*%e
"or )=17<=n7!!* pri!u% -or ce parcur,e %inii%e ta*%ou%ui
"or )6=176<=(76!!* a% doi%ea -or ce parcur,e co%oane%e
+
prnt" )3Dat e.e(ent/. =' ='=3,,6*7
s#an" )3=."3,Jt*7
a?@?6@=t7
,
p/ts )3S-a #tt (atr#ea3*7
,
Ounc2ia tp(, care tip&re)te e%e!ente%e ta*%ou%ui, este sa%"at& 6n -i)ieru% tp(0#0
tp( )nt n, nt (, 'o/b.e a?@?10@*
+
nt ,67
"or )=17<=n7!!*
"or )6=176<=(76!!*
prnt" )3 =."8t 3,a?@?6@*7
p/ts )38n3*7
,
Pro,ra!u% principa%, care ape%ea.& -unc2ii%e de citire )i de tip&rire a ter!eni%or
unui ta*%ou cu dou& di!ensiuni "a -i
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e 3#t(0#3
-n#./'e 3s"rst0#3
-n#./'e 3tp(0#3
&o' (an )*
+
nt n,(
'o/b.e a?10@?10@7
p/ts )3'at nr 'e .n n s nr 'e #o.oane ( n/(ere ntre43*7
s#an" )3=',='3,Jn,J(*7
#t( )n,(,a*7 ape%area -unc2iei pt citirea unui ta*%ou cu dou&
di!ensiuni
tp( )n,(,a*7 ape%area -unc2iei pt a-i)area unui ta*%ou cu dou&
di!ensiuni
s"rst )*7 ape%area -unc2iei pt ter!inarea pro,ra!u%ui
,
Eemplu
7& se rea%i.e.e pro,ra!u% care adun& dou& !atrici )i apoi s& se trans-or!e
pro,ra!u% pentru a aduna !ai !u%te !atrici, -iecare !atrice -iind 6n!u%2it& cu un
sca%ar/ Adic&,
LIMBAJUL C TEORIE I APLICAI I 9#
CIAJB etapa I
CIa
:
aA
:
Ja
E
aA
E
J ] a
n
aA
n
etapa II
unde a
:
, a
E
, a
1
, ]//a
n
sunt sca%ari, respecti" A
:
, A
E
, ]A
n
sunt ta*%ouri cu dou&
di!ensiuni/
Ounc2ia s/(( pentru adunarea a dou& !atrici "a -i sa%"at& 6n -i)ieru% s/((0#0
&o' s/(( )nt ., nt o, 'o/b.e '?10@?10@, 'o/b.e e?10@?10@,'o/b.e "?10@
?10@*
+
nt ,67
/*s/(a a 'o/a (atr# */
"or )=17<=.7!!*
"or )6=176<=o76!!*
"?@?6@='?@?6@!e?@?6@7 ter!enu% curent a% !atricei - este su!a
ter!eni%or ce%or dou& !atrici d )i e
,
Pro,ra!u% principa% pentru adunarea a dou& !atrici CIAJB "a -i
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e 3#t(0#3
-n#./'e 3tp(0#3
-n#./'e 3s/((0#3
&o' (an )*
+
nt ,6,n,(7
'o/b.e a?10@?10@,b?10@?10@,#?10@?10@7
p/ts )3'at (ar(ea ./ n =R s ( = R n/(ere ntre43*7
s#an" )3=' ='3,Jn,J(*7
#t( )n,(,a*7 ape%area -unc2iei de citire a unui ta*%ou cu dou&
di!ensiuni/ n ca.u% ta*%ouri%or, "aria*i%a ta*%ou a
este trans!is& prin re-erin2&
p/ts )3S-a #tt tab.o/. a3*7
#t( )n,(,b*7 ape%area -unc2iei de citire a unui ta*%ou cu dou&
di!ensiuni/ n ca.u% ta*%ouri%or, "aria*i%a ta*%ou *
este trans!is& prin re-erin2&
p/ts )38t S-a #tt tab.o/. b8n3*7
s/(()n,(,a,b,#*7 e-ectuarea adun&rii ce%or dou& ta*%ouri/ Re.u%tatu%
se "a ,&si 6n ta*%ou% c/
tp( )n,(,#*7 a-i)area ta*%ou%ui re.u%tat prin su!a ce%or dou&
ta*%ouri
s"rst ) *7
,
Pentru a re.o%"a etapa a II0a, pro,ra!u% care ca%cu%ea.& epresia !atricea%&
CIa
:
aA
:
Ja
E
aA
E
J ] a
n
aA
n
, "o! de-ini o -unc2ie care 6n!u%2e)te un ta*%ou cu un
sca%ar/
Ounc2ia s#a.ar(, 6n!u%2e)te un ta*%ou cu dou& di!ensiuni cu "a%oarea unui sca%ar
citit dintr0un "ector L n, ! sunt para!etrii trans-era2i prin "a%oare ce indic&
LIMBAJUL C TEORIE I APLICAI I 9G
!&ri!ea ta*%ou%ui, Z para!etru ce indic& nu!&ru% ter!enu%ui "ectoru%ui cu care
se 6n!u%2e)te !atricea/ Ta*%ouri%e &?@, a?@?@, b?@?@ sunt para!etrii trans-era2i
prin re-erin2&/ Ta*%ou% b?@?@ "a con2ine e%e!ente%e ta*%ou%ui a?@?@ 6n!u%2ite cu
sca%ar/
s#a.ar( )nt n, nt (, nt V, 'o/b.e &?10@, 'o/b.e a?10@?10@,'o/b.e
b?10@?10@*
+
"or )=17<=n7!!*
"or )6=176<=(76!!*
b?@?6@=a?@?6@*&?V@7 opera2ia de 6n!u%2ire cu un sca%ar a ter!eni%or
unui ta*%ou
,
Re.o%"area propriu .is& a epresiei !atricea%e este -&cut& 6n pro,ra!u% principa%, sa%"at
6n -i)ieru% (at(/.B0#/
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e 3#t(0#3
-n#./'e 3tp(0#3
-n#./'e 3#t&0#3
-n#./'e 3s/((0#3
-n#./'e 3s#a.ar(0#3
-n#./'e 3s"rst0#3
&o' (an )*
+
nt ,6,n,(, V7
'o/b.e a?10@?10@,b?10@?10@,#?10@?10@, &?10@7
p/ts )3'at (ar(ea ./ n =R s ( = R n/(ere ntre43*7
s#an" )3=' ='3,Jn,J(*7
p/ts )3'at n/(ar/. 'e (atr# #e se a'/na V = R 3*7
s#an" )3='3,JV*7
p/ts )3'at s#a.ar a1, aB000an3*7
#t& )V,&*7 citirea "ectoru%ui ce con2ine sca%arii a
:
, a
E
, a
n
"or )=17<=n7!!*
"or )6=176<=(76!!*
#?@?6@=07 ini2ia%i.area !atricii c cu "a%oarea .ero
"or )=17<=V7!!* %a -iecare cic%u se e-ectuea.& citirea,
6n!u%2irea !atricii A
Z
cu un sca%ar )i su!a
!atrici%or
+
prnt" )3'at ter(en (atr#e =' 8n3,*7
#t( )n,(,a*7 citirea !atricii A
Z
s#a.ar( )n, (, , &, a, b*7 6n!u%2irea !atricii A
Z
cu sca%aru% a
Z
s/(()n,(,#,b,#*7 adunarea !atricii A
Z
aa
Z
%a !atricea su!& C
,
tp( )n,(,#*7 a-i)area !atricii C
s"rst ) *7
,
Eemplu
LIMBAJUL C TEORIE I APLICAI I 9=
7& se scrie pro,ra!u% C, ce 6n!u%2e)te dou& !atrici CIAaB/ n!u%2irea a dou& !atrici
are %oc dac& nu!&ru% de %inii a%e pri!ei !atrici este e,a% cu nu!&ru% de co%oane a%e
ce%ei de0a doua !atrici/
De ee!p%u, CIAaBI
1
]
1
E1 EE E:
:1 :E ::
a a a
a a a
a
1
1
1
]
1
1E 1:
EE E:
:E ::
b b
b b
b b
I
1
]
1
EE E:
:E ::
c c
c c
/
Ter!enu% de pe r3ndu% :, co%oana E a !atricii C se o*2ine, 6nsu!3nd produse%e
e%e!ente%or de pe r3ndu% : a% !atricii A cu
e%e!ente%e din co%oana E a !atricii B/ Adica,
c
:E
I a
::
ab
:E
Ja
:E
ab
EE
J ] Ja
:i
ab
iE
J] Ja
:n
ab
nE
I
n
i
i i
b a
:
E :
/ Un ter!en oarecare a%
!atricii C, se "a o*2ine "o%osind epresia
c
i(
I
n
)
)( i)
b a
:
,
unde n repre.int& nu!&ru% de co%oane a%e !atricii A, sau %inii a%e !atricii B/
Pentru ca%cu%u% propriu .is a% su!ei 6n C, "o! a"ea ne"oie de trei cic%uri L un cic%u
eterior care parcur,e nu!&ru% de r3nduri a%e !atricii C, un cic%u interior care
parcur,e co%oane%e !atricii C, respecti" un cic%u care e-ectuea.& su!a produse%or
-o%osind re%a2ia de !ai sus/
Ounc2ia pro'(at care ca%cu%ea.& produsu% a dou& !atrici este sa%"at& 6n -i)ieru%
pro'(at0#/ Dac& !atricea din st3n,a, A, are di!ensiunea !n, !atricea din
dreapta B, np, !atricea re.u%tat& C, "a a"ea di!ensiunea !p/
pro'(at)nt (, nt n, nt p, nt a?10@?10@, nt b?10@?10@, nt #?10@
?10@*
+
nt ,6,V7
"or )=17 <=(7 !!*
"or )6=17 6<=p7 6!!*
+
#?@?6@=07 ini2ia%i.area ter!eni%or !atricii re.u%tate cu
"a%oarea $
"or )V=17 V<=n7 V!!* cic%u% necesar pentru ca%cu%u% su!ei
produse%or a
iZ
ab
Z+
#?@?6@=#?@?6@!a?@?V@*b?V@?6@7
,
, 6nc'iderea corpu%ui -unc2iei prod!at
Pro,ra!u% principa%, care ape%ea.& -unc2ia pro'(at, este sa%"at& 6n -i)ieru%
pro'(at10#
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e 3#t(0#3
-n#./'e 3tp(0#3
LIMBAJUL C TEORIE I APLICAI I 9>
-n#./'e 3pro'(at0#3
&o' (an )*
+
nt ,6,n,(,p7
'o/b.e a?10@?10@,b?10@?10@,#?10@?10@7
p/ts )3'at (ar(ea ./ (, n s p n/(ere ntre43*7
s#an" )3=' =' ='3, J(, Jn, Jp*7
#t( )(,n,a*7 se cite)te !atricea A de di!ensiune !n
p/ts )3S-a #tt tab.o/. a8n3*7
#t( )n,p,b*7 se cite)te !atricea B de di!ensiune np
p/ts )3S-a #tt tab.o/. b8n3*7
pro'(at)(,n,p,a,b,#*7 se ca%cu%ea.& !atricea CIAaB
tp( )(,p,#*7 se tip&re)te !atricea C de di!ensiune !p
s"rst ) *7
,
Eemplu
7& se rea%i.e.e un pro,ra! care s& adune ter!enii de deasupra dia,ona%ei
principa%e )i de pe dia,ona%a principa%&, a unui ta*%ou cu dou& di!ensiuni/
"ezol#are
Pentru a parcur,e doar ter!enii de deasupra dia,ona%ei principa%e, cic%u% eterior
"a parcur,e toate r3nduri%e !atricii, 6ncep3nd cu r3ndu% :, pe c3nd cic%u% interior
"a parcur,e co%oane%e !atricii 6ncep3nd de %a co%oana +Ii/ Ounc2ia care adun&
ter!enii de deasupra dia,ona%ei principa%e, inc%usi" dia,ona%a principa%& are
nu!e%e s/(s/p )i "a -i sa%"at& 6n -i)ieru% su!sup/c/ Pute! "or*i de dia,ona%&
principa%& doar 6n ca.u% !atrici%or p&tratice, adic& de di!ensiune nn/
'o/b.e s/(s/p )nt n, 'o/b.e a?10@?10@*
+
nt , 67
'o/b.e s7
s=07 ini2ia%i.area su!ei cu $
/*se a'/na ter(en 'e 'eas/pra s 'a4ona.a prn#pa.a*/
"or )=17 <=n7 !!*
"or )6=7 6<=n7 6!!* cic%u% care parcur,e co%oane%e !atricii a
s=s!a?@?6@7 ca%cu%ui su!ei ter!eni%or
ret/rn )s*7 returnarea su!ei spre -unc2ia ape%ant&
,
Pentru a se "eri-ica dac& a%,orit!u% -o%osit este corect, se "or a-i)a ter!enii de pe
dia,ona%a principa%& )i de deasupra dia,ona%ei
principa%e, -o%osind -unc2ia tps/p(/ Ounc2ia
tps/p( "a -i sa%"at& 6n -i)ieru% tipsup!/c/
tps/p( )nt n, 'o/b.e a?10@?10@*
+
nt ,67
/*se a"sea5a ter(en 'e 'eas/pra s 'e pe 'a4ona.a prn#pa.a*/
"or )=17 <=n7 !!*
+
p/ts )38n3*7
"or )6=7 6<=n7 6!!*
LIMBAJUL C TEORIE I APLICAI I 99
prnt" )3=."8t3,a?@?6@*7
,
,
Eemplu
7& se scrie o -unc2ie care a-i)ea.& ter!enii de su* dia,ona%a principa%& a unei
!atrici p&tratice/
"ezol#are
A%,orit!u% -o%osit se *a.ea.& pe o*ser"a2ia pre.entat& 6n ee!p%u% precedent L un
cic%u eterior care parcur,e r3nduri%e !atricii, respecti" un cic%u interior care
parcur,e co%oane%e !atricii 6ncep3nd cu pri!a co%oan&, p3n& %a co%oana de pe
dia,ona%a principa%&, adic& +Ii/ Ounc2ia care a-i)ea.& ter!enii de su* dia,ona%a
principa%& a unei !atrici p&tratice se nu!e)te tpn"( )i "a -i sa%"at& 6n -i)ieru%
tpn"(0#/
tpn"()nt n, 'o/b.e a?10@?10@*
+
nt , 67
/*se a"sea5a ter(en 'e s/b 'a4ona.a prn#pa.a*/
"or )=17 <=n7 !!*
+
p/ts)38n3*7
"or)6=17 6<=7 6!!* cic%u% care parcur,e co%oane%e !atricii a
prnt")3=."8t3,a?@?6@*7
,
,
Eemplu
<o! 6ncerca s& pune! toate -unc2ii%e pre.entate !ai sus 6ntr0un pro,ra!
principa%/ Pro,ra!u% "a ca%cu%a su!a ter!eni%or unei !atrici p&tratice, situa2i
deasupra dia,ona%ei principa%e, inc%usi" e%e!ente%e de pe dia,ona%&, a-i)area
ter!eni%or care se adun&, precu! )i ter!enii de su* dia,ona%a principa%&/ Citirea
!&ri!ii !atricii, "a%oarea ter!eni%or ei se "a -ace de %a tastatur&, pentru citirea
ter!eni%or se "a ape%a -unc2ia cit!/
"ezol#are
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e 3#t(0#3
-n#./'e 3tp(0#3
-n#./'e 3s/(s/p0#3
-n#./'e 3tps/p(0#3
-n#./'e 3tpn"(0#3
-n#./'e 3s"rst0#3
&o' (an )*
+
nt ,6,n7
'o/b.e a?10@?10@, s7
p/ts )3'at (ar(ea (atr# patrat#e n =R n/(ar ntre43*7
s#an")3='3,Jn*7
/*#trea (atr# ?a@*/
#t( )n,n,a*7
p/ts )3S-a #tt (atr#ea ?a@3*7
s=s/(s/p)n,a*7
LIMBAJUL C TEORIE I APLICAI I :$$
tps/p( )n,a*7
prnt" )Hs/(a ter(en.or 'eas/pra 'a4ona.e prn#pa.e ==." I,s*7
tpn"( )n,a*7
tp( )n,n,a*7
s"rst ) *7
,
Aro-leme propuse
:/ 7& se adune ter!enii de pe %inia ) a unei !atrici A de di!ensiune n!/
Date de intrare B di!ensiunea !atricii n, ! , ter!enii !atricii )i nu!&ru% %iniei )/
Date de ie)ire B sI
m
(
)(
a
:
E/ 7& se adune ter!enii de pe co%oana ) a unei !atrici A de di!ensiune n!/
Date de intrare B di!ensiunea !atricii n, ! , ter!enii !atricii )i nu!&ru% co%oanei
)/
Date de ie)ire B sI
n
i
i)
a
:
1/ 7& se co!pare dou& !atrici de di!ensiune n! )i s& se deduc& "ectoru% c care
con2ine ter!enii cu "a%oare e,a%& din ce%e dou& !atrici /
Date de intrare B n, !, a
i(
, b
i(
Date de ie)ire B c
i
F/ 7& se citeasc& o !atrice A de di!ensiune nn )i s& se e"a%ue.e ur!&toarea
epresie !atricea%& BIAJI, unde I este !atricea unitate/
Date de intrare B n, A/
Date de ie)ire B B
#/ 7& se adune ter!enii po.iti"i de su* dia,ona%a secundar& a !atricii A de
di!ensiune nn/
Date de intrare B n, A
Date ie)ire B sIsu!a ter!eni%or de su* dia,ona%a secundar&/
G/ 7& se deter!ine nu!&ru% ter!eni%or po.iti"i, ne,ati"i, nu%i )i s& se ca%cu%e.e
su!e%e acestor ter!eni, din !atricea A citit& de %a tastatur&/
Date de intrare B n, ! di!ensiunea !atriciiL A
Date de ie)ire B nu!&ru% ter!eni%or po.iti"i, ne,ati"i, nu%i, su!a ter!eni%or
po.iti"i, su!a ter!eni%or ne,ati"i/
3.2. &uncii de bibliotec.
Li!*a+u% C a -ost rea%i.at ca un %i!*a+ cu un set re%ati" redus de co!en.i, pentru a
a"ea o "ite.& de eecu2ie )i -%ei*i%itate !are/ Ast-e% %i!*a+u% C nu are 6ncorporat
-aci%it&2i de pre%ocrare )i citire direct& a )iruri%or de caractere, !u%2i!i%or,
ta*%ouri%or/ Pentru pre%ucrarea date%or de tip )ir de caractere se -o%osesc ta*%ouri
LIMBAJUL C TEORIE I APLICAI I :$:
de caractere sau pointeri %a caracter/ Li!*a+u% C nu are instruc2iuni de citire,
tip&rire 4opera2ii de intrare ie)ire5 a date%or, nu are instruc2iuni de acces %a -i)iere/
Pentru aceste opera2ii %i!*a+u% C o-er& o co%ec2ie de -unc2ii standard de *i*%iotec&/
n continuare se "or pre.enta -unc2ii%e de *i*%iotec& ce%e !ai -o%osite 6n cadru%
pro,ra!e%or/
3.2.1. &uncii de intrare ie"ire.
Aceste -unc2ii sunt B
4et#1 , 4ets, s#an" pentru citirea date%or
p/t#1, p/ts, prnt" pentru tip&rirea date%or/
Ounc2ii%e de intrareKie)ire au prototipu% 6n -i)iere%e antet st'o01 )i #ono01/, )i au
-ost deta%iate 6n capito%u% #/#/
3.2.2. &uncii matematice.
Ounc2ii%e !ate!atice au prototipu% 6n -i)ieru% antet (at101/ n ta*e%u% de !ai +os
este pre.entat& o %ist& e'austi"& a -unc2ii%or !ate!atice L prototipu% %or precu! )i
e-ectu% -iec&rei -unc2ii 6n parte/
Prototipu% -unc2iei E-ectu% -unc2iei
'o/b.e a#os )'o/b.e x*
arccosinus de
'o/b.e asn )'o/b.e x*
arcsinus de
'o/b.e atan )'o/b.e x*
arctan,enta de
'o/b.e atanB)'o/b.e G, 'o/b.e x*
arctan,enta de PK
'o/b.e #e. )'o/b.e x*
ce% !ai !ic 6ntre, !ai !are sau e,a% cu
'o/b.e #os )'o/b.e x*
cosinus de 4 epri!at 6n radiani 5
'o/b.e exp )'o/b.e x*
"a%oarea %ui e
1
1
1
1
]
1
1
1
1
1
1
]
1
E
E
E
:
:
E
:
E E
E
E
E
E
EE
:
:
:
:E
:
::
$
$
n n nn n
r
r
b
b
b
%
%
%
a a
a a
a a a
1
1
1
1
1
1
1
1
]
1
1
1
1
1
1
1
1
1
]
1
r
n
r
r
n
r
r
nn
r
nr
r
rn
r
rr
n r
n r
b
b
b
b
%
%
%
%
a a
a a
a a a
a a a a
E
E
:
:
E
:
E
E
E
E
E
EE
:
:
:
:
:
:E
:
::
$ $
$ $
$
Presupun3nd
( ) r
rr
a di-erit de .ero, "o! de-ini coe-icien2ii
( ) ( )
n r i a a m
r
rr
r
ir ir
, , : , +
cu a+utoru% c&rora "o! e%i!ina necunoscuta %
r
din ecua2ii%e ce ur!ea.& %ui i+r/
<o! a"ea
( ) ( ) ( )
( ) ( ) ( )
n r ( i
b m b b
a m a a
r
r ir
r
i
r
i
r
r( ir
r
i(
r
i(
, , : , ,
:
:
+
+
+
LIMBAJUL C TEORIE I APLICAI I :9:
Prin aceste trans-or!&ri %inii%e anterioare %iniei i+r,- din !atricea A sunt %&sate
nesc'i!*ate iar 6n co%oana r su* dia,ona%a principa%& se introduc .erouri/ Dup& n*
: pa)i o*2ine! siste!u% su* -or!a
( ) ( ) ( )
( ) ( )
( )
( )
( )
( )
1
1
1
1
1
]
1
1
1
1
1
]
1
1
1
1
1
1
]
1
n
n n
n
nn
r
r
b
b
b
%
%
%
a
a a
a a a
E
E
:
:
E
:
E
E
E
EE
:
:
:
:E
:
::
$ $
$
Acest procedeu de trans-or!are a !atricei A 6ntr0o !atrice superior triun,'iu%ar&
se nu!e)te -actori.are a !atricii A prin procedura %ui Wauss/
7o%u2ia siste!u%ui de ecua2ii cu !atricea A -actori.at& )i "ectoru% * trans-or!at
poate -i scris& i!ediat B
( ) ( ) n
nn
n
n n
a b %
( ) ( ) ( )
: , , : ,
:
,
_
+
n r a % a b %
r
rr
n
r (
(
r
r(
r
r r
Aceast& etap& poart& nu!e%e de su*stitu2ie in"ers& 4*acZ su*stitution5/
Pro,ra!u% care i!p%e!entea.& a%,orit!u% %ui Wauss este pre.entat 6n continuare/
-n#./'e <st'o012
-n#./'e 3#t(0#3
-n#./'e 3tp(0#3
-n#./'e 3e.(.10#3
-n#./'e 3#t&0#3
-n#./'e 3tr/10#3
-n#./'e 3a'a/4a.0#3
-n#./'e 3tp&10#3
-n#./'e 3s#re&0#3
-n#./'e 3a'a/4a#0#3
-n#./'e 3n.o##0#3
-n#./'e 3e4a.(0#3
-n#./'e 3e.(#10#3
-n#./'e <#ono012
&o' (an )*
+
nt ,6,V,Z,n,(,n17
'o/b.e a?10@?10@,b?10@?10@,#?10@?10@,e?10@?10@,x?10@,s7
'o/b.e 'et,'et1?10@,#o.t ?10@,p,e1?10@,'?10@?10@7
p/ts )3Se5o.&area sste(e.or .nare #a.#/. 'eter(nant3*7
p/ts )3Dat (ar(ea sste(/./ 3*7
s#an" )3='3,Jn*7
#t( )n,n,a*7
p/ts )3Dat #o.oana ter(n.or .ber3*7
#t& )n,#o.t*7
e4a.( )n,n,a,b*7
a'a/4a# )n,n,b,#o.t,#*7
a'a/4a. )n,n,#*7
LIMBAJUL C TEORIE I APLICAI I :9E
n1=n!17
tr/1 )n1,n1,#*7
e.(. )n1,n1,n1,#,e*7
p/ts )3 3*7
s#re& )n,n1, e, e1*7
tp& )n,e1*7
e.(# )n,n1,n1,e,'*7
x?n@=e1?n@/'?n@?n@7
"or )V=n-17V2=17V--* 7u*stitu2ia in"ers&
+
s=07
"or )6=V!176<=n76!!*
s=s!'?V@?6@*x?6@7
x?V@=)e1?V@-s*/'?V@?V@7
,
"or)=17<=n7!! *
prnt" )3x?='@===." 8n3,,x?@*7
p/ts )38n Apasa o tasta 3*7
4et#1 )*7
,
Ounc2ia e4a.( e,a%ea.& !atricea B cu !atricea A, ast-e% 6nc3t !atricea care se
pre%ucrea.& s& -ie !atricea B, iar !atricea ori,ina%& A s& r&!3n& ne!odi-icat&/
Ounc2ia este sa%"at& 6n -i)ieru% e4a.(0#
e4a.( )nt n, nt (, 'o/b.e a?10@?10@, 'o/b.e b?10@?10@*
+
nt ,67
"or )=17<=n7!!*
"or )6=176<=(76!!*
b?@?6@=a?@?6@7
,
Ounc2ia a'a/4. per!ite ad&u,area unei %inii cu ter!enii e,a%i cu : %a o !atrice cu
n %inii )i ! co%oane/ Ounc2ia este sa%"at& 6n -i)ieru% a'a/4a.0#
a'a/4a. )nt n, nt (, 'o/b.e #?10@?10@*
+
nt ,67
"or )=17<=n!17!!*
"or )6=176<=(!176!!*
" )2n*
#?@?6@=17
e.se
#?@?6@=#?@?6@7
,
Ounc2ia a'a/4# per!ite ad&u,area unei co%oane %a o !atrice, 6n ca.u% de -a2&
co%oana ce se adau,& este co%oana ter!eni%or %i*eri/ Ounc2ia este sa%"at& 6n -i)ieru%
a'a/4a#0#
a'a/4a# )nt n, nt (, 'o/b.e b?10@?10@, 'o/b.e '?10@,'o/b.e e?10@?10@*
+
nt ,67
"or )=17<=n7!!*
"or )6=176<=(!176!!*
" )62(*
e?@?6@='?@7
e.se
LIMBAJUL C TEORIE I APLICAI I :91
e?@?6@=b?@?6@7
,
Ounc2ia tr/1 e-ectuea.& trian,u%ari.area unei !atrici p&tratice de !&ri!e nn/
Ounc2ia este sa%"at& 6n -i)ieru% tr/10#
tr/1 )nt n, nt (, 'o/b.e a?10@?10@*
+
nt ,6,V7
'o/b.e p7
"or )=17<n7!!*
"or )6=!176<=n76!!*
+
p=a?6@?@/a?@?@7
"or )V=7V<=n7V!!*
a?6@?V@=a?6@?V@-p*a?@?V@7
,
,
Ounc2ia e.(. e%i!in& dintr0o !atrice u%ti!a %inie/ Ounc2ia este sa%"at& 6n -i)ieru%
e.(.10#
e.(. )nt n, nt (, nt V, 'o/b.e a?10@?10@, 'o/b.e b?10@?10@*
+
nt ,67
"or )=17<=n7!!*
"or )6=176<=(76!!*
" )T=V*
")<V*
b?@?6@=a?@?6@7
e.se
b?-1@?6@=a?@?6@7
,
Ounc2ia e.(# e%i!in& co%oana Z dintr0o !atrice/ Ounc2ia este sa%"at& 6n -i)ieru%
e.(#0#
e.(# )nt n, nt (, nt V, ".oat a?10@?10@, ".oat b?10@?10@*
+
nt ,67
"or )=17<=n7!!*
"or )6=176<=(76!!*
" )6T=V*
")6<V*
b?@?6@=a?@?6@7
e.se
b?@?6-1@=a?@?6@7
e.se
7
,
Ounc2ia s#re& trans-er& dintr0o !atrice, u%ti!a co%oan& 6ntr0un "ector/ Ounc2ia este
sa%"at& 6n -i)ieru% s#re&0#
s#re& )nt n, nt (, 'o/b.e a?10@?10@, 'o/b.e b?10@*
+
nt ,67
"or )=17<=n7!!*
"or )6=176<=(76!!*
" )6==(*
b?@=a?@?6@7
e.se
LIMBAJUL C TEORIE I APLICAI I :9F
7
,
'.3. Metoda ramer pentru determinarea #alorii determinantului
Oi)ieru% cu pro,ra!u% surs& este pre.entat 6n continuare/
-n#./'e <st'o012
-n#./'e 3#t(0#3
-n#./'e 3tp(0#3
-n#./'e 3tr(at0#3
-n#./'e 3n.o##0#3
-n#./'e 3e4a.(0#3
-n#./'e <#ono012
&o' (an )*
+
nt ,6,V,Z,n,(7
'o/b.e a?10@?10@,b?10@?10@,#?10@?10@,'et,'et1?10@,#o.t ?10@?10@,p7
p/ts )3Se5o.&area sste(e.or .nare #a.#/. 'eter(nant3*7
p/ts )3Dat (ar(ea sste(/./ 3*7
s#an" )3='3,Jn*7
#t( )n,n,a*7
p/ts )3Dat #o.oana ter(en.or .ber3*7
#t( )n,1,#o.t*7
"or )Z=17Z<=n7Z!!*
+
e4a.( )n,n,a,b*7
n.o## )n,n,Z,b,#o.t*7
'et1?Z@=tr(at )n,n,b*7
,
e4a.( )n,n,a,b*7
tp( )n,1,#o.t*7
tp( )n,n,b*7
'et=tr(at )n,n,b*7
prnt" )3 'eter(nant/.===0B<."8n3,'et*7
" )'etT=0*
+
"or )=17<=n7!!*
+
prnt" )3 'et1 ?='@==0B<."8n3,,'et1?@*7
prnt" )3 x?='@ ==."8n3,,'et1?@/'et*7
,
,
e.se
p/ts )3sste( n#o(patb.3*7
p/ts )38n Apasa o tasta 3*7
4et#1 )*7
,
Ounc2ia tr(at e-ectuea.& trian,u%ari.area unei !atrici p&tratice de !&ri!ea nn
)i deter!in& "a%oarea deter!inantu%ui noii !atrici trian,u%ari.ate/ Ounc2ia este
sa%"at& 6n -i)ieru% tr(at0#
'o/b.e tr(at )nt n,nt (, 'o/b.e a?10@?10@*
+
nt ,6,V7
'o/b.e 'et,p7
"or )=17<n7!!*
LIMBAJUL C TEORIE I APLICAI I :9#
"or )6=!176<=n76!!*
+
p=a?6@?@/a?@?@7
"or )V=7V<=n7V!!*
a?6@?V@=a?6@?V@-p*a?@?V@7
,
'et=17
"or )=17<=n7!!*
'et='et*a?@?@7
ret/rn )'et*7
,
Ounc2ia n.o## e-ectuea.& 6n%ocuirea co%oanei i a !atricii coe-icien2i%or
necunoscute%or cu co%oana ter!eni%or %i*eri/ Ounc2ia este sa%"at& 6n -i)ieru%
n.o##0#
n.o## )nt n, nt (,nt V, 'o/b.e b?10@?10@, 'o/b.e #o.t?10@?10@*
+
nt ,67
"or )=17<=n7!!*
"or )6=176<=(76!!*
" )6==V*
b?@?6@=#o.t?@?1@7
e.se
b?@?6@=b?@?6@7
,
'.%. aracteristicile geometrice ale seciunilor trans#ersale
-n#./'e <#ono012
-n#./'e <st'o012
-n#./'e 3s"rst0#3
-n#./'e 3"5040#3
-n#./'e 3"G040#3
-n#./'e 3"9G0#3
-n#./'e 3"950#3
-n#./'e 3"9G50#3
&o' (an )*
+
".oat a?10@,G0?10@,50?10@,G04,504,9G,95,9G57
nt n,7
".oat 9G?10@,95?10@,9G5?10@7
p/ts )3'at nr 'e e.e(ente3*7
s#an" )3='3,Jn*7
"or )=17<=n7!!*
+
prnt" )3'at ara?='@ G0=' 50=' 3,,,*7
s#an")3=" =" ="3,Ja?@,JG0?@,J50?@*7
,
G04="G04)n,G0,a*7
504="504)n,50,a*7
"or )=17<=n7!!*
+
prnt" )3'at 9G?='@= 95='= 9G5='= 3,,,*7
s#an" )3=" =" ="3,J9G?@,J95?@,J9G5?@*7
,
prnt" )3G04==" 504=="8n3,G04,504*7
prnt" )39G=="8n3,"9G)n,504,a,9G,50**7
LIMBAJUL C TEORIE I APLICAI I :9G
prnt" )395=="8n3,"95)n,G04,a,95,G0**7
prnt" )39G5=="8n3,"9G5)n,504,G04,a,9G5,50,G0**7
s"rst )*7
,
".oat "504 )nt n,".oat 50?10@,".oat a?10@*
+
nt 7
".oat 504,a7
504=07a=07
"or )=17<=n7!!*
a=a?@!a7
"or)=17<=n7!!*
504=504!50?@*a?@7
504=504/a7
ret/rn 5047
,
".oat "G04 )nt n,".oat G0?10@,".oat a?10@*
+
nt 7
".oat G04,a7
G04=07a=07
"or )=17<=n7!!*
a=a?@!a7
"or)=17<=n7!!*
G04=G04!G0?@*a?@7
G04=G04/a7
ret/rn G047
,
".oat "9G )nt n,".oat 504,".oat a?10@,".oat 9G?10@,".oat 50?10@*
+
nt 7
".oat 9G=07
"or )=17<=n7!!*
9G=9G!9G?@!)50?@-504**)50?@-504**a?@7
ret/rn 9G7
,
".oat "95 )nt n,".oat G04,".oat a?10@,".oat 95?10@,".oat G0?10@*
+
nt 7
".oat 95=07
"or )=17<=n7!!*
95=95!95?@!)G0?@-G04**)G0?@-G04**a?@7
ret/rn 957
,
".oat "9G5 )nt n,".oat 504,".oat G04, ".oat a?10@,".oat 9G5?10@,".oat
50?10@,".oat G0?10@*
+
nt 7
".oat 9G5=07
"or )=17<=n7!!*
9G5=9G5!9G5?@!)50?@-504**)G0?@-G04**a?@7
LIMBAJUL C TEORIE I APLICAI I :9=
ret/rn 9G57
,
'.'. alculul analitic al eforturilor M6 76 !
Pro,ra!u% care este pre.entat 6n acest para,ra- per!ite deter!inarea !o!ente%or
de 6ncastrare per-ect& a%e unei *are du*%u 6ncastrat& 6nc&rcat& cu -or2e concentrate
sau -or2e distri*uite sau cu !o!ente concentrate/ Cu acest pro,ra! se deter!in&
-oarte u)or "a%oarea !o!ente%or de 6ncastrare per-ect& 6n cadru% !etodei
dep%as&ri%or -o%osit& %a studiu% structuri%or nedeter!inate static 4%a discip%ina
7tatica construc2ii%or, !etoda dep%as&ri%or ce se studia.& 6n anu% III5/
-n#./'e <st'o012
-n#./'e <#ono012
-n#./'e <(at1012
-n#./'e <'os012
-n#./'e 3"orta10#3
-n#./'e 3'strb10#3
-n#./'e 3(o(en10#3
&o' 9ES9SE1 )&o'*7
&o' (an )*
+
nt ,6,n,(,o7
".oat X1,XB,\1,\B,N1,NB,p,Z,.7
p/ts )3SE DETESX9NA >OSTEEE S9 XOXENTEEE NODAEE 3*7
p/ts )3OASA DUOEU 9NYASTSATA 3*7
9NYEPUT1 :
p/ts )3AEEMET9 OPT9UNEA DOS9TA3*7
p/ts )3>OSTA YONYENTSATA NOSXAEA =13*7
p/ts )3>OSTA D9STS9OU9TA NOSXAEA =B3*7
p/ts )3XOXENT YONYENTSAT =:3*7
p/ts )3>OSTA YONYENTSATA AK9AEA =;3*7
p/ts )39ES9SEA D9N PSOMSAX =<3*7
""./s1 )st'n*7
" )s#an" )3='3,Jo*==1*
sWt#1 )o*
+
#ase 1:
>OSTAYONYENTSATA1 )*7
breaV7
#ase B :
>OSTAD9STS9OU9TA )*7
breaV7
#ase : :
XOXENTYONYENTSAT )*7
breaV7
#ase ; :
p/ts )3>OSTAAK9AEA )*73*7
breaV7
'e"a/.t :
9ES9SE1 )*7
,
e.se
+
LIMBAJUL C TEORIE I APLICAI I :9>
p/ts )3AT9 9NTSODUS OPT9UNEA MSES9TA 3*7
4oto 9NYEPUT17
,
,
&o' 9ES9SE1 )&o'*
+
p/ts )3APASA O TASTA3*7
4et#1 )*7
,
Ounc2ia >OSTAYONYENTSATA1 per!ite deter!inarea "a%orii !o!ente%or de cap&t
c3nd pe *ar& ac2ionea.& -or2e concentrate/
&o' >OSTAYONYENTSATA1 )&o'*
+
nt ,6,n,(7
".oat X1,XB,\1,\B,N1,NB,a?10@,.,p?10@,b?10@7
p/ts )3DAT9 EUNM9XEA OASE9 3*7
s#an" )3="3,J.*7
p/ts )3DAT9 NUXASUE DE >OSTE YONYENTSATE PE OASA3*7
s#an" )3='3,Jn*7
"or )=17<=n7!!*
+
prnt")3DAT9 D9STANTA EA >OSTA ?='@= S9 XAS9XEA >OSTE9 = 3,*7
s#an" )3=",="3,Ja?@,Jp?@*7
b?@=.-a?@7
,
X1=07 XB=07 \1=07 \B=07
"or )=17<=n7!!*
+
X1=X1-p?@*)a?@*b?@*b?@*/).*.*7
XB=XB-p?@*)a?@*a?@*b?@*/).*.*7
,
prnt" )3Xo(ent/. 1 s B are &a.oarea ==" ==" 8n 3,X1,XB*7
'e.aG )1000*7
p/ts )3APASAT9 O TASTA PENTSU SE\EN9SEA 9N PSOMSAX 3*7
4et#1 )*7
,
Ounc2ia OORTADI7TRIBUITA per!ite deter!inarea "a%orii !o!ente%or de cap&t
c3nd pe *ar& ac2ionea.& -or2e distri*uite
&o' >OSTAD9STS9OU9TA )&o'*
+
nt ,6,n7
".oat X1,XB,\1,\B,N1,NB,a?10@,.,Z?10@,#?10@,b?10@7
p/ts )3DAT9 EUNM9XEA OASE9 3*7
s#an" )3="3,J.*7
p/ts )3DAT9 NUXASUE DE >OSTE D9STS9OU9TE3*7
s#an" )3='3,Jn*7
"or )=17<=n7!!*
+
prnt" )3DAT9 D9STANTA P9NA EA X9PEOYUE >OSTE9 ?='@ 3,*7
s#an" )3="3,Ja?@*7
prnt" )3DAT9 EUNM9XEA DE D9STS9OUT9E A >OSTE9 ?='@ S9 XAS9XEA
>OSTE9=3,*7
LIMBAJUL C TEORIE I APLICAI I :99
s#an" )3=" ="3,J#?@,JZ?@*7
b?@=.-a?@7
,
X1=07 XB=07 \1=07 \B=07
"or )=17<=n7!!*
+
X1=X1!))Z?@*#?@*/)B;*.***)B;*b?@*b?@*b?@/.-)L*#?@*#?@*)a?@
!#?@/B**/.!:*#?@*#?@*#?@/.!;*#?@*#?@-B;*b?@*b?@*7
XB=XB-))Z?@*#?@*/)B;*.***)B;*b?@*b?@*b?@/.-L*#?@*#?@*)a?@
!#?@/B*/.!:*#?@*#?@*#?@/.!B*#?@*#?@-;8*b?@*b?@!B;*b?@*.*7
,
prnt" )3XOXENTEEE X1==" XB= =" 3,X1,XB*7
p/ts )3APASAT9 O TASTA 3*7
4et#1 )*7
,
Ounc2ia MOMEVTCOVCEVTRAT per!ite deter!inarea "a%ori !o!ente%or de
cap&t c3nd pe structur& ac2ionea.& !o!ente concentrate/
&o' XOXENTYONYENTSAT )&o'*
+
nt ,6,n7
".oat X1,XB,\1,\B,N1,NB,a?10@,.,(?10@,b?10@7
p/ts )3DAT9 EUNM9XEA OASE9 3*7
s#an" )3="3,J.*7
p/ts )3DAT9 NUXASUE DE XOXENTE YONYENTSATE PE OASA3*7
s#an" )3='3,Jn*7
"or )=17<=n7!!*
+
prnt" )3DAT9 D9STANTA P9NA EA XOXENTUE ?='@= S9 XAS9XEA XOXENTUEU9
= 3,*7
s#an" )3=",="3,Ja?@,J(?@*7
b?@=.-a?@7
,
X1=07 XB=07 \1=07 \B=07
"or )=17<=n7!!*
+
X1=X1!(?@*);*a?@*.-:*a?@*a?@-.*.*/).*.*7
XB=XB-(?@*)B*.*a?@-:*a?@*a?@*/).*.*7
,
prnt" )3Xo(ent/. 1 s B are &a.oarea ==" ==" 8n 3,X1,XB*7
'e.aG )1000*7
p/ts )3APASAT9 O TASTA PENTSU SE\EN9SEA 9N PSOMSAX 3*7
4et#1 )*7
,
'... alculul ariilor contururilor poligonale nc-ise
7& consider&! un po%i,on 6nc'is, co!pus din se,!ente de dreapt& 6ntre n "3r-uri
4
:
, P
:
5, i I$, ], n0:/ U%ti!u% "3r- este identic cu pri!u% 4adic& po%i,onu% este
6nc'is5/
LIMBAJUL C TEORIE I APLICAI I E$$
Aria po%i,onu%ui "a -i dat& de -or!u%a
( )
+ +
:
$
: :
E
:
n
i
i i i i
% % & % A /
Pentru ca aceast& -or!u%& s& poat& -i ap%icat&, tre*uie respectat un sens de
parcur,ere a% po%i,onu%ui, coordonate%e "3r-uri%or introduc3ndu0se -ie 6n sens orar,
-ie 6n sens anti orar/ Aria o*2inut& "a -i po.iti"&, dac& po%i,onu% a -ost parcurs 6n
sens anti orar, sau ne,ati"&, dac& po%i,onu% a -ost parcurs 6n sens orar/
Deducerea -or!u%ei de !ai sus este e"ident& din -i,ura de !ai +os/ Dac& se
respect& un sens de parcurs orar, aria conturu%ui po%i,ona% 6nc'is se poate o*2ine
ca su!a trape.e%or -or!ate de %aturi%e conturu%ui po%i,ona% )i "ertica%e%e co*or3te
din "3r-uri/ Trape.e%e :, E )i 1 "or a"ea arii%e po.iti"e, pe c3nd trape.e%e F, # )i G
"or a"ea arii%e ne,ati"e, 6nsu!3nd toate aceste arii cu se!ne%e %or, re.u%t3nd aria
po%i,onu%ui/
4
:
, P
:
5
4
E
, P
E
5
4
1
, P
1
5
4
F
, P
F
5
n I G
4
$
, P
$
5
LIMBAJUL C TEORIE I APLICAI I E$:
Pro,ra!u% surs& C, care re.o%"& aceast& pro*%e!& este pre.entat 6n continuare/
-n#./'e<st'o012
&o' (an )*
+
nt , 6, n7
".oat x?10@, G?10@, ara = 07
prnt")3Yate &ar"/r:3*7
s#an")3='3,Jn*7
"or )=07 <n7 !!*
+
prnt")3x)='* G)='*3, , *7
s#an")3=" ="3, Jx?@, G?@*7
,
"or )=07 <n7 !!*
+
6 = )!1* = n7
ara != x?@ * G?6@7
ara -= G?@ * x?6@7
,
ara = ara / B7
ara < 0 R -ara: ara7
,
<o! atra,e aten2ia asupra instruc2iunii de atri*uire 6 = )!1* = n7/ De %a i I $,
p3n& %a i I n0E, + "a %ua "a%ori%e : p3n& %a n0:/ C3nd i este n0:, + "a %ua "a%oarea $,
asi,ur3nd 6nc'iderea conturu%ui po%i,ona%/
'./. alculul integralelor prin metoda dreptung-iului
<a%oarea inte,ra%ei de-inite 6n inter"a%u% 9a, *;, a unei -unc2ii continue -45,
repre.int& aria supra-e2ei !&r,init& de -unc2ia -45, aa a*scise%or, )i ce%e dou&
se,!ente de dreapt& ce trec prin capete%e inter"a%u%ui/
Ast-e%, ca%cu%u% nu!eric a% inte,ra%ei poate -i -&cut 6!p&r2ind supra-a2a respecti"&
6n supra-e2e e%e!entare, a c&ror arie poate -i e"a%uat& u)or/ 7e pot -o%osi
:
E
1
F #
%
&
LIMBAJUL C TEORIE I APLICAI I E$E
dreptun,'iuri sau trape.e pentru -or!a supra-e2e%or e%e!entare/ Metoda
aproi!&rii cu dreptun,'iuri este !ai u)oar&, necesit3nd !ai pu2ine ca%cu%e/
Ast-e%, pro,ra!u% surs& C, "a -iB
-n#./'e <st'o012
&o' (an )*
+
nt n, 7
'o/b.e a, b, x, "x, 1, nte47
prnt")38nPro4ra(/. #a.#/.ea5a nte4ra.a "/n#te x]B n nter&a./. ?a,
b@3*7
prnt")38nDat #apate.e nter&a././3*7
s#an")3=." =."3, Ja, Jb*7
prnt")38nYate '&5/n a.e nter&a././3*7
s#an")3='3, Jn*7
1=)b-a*/n7
nte4=07
"or )=07 <n7 !!*
+
x=a!*17
"x=x*x7
nte4=nte4!"x*17
,
prnt")38n9nte4ra.a 'n x]B n nter&a./. ?=.", =."@ este =."3, a, b,
nte4*7
,
Aro-lem propus
7& se scrie pro,ra!u% surs& C care ca%cu%ea.& inte,ra%a de-init& 6n inter"a%u% 9a, *;
a -unc2iei continue -45, -o%osind re,u%a trape.u%ui/
'.1. Soluionarea numeric a ecuaiilor neliniare prin metoda biseciei
Pro*%e!a deter!in&rii r&d&cini%or unei ecua2ii de -or!a
f4%5
b
%
a
% h
f4%5
LIMBAJUL C TEORIE I APLICAI I E$1
f4%5I$,
unde f4%5 este o -unc2ie continu&, apare -rec"ent 6n ap%ica2ii/ Metode ana%itice de
so%u2ionare a unor ast-e% de ecua2ii eist& nu!ai pentru ca.uri particu%are/
In !u%te situa2ii pro*%e!a -i.ic& ce a condus %a ecua2ia f4%5I$ -urni.ea.&
in-or!a2ii asupra distri*u2iei r&d&cini%or/ In continuare presupune! dep&)it&
aceast& etap&, cu a%te cu"inte, ad!ite! c& ecua2ia f4%5I$ are o r&d&cin& si!p%& %
:
6n inter"a%u% 9a, *;/ Ceea ce ne propune! este deter!inarea acestei r&d&cini cu
preci.ia l, adic& "a%oarea -unc2iei 6n punctu% %
:
s& -ie !ai !ic& dec3t preci.ia l/
Cea !ai si!p%& !etod& de so%u2ionare nu!eric& a ecua2iei este !etoda
6n+u!&t&2irii inter"a%u%ui 4a *isec2iei5/ Iat& a%,orit!u% !etodeiB
:/ 7e de-ine)te c BI 4aJ*5KE
E/ Dac& -4*5 a -4c5 R $, atunci a BI c, a%t-e% * BI c
1/ Dac& m-4c5m R l, r&d&cina ecua2iei este cL 7TOP
F/ Treci %a pasu% :
Ideea !etodei este si!p%& B inter"a%u% 9a, *; este 6n+u!&t&2it %a -iecare trecere, iar
condi2ia pus& %a pasu% E ne asi,ur& c& r&d&cina este inc%us& 6n inter"a%u% 9a, *;/
Pro,ra!u% surs& a% pro*%e!ei esteB
-n#./'e <st'o012
-n#./'e <(at1012
".oat ")".oat x*
+
ret/rn )x*x-:*x!B*7
,
&o' (an )*
+
nt #ont=0, err=07
".oat a, b, #, eps=0000017
prnt")38Pro4ra( #are #a.#/.ea5a o ra'a#na a e#/ate ")x*=0 n
nter&a./. ?a, b@3*7
prnt")38nDat .(te.e nter&a././3*7
s#an")3=" ="3, Ja, Jb*7
'o
+
#=)a!b*/B7
" )")b**")#* <= 0*
a=#7
e.se
b=#7
#ont!!7
" )#ont 2 1000*
+
err=17
breaV7
,
, W1.e)"abs)")#**2eps*7
" )err*
prnt")38nN/ exsta so./te n nter&a./. a.es3*7
e.se
LIMBAJUL C TEORIE I APLICAI I E$F
prnt")3O so./te a e#/ate este ="3, #*7
,
n pro*%e!a noastr& a! a%es ecua2ia E01JE care are so%u2ii%e : )i E/ Condi2ia de
ie)ire din cic%u este ca !odu%u% -unc2iei - 6n punctu% c s& -ie !ai !ic dec3t preci.ia
eps/
Pentru a -i si,uri c& pro,ra!u% nu intr& 6ntr0un cic%u in-init, a! ad&u,at o "aria*i%&
contor denu!it& cont, care este incre!entat& 6n -iecare cic%u/ Dac& contoru% este
!ai !are dec3t :$$$, "aria*i%a 6ntrea,& err pri!e)te "a%oarea : )i se 6ntrerupe
cic%u% do ('i%e cu a+utoru% instruc2iunii *reaZ/ <aria*i%a err este -o%osit& dup&
ter!inarea cic%u%ui/ Dac& err este $, 6nsea!n& c& cic%u% a -ost ter!inat nor!a%
4-&r& eroare5/ Dac& err este :, 6nse!n& c& a! dep&)it nu!&ru% !ai! de cic%uri )i
se "a tip&ri !esa+u% de eroareB N/ exsta so./t n nter&a./. a.es/
Aro-lem propus
7& se scrie pro,ra!u% surs& C care ca%cu%ea.& o r&d&cin& a ecua2iei -45I$, 6n
inter"a%u% 9a, *; -o%osind !etoda coardei/ Ounc2ia -45 a%e c&rei r&d&cini sunt
c&utate este 10GEJ::0G/
=ot
Metoda coardei este o !odi-icare a !etodei *isec2iei/ Wra-icu% -unc2iei -45 este
aproi!at prin dreapta care une)te puncte%e 4a, -4a55 )i 4*, -4*55, iar punctu% c se
,&se)te %a intersec2ia acestei drepte cu aa OB
c BI *0-4*54*0a5K9-4*50-4a5;/
A%,orit!u% !etodei coincide cu ce% a% *isectoarei cu deose*irea c& %a pri!u% pas c
se ca%cu%ea.& dup& re,u%a de !ai sus/
'.2 alculul coordonatelor unei retrointersecie
7& se deter!ine coordonate%e unui nu!ar n de puncte, %a care s0au !&surat
un,'iu% )i distan2a de %a sta2ia de %ucru %a -iecare punct, -o%osind !etoda
retrointersec2iei /
Pentru sta2ia de %ucru se cunosc ce%e dou& coordonate )i P/
O*s/ Aa X este orientat& pe "ertica%& de +os 6n sus con-or! siste!u%ui topo,ra-ic/
Date%e de intrare sunt B
Coordonate%e sta2iei de %ucru/
Vu!&ru% de puncte !&surate din sta2ia de %ucru/
Distan2a )i un,'iu% !&surat %a -iecare punct/
Date%e de ie)ireB
Coordonate%e X, k a%e -iec&rui punct !&surat a-i)ate pe !onitor )i scrise intr0
un -i)ier, -i)ieru% de %ucru este topoNcalc.c/
Pentru deter!inarea coordonate%or , P se ap%ic& re%a2ii%e de ca%cu% B
9i; IsJdist 9i;Qcos 4MfPIQun,'i 9i;KE$$5L
P 9i; IPsJdist 9i;Q sin 4MfPIQun,'i 9i;KE$$5L
sIcoordonata a sta2iei de %ucru/
LIMBAJUL C TEORIE I APLICAI I E$#
ksIcoordonata P a sta2iei de %ucru/
MfPI I"a%oarea constantei n/
Un,'iu% citit este 6n ,rade centi.i!a%e 4siste! topo,ra-ic5 )i este con"ertit &n
radiani, pentru a se uti%i.a -unc)ii%e !ate!atice din cadru% %i!*a+u%ui C/
-n#./'e<st'o012
-n#./'e<#ono012
-n#./'e<o012
-n#./'e<(at1012
&o' (an )*
+
>9EE * "17
nt ,n7
".oat /n41 ?B0@, 'st ?B0@,x?B0@,G?B0@,xs,Gs7
"1="open)3topoA#a.#0#3,3W3*7
p/ts )3 Ya.#/. #oor'onate x, G, axa x este pe &ert#a.a 3*7
p/ts )3 Dat n/(ar/. 'e p/n#te #tte3*7
s#an" )3='3,Jn*7
p/ts )3 Dat #oor'onate.e x s G a.e state3*7
s#an" )3=",="3,Jxs,JGs*7
"or )=17<=n7!!*
+
prnt" )3 Dat /n41/. s 'stanta pentr/ p/n#t/. =' 3,*7
s#an" )3=",="3,J/n41 ?@,J'st ?@*7
x ?@ =xs!'st ?@*#os )XAP9*/n41 ?@/B00*7
G ?@ =Gs!'st ?@* sn )XAP9*/n41 ?@/B00*7
"prnt" )"1,3p/n#t/. =' /==0;" '==0B" x==0:" G=
=0:"8n3,,/n41?@,'st?@,x?@,G?@*7
prnt" )3 p/n#t/. =' /==0;" '==0B" x==0:" G=
=0:"8n3,,/n41?@,'st?@,x?@,G?@*7
,
p/ts )3 \a.or.e #tte s #a.#/.ate s/nt s#rse n "ser/.
topoA#a.#0#3*7
p/ts )3 Apasa o tasta pentr/ ter(narea pro4ra(/./3*7
4et#1 )*7
,
'.10 alculul distanelor dintre puncte consecuti#e "i calculul
distanei totale dintre primul "i ultimul punct.
7e "a deter!ina distan2e%e par2ia%e )i distan2a tota%&dintre un nu!&r de
puncte %a care se cunosc coordonate%e )i P/
7ate de intrare$
Vu!&ru% puncte%or/
Coordonate%e , P a%e -iec&rui punct/
7ate de ieire $
Distan2e%e dintre puncte/
Distan2a tota%&/
LIMBAJUL C TEORIE I APLICAI I E$G
Distan2e%e par2ia%e dintre dou& puncte consecuti"e se deter!in& cu re%a2ia B
d9i;IsSrt449i;09iJ:;5Q49i;09iJ:;5J4P9i;0P9iJ:;5Q4P9i;0P9iJ:;55L
distan2a tota%& Io d9i;/
-n#./'e<st'o012
-n#./'e<#ono012
-n#./'e<o012
-n#./'e<(at1012
&o' (an )*
+
>9EE * "17
nt ,n7
".oat x?B0@,G?B0@,.,'?B0@7
"1="open)3topoA#a10#3,3W3*7
p/ts )3 Ya.#/. 'stante.or 'ntre p/n#te s ./n4(ea tota.a 3*7
p/ts )3 Dat n/(ar/. 'e p/n#te 3*7
s#an" )3 ='3,Jn*7
"or )=17<=n7!!*
+
prnt" )3 Dat #oor'onate.e x,G a.e p/n#t/./ =' 3,*7
s#an" )3 =",="3,Jx ?@,JG ?@*7
,
.=07
"or )=17<n7!!*
+
'?@=sZrt))x?@-x?!1@**)x?@-x?!1@*!)G?@-G?!1@**)G?@-
G?!1@**7
.=.!'?@7
"prnt" )"1,3Dstanta =' ==0;" 8n3,,'?@*7
prnt" )3 Dstanta =' ==0;" 8n3,,'?@*7
,
prnt" )3 E/n4(ea tota.a ==0;"8n3,.*7
"prnt" )"1,3E/n4(ea tota.a==0;"3,.*7
p/ts )3 \a.or.e 'stante.or s ./n4(ea tota.a s/nt s#rse n
"ser/. topoA#a10#3*7
p/ts )3 Apasa o tasta pentr/ ter(narea pro4ra(/./3*7
P:
PE
P1
X
k
X:
k:
XE
LIMBAJUL C TEORIE I APLICAI I E$=
4et#1 )*7
,
'.11. alculul momentelor de inerie "i po3iia centrului de
greutate folosind o ba3 de date pentru profile standard
n cadru% acestui ee!p%u s0a creat o *a.& de date, pentru o cate,orie de pro-i%e )i
s0a rea%i.at o inter-a2& ,ra-ic&, pentru a se 6n2e%e,e !ai *ine -or!a sec2iunii
trans"ersa%e/
Pentru ee!p%u% a%es nu!&ru% sec2iunii este :, iar pro-o%e%e disponi*i%e 6n *a.a de
date sunt UG, >, :$, :E/
Dup& indicarea pro-i%u%ui a%es din %ista de pro-i%e disponi*i%e, pro,ra!u% a-i)ea.&
caracteristici%e principa%e a%e pro-i%u%ui/
n etapa ur!&toare se cere distan2a dintre ce%e dou& pro-i%e U epri!at& 6n c!/
Pro,ra!u% deter!in& %&2i!ea !ini!& a p%at*ande%or )i indic& aceast& !&ri!e, dup&
care uti%i.atoru% "a introduce %&2i!ea )i ,rosi!ea ce%or dou& p%at*ande/
Pro,ra!u% %i"rea.& aria,!o!ente%e de iner2ie -a2& de ce%e dou& ae , P/
Pro,ra!u% se poate de."o%ta prin co!p%ectarea *a.ei de date cu noi "a%ori, pentru
pro-i%u% U c3t )i prin ad&u,area de noi tipuri de sec2iuni/
Pro,ra!u% a -ost e-ectuat cu scopu% de a 6!*ina no2iuni%e de ,ra-ic&, cu no2iuni%e
de ca%cu% )i rea%i.area unei *a.e de date a caracteristici%or ,eo!etrice a%e pro-i%e%or/
# include <stdio.h>
# include <conio.h>
# include <graphics.h>
void void main ()
{
int gdriver = DETECT,gmode,errorcode
int !ma!,"ma!,s,i,#,n,m
$loat a,%,c,d,t,&og,"og
$loat i"%, i&%, i"&%, i", i&, %eta, '", '&,i"",i&&
$loat h(, %(, a(, i"(, i&(, e"(,iu, iv, i"(&(,e&(
$loat u)*+,
u)(,=-.. u)/,=0./ u)1,=2.+1 u)0,=.3.. u).,=(0.(
u)-,=(.0/
u)3,=* u)*,=0.. u)2,=(( u)(+,=(+- u)((,=(2.0
u)(/,=(.0.
u)(1,=(+ u)(0,=. u)(.,=(1.. u)(-,=/+- u)(3,=/2.1
u)(*,=(...
u)(2,=(/ u)/+,=... u)/(,=(3 u)//,=1-0 u)/1,=01./
u)/0,=(.-
clrscr ()
initgraph(4gdriver,4gmode,5 5)
LIMBAJUL C TEORIE I APLICAI I E$>
!ma!=getma!!()"ma!=getma!"()
print$ (5! ma!=6d " ma!=6d5,!ma!,"ma!)
errorcode=graphresult()
i$(errorcode7=gr89) print$(5Eroare gra$ica:
6s;n5,grapherrormsg(errorcode))
cleardevice()
setvie'port(+,+,!ma!,"ma!,+)
set$illst"le (<8=>D?@>==,AED)
rectangle (.+,.+,(/+,.0)
rectangle (.+,(/2,(/+,(11)
moveto (*+,.0)
linerel (+,3.)
linerel (B/.,+)
linerel (+,B0)
linerel (/(,+)
linerel (+,B-3)
linerel (B/(,+)
linerel (+,B0)
linerel (/.,+)
moveto (2+,.0)
linerel (/.,+)
linerel (+,0)
linerel (B/(,+)
linerel (+,-3)
linerel (/(,+)
linerel (+,0)
linerel (B/.,+)
linerel (+,B3.)
moveto (33,(-+)
outte!t (5(5)
goto!" ((+,(.)
print$ (5Clegeti numarul sectiunii=5)
scan$ (56d5,4s)
goto!" ((+,(-)
print$ (5Dentru sectiunea aleasa se vor introduce elementele
caracteristice5)
goto!" (/+,(3)
print$ (5CDC<CT> 8 TC<TC DEETAF C8ET>EFCAE5)
getch ()
cleardevice ()
s'itch (s)
{
case (:
{
rectangle (.+,.+,(/+,.0)
LIMBAJUL C TEORIE I APLICAI I E$9
rectangle (.+,(/2,(/+,(11)
moveto (*+,.0)
linerel (+,3.)
linerel (B/.,+)
linerel (+,B0)
linerel (/(,+)
linerel (+,B-3)
linerel (B/(,+)
linerel (+,B0)
linerel (/.,+)
moveto (2+,.0)
linerel (/.,+)
linerel (+,0)
linerel (B/(,+)
linerel (+,-3)
linerel (/(,+)
linerel (+,0)
linerel (B/.,+)
linerel (+,B3.)
goto!" ((+,(+)
print$ (5Dati marimea pro$ilului F -,*,(+,(/=5)
scan$ (56d5,4n)
print$ (5 BBBB F6d are caracteristicileBBB;n5,n)
s'itch (n)
{
case -:
i=(
%rea9
case *:
i=3
case (+:
i=(1
%rea9
case (/:
i=(2
G
print$ (5h=6./$ %=6./$ a=6./$ i"=6./$ i&=6./$ e=6./$
5,u)i,,u)iH(,,u)iH/,,u)iH1,,u)iH0,,u)iH.,)
print$ (5;n Dati distanta dintre pro$ile in cm d=5)
scan$ (56$5,4d)
print$ (5Dati latimea mai mare sau = 6.+$ si grosimea
plat%andei in cm=5,/Iu)iH(,Hd)
scan$ (56$,6$5,4%,4t)
i"%=u)iH1,I/HtItItI%J-H%ItI/I(u)i,J/HtJ/)I(u)i,J/HtJ/)
i&%=u)iH0,I/H%I%I%ItJ-H/Iu)iH/,I(dJ/Hu)iH.,)I(dJ/Hu)iH.,)
a=/Iu)iH/,H%ItI/
LIMBAJUL C TEORIE I APLICAI I E:$
print$ (5;n aria =6./$ >"=6./$ >&=6./$;n5,a,i"%,i&%)
G
G
puts (5apasa o tasta5)
getch ()
g
'.12 4rogram pentru re3ol#area ecuaiei de gradul II
Pentru ca e%e"u% s& poat& %ucra sin,ur )i s& -ie testat -&r& a i!p%ica -actoru% u!an, s0
a rea%i.at un pro,ra! ce per!ite a%e,erea unui set de 9 ecua2ii de ,radu% II ,
a-i)area acestei ecua2ii 6ntr0un !od indentic cu scrierea pe ta*%&, apoi a-i)area
casetei de dia%o,, 6n care e%e"u% "a indica ce%e dou& so%u2ii/
n ur!&toarea etap& se e"a%uea.& de ca%cu%ator so%u2ii%e date cu so%u2ii%e corecte )i
atri*uie sau nu : punct /
7e continu& e"a%uarea ur!&toare%or > ecua2ii, 6n -ina% ca%cu%atoru% a-i)ea.&
puncta+u% o*2inut )i nota/
Pro,ra!u% co!*in& !odu% ,ra-ic cu !odu% tet )i prin de."o%tarea *a.ei de date
a-erente ce%or 1 coe-icien2i a, *, c a%e ecua2iei de ,radu% II, se poate rea%i.a
e"a%uarea a unui nu!&r c3t !ai !are de e%e"i/
La !odi-icarea *a.ei de date se "a 2ine cont ca so%u2ii%e siste!u%ui s& -ie "a%ori
rea%e/Pro,ra!u% surs& a -ost rea%i.at pentru nu!&ru% ca%cu%atoru%ui IG/
- n#./'e <st'o012
- n#./'e <#ono012
- n#./'e <'os012
- n#./'e <4rap1#s012
- n#./'e <(at1012
- n#./'e <st'.b012
&o' 4rest )&o'*7
&o' #ore#t )&o'*7
nt e#/B )".oat,".oat,".oat,".oat,".oat*7
#aseta1 )nt ,nt,nt ,nt, nt,nt *7
nt #asetaB )nt /( ,nt #/. , nt stn4a, nt s/s , nt #/.1,
nt #/.B*7
&o' (an )*
+
nt 4'r&er = DETEYT,4(o'e,error#o'e7
/ns4ne' .on4 s7
nt x(ax,G(ax,,,6,.,n,x,G,a,b,#,t,r,',",4,W1,WB7
nt e,e17
nt /(,#/.,stn4a,6os,'reapta,s/s,#/.1,#/.B7
".oat W,5?1N0@,xx1,xxB7
""./s1 )st'n*7
W1=07 WB=07
5?1:L@=17 5?1:N@=:7 5?1:8@=-;7
5?1:Q@=-L7 5?1;0@=0 7 5?1;1@=L7
LIMBAJUL C TEORIE I APLICAI I E::
5?1;B@=17 5?1;:@=L 7 5?1;;@=-N7
5?1;<@=17 5?1;L@=07 5?1;N@=-L;7
5?1;8@=N7 5?1;Q@=0 7 5?1<0@=07
5?1<1@=17 5?1<B@=-< 7 5?1<:@=07
5?1<;@=17 5?1<<@=-1B7 5?1<L@=:L7
5?1<N@=;7 5?1<8@=-N 7 5?1<Q@=:7
5?1L0@=<7 5?1L1@=1< 7 5?1LB@=107
#.rs#r )*7
x(ax=4et(axx)*7G(ax=4et(axG)*7
nt4rap1)J4'r&er,J4(o'e,3 3*7
set&eWport)0,0,4et(axx)*,4et(axG)*,0*7
error#o'e=4rap1res/.t)*7
")error#o'eT=4rOV* prnt")3Eroare 4ra"#a:
=s8n3,4rap1error(s4)error#o'e**7
#.ear'e&#e)*7
XEN9U:
#.rs#r )*7
set"..stG.e )SOE9DA>9EE,SED*7
bar )100,100,:00,B;0*7
set#o.or )da9TE*7
(o&eto )1B0,1L0*7
.neto )1B0,1B0*7
.neto )BNQ,1B0*7
set#o.or )OEAY`*7
o/ttextxG )1B<,1:0,3 AEMEOSA 3*7
o/ttextxG )1B<,1;0,3 Y.s0a \999-a 3*7
(o&eto )1B0,1L0*7
.neto )BNQ,1L0*7
.neto )BNQ,1B0*7
(o&eto )1B0,BB0*7
.neto )1B0,180*7
.neto )BNQ,180*7
set#o.or )da9TE*7
(o&eto )1B0,BB0*7
.neto )BNQ,BB0*7
.neto )BNQ,180*7
(o&eto )10<,B8<*7
.neto )BQ<,B8<*7
.neto )BQ<,B8<*7
set"..stG.e )SOE9DA>9EE,E9MaTMSAc*7
bar )100,B80,:00,;;0*7
set#o.or )da9TE*7
(o&eto )10<,;:<*7
.neto )10<,B8<*7
.neto )BQ<,B8<*7
set#o.or )OEAY`*7
.neto )BQ<,;:<*7
.neto )10<,;:<*7
o/ttextxG )1:<,1Q0,3TEST DE E\AEUASE3*7
o/ttextxG )1:<,B00,3YU YAEYUEATOSUE 3*7
set#o.or )SED*7
o/ttextxG )1B<,:1<,3EYUAT9A DE MSADUE 3*7
o/ttextxG )1B<,::0,3 a. 'o.ea 3*7
LIMBAJUL C TEORIE I APLICAI I E:E
o/ttextxG )1B<,:;<,33*7
4otoxG )1L,B;*7
prnt" )3 9NTSODUYET9 NS 3*7
4otoxG )1L,B<*7
prnt" )3 YAEYUEATOSUEU9 =3*7
s#an" )3='3,J"*7
set#o.or )OEUE*7
"or )W=107W<=<07W=W!B*
+
'e.aG ):0*7
#r#.e );<0,:00,L0!W*7
,
'e.aG ):000*7
#.ear'e&#e)*7
"or )=-BL!BN*"7<=BN*"7=!:*
+
a=5?@7
b=5?!1@7
#=5?!B@7
set"..stG.e )SOE9DA>9EE,SED*7
bar )100,100,:10,1Q0*7
set#o.or )da9TE*7
(o&eto )1B0,1N0*7
.neto )1B0,1B0*7
.neto )BQ0,1B0*7
set#o.or )OEAY`*7
.neto )BQ0,1N0*7
.neto )1B0,1N0*7
4otoxG )18,Q*7
prnt" )3SEbOE\AT9 EYUAT9A3*7
4otoxG )B0,10*7
" )a==1*
+
" )b<0*
" )b==-1*
+
" )#<0*
prnt" )3x]B-x='=03,#*7
e.se
" )#==0*
prnt" )3x]B-x=03*7
e.se
prnt" )3x]B-x!='=03,#*7
,
e.se
+
" )#<0*
prnt" )3x]B='x='=03,b,#*7
e.se
" )#==0*
prnt" )3x]B='x=03,b*7
e.se
prnt" )3x]B='x!='=03,b,#*7
LIMBAJUL C TEORIE I APLICAI I E:1
,
e.se
" )b==0*
+
" )#<0*
prnt" )3x]B='=03,#*7
e.se
" )#==0*
prnt" )3x]B=03*7
e.se
prnt" )3x]B!='=03,#*7
,
e.se
" )b==1*
+
" )#<0*
prnt" )3x]B!x='=03,#*7
e.se
" )#==0*
prnt" )3x]B!x=03*7
e.se
prnt" )3x]B!x!='=03,#*7
7
,
e.se
" )#<0*
prnt" )3x]B!='x='=03,b,#*7
e.se
" )#==0*
prnt" )3x]B!='x=03,b*7
e.se
prnt" )3x]B!='x!='=03,b,#*7
7
,
e.se
+
" )b<0*
")b==-1*
+
" )#<0*
prnt" )3='x]B-x='=03,a,#*7
e.se
" )#==0*
prnt" )3='x]B-x=03,a*7
e.se
prnt" )3='x]B-x!='=03,a,#*7
,
e.se
+
" )#<0*
prnt" )3='x]B='x='=03,a,b,#*7
e.se
LIMBAJUL C TEORIE I APLICAI I E:F
" )#==0*
prnt" )3='x]B='x=03,a,b*7
e.se
prnt" )3='x]B='x!='=03,a,b,#*7
,
e.se
" )b==0*
+
" )#<0*
prnt" )3='x]B='=03,a,#*7
e.se
" )#==0*
prnt" )3='x]B=03,a*7
e.se
prnt" )3='x]B!='=03,a,#*7
,
e.se
" )b==1*
+
" )#<0*
prnt" )3='x]B!x='=03,a,#*7
e.se
" )#==0*
prnt" )3='x]B!x=03,a*7
e.se
prnt" )3='x]B!x!='=03,a,#*7
7
,
e.se
" )#<0*
prnt" )3='x]B!='x='=03,a,b,#*7
e.se
" )#==0*
prnt" )3='x]B!='x=03,a,b*7
e.se
prnt" )3='x]B!='x!='=03,a,b,#*7
7
,
set"..stG.e )SOE9DA>9EE,YcAN*7
bar )100,B<0,:10,:;B*7
set#o.or )da9TE*7
(o&eto )1B0,::0*7
.neto )1B0,BL<*7
.neto )BQ0,BL<*7
set#o.or )OEAY`*7
.neto )BQ0,::0*7
.neto )1B0,::0*7
4otoxG )18,18*7
prnt" )3SYS9ET9 SOEUT99EE3*7
4otoxG )B0,1Q*7
prnt" )3K1=3*7
s#an" )3="3,Jxx1*7
4otoxG )B0,B0*7
LIMBAJUL C TEORIE I APLICAI I E:#
prnt" )3KB=3*7
s#an" )3="3,JxxB*7
W1= e#/B )a,b,#,xx1,xxB*7
set"..stG.e )SOE9DA>9EE,cEEEOd*7
bar ):B0,100,<L0,1Q0*7
set#o.or )da9TE*7
(o&eto ):;0,180*7
.neto ):;0,110*7
.neto )<<0,110*7
set#o.or )OEAY`*7
.neto )<<0,180*7
.neto ):;0,180*7
4otoxG );<,Q*7
prnt" )3PUNYTAPUE OOT9NUT3*7
4otoxG );<,10*7
prnt" )3PAST9AE=='3,W1*7
WB=W1!WB7
4otoxG );<,11*7
prnt" )3TOTAE=='3,WB*7
set"..stG.e )SOE9DA>9EE,OEUE*7
bar )B00,:;8,:80,:N0*7
'e.aG )100*7
"or )=17<=<7=!1*
+
4otoxG )B8,B:*7
p/ts )3 3*7
'e.aG )100*7
4otoxG )B8,B:*7
p/ts )3 Apasat o tasta 3*7
'e.aG )B00*7
,
4et#1 )*7
#.rs#r )*7
,
'':
set"..stG.e )SOE9DA>9EE,XAMENTA*7
set#o.or )OEUE*7
bar )100,B00,;00,:L0*7
4otoxG )1<,1<*7
prnt" )3 PUNYTAPUE TOTAE OOT9NUT ESTE= =' 8n3,WB *7
4otoxG )1<,1N*7
prnt" )3 AT9 OOT9NUT NOTA : =' 3,WB!1*7
4otoxG )1N,B1*7
p/ts )3 APASAT9 O TASTA 3*7
4et#1 )*7
#.ose4rap1 )*7
,
nt e#/B)".oat a, ".oat b, ".oat #,
".oat xx1 , ".oat xxB*
+
".oat x1,xB,x1r,x1,xB,' 7
LIMBAJUL C TEORIE I APLICAI I E:G
nt p/n#ta61 ,p/n#t6t ,7
#1ar e7
n#ep/t:
#.rs#r )*7
so/n' )1B00*7
'e.aG )B00*7
noso/n' )*7
p/ts )33*7
/* p/ts )3 EYUAT9A
DE MSADUE AE DO9EEA YU YOE>9Y9ENT9
SEAE9 3*7 */
""./s1 )st'n*7
'=b*b-;*a*#7
")'20*
+
'=sZrt )'*7
'='/)B*a*7
x1=-b/)B*a*!'7
xB=-b/)B*a*-'7
/* prnt" )3 So./t.e e#/ate
s/nt rea.e s '"erte 8n3*7 */
/* prnt" )3 x1==" xB=
="8n3,x1,xB*7 */
,
e.se
" )'==0*
+
" )b==0*
+
x1=07
xB=07
,
e.se
+
x1=-b/)B*a*7
xB=x17
,
/* prnt" )3 So./t.e e#/ate
s/nt rea.e s e4a.e 8n 3*7 */
/* prnt" )3 x1=xB=="
8n3,x1,xB*7 */
,
e.se
+
'=-'7
'=sZrt )'*7
x1r=-b/)B*a*7
x1='/)B*a*7
/* prnt" )3 So./t.e e#/ate
n/ s/nt n/(ere rea.e 8n3*7 */
/* prnt" )3 x1=="!*=" xB=
="-*="8n3,x1r,x1,x1r,x1*7 */
LIMBAJUL C TEORIE I APLICAI I E:=
,
""./s1 )st'n*7
" )"abs )xx1-x1*<=000B*
+
" )"abs)xxB-xB*<=000B*
+
p/n#ta61=17
#ore#t )*7
,
e.se
+
p/n#ta61=07
4rest )*7
,
,
e.se
+
" )"abs )xxB-x1*<=000B*
+
" )"abs )xx1-xB*<=000B*
+
p/n#ta61=17
#ore#t )*7
,
e.se
+
p/n#ta61=07
4rest )*7
,
,
e.se
+
p/n#ta61=07
4rest )*7
,
,
set"..stG.e )SOE9DA>9EE,MSEEN*7
bar ):B0,B<0,<L0,:;B*7
set#o.or )da9TE*7
(o&eto ):;0,::0*7
.neto ):;0,BL<*7
.neto )<<0,BL<*7
set#o.or )OEAY`*7
.neto )<<0,::0*7
.neto ):;0,::0*7
4otoxG );<,18*7
prnt" )3SOEUT99EE YOSEYTE SUNT3*7
4otoxG );<,1Q*7
prnt" )3K1==0B"3,x1*7
4otoxG );<,B0*7
prnt" )3KB==0B"3,xB*7
ret/rn )p/n#ta61*7
LIMBAJUL C TEORIE I APLICAI I E:>
,
&o' #ore#t )&o'*
+
bar )B00,B00,:80,B;0*7
4otoxG )BQ,1;*7
prnt" )3 YOSEYT 3*7
,
&o' 4rest )&o'*
+
bar )B00,B00,:80,B;0*7
4otoxG )BQ,1;*7
prnt" )3 MSES9T 3* 7
,
#aseta1 )nt /( ,nt #/. , nt stn4a, nt s/s , nt #/.1, nt
#/.B*
+
nt 'reapta,6os 7
'reapta=stn4a!B007
6os=s/s!1Q07
set"..stG.e )/(,#/.*7
bar )stn4a,s/s,'reapta,6os*7
set#o.or )#/.1*7
(o&eto )stn4a!B0,s/s!Q0*7
.neto )stn4a!B0,s/s!B0*7
.neto )'reapta-:0,s/s!B0*7
set#o.or )#/.B*7
o/ttextxG )stn4a!B<,s/s!;0,3 test1 3*7
o/ttextxG )stn4a!B<,s/s!L0,3 rn' B 3*7
(o&eto )stn4a!B0,s/s!Q0*7
.neto )'reapta-:0,s/s!Q0*7
.neto )'reapta-:0,s/s!B0*7
(o&eto )stn4a!B0,s/s!1N0*7
.neto )stn4a!B0,s/s!100*7
.neto )'reapta-:0,s/s!100*7
set#o.or )#/.1*7
(o&eto )stn4a!B0,s/s!1N0*7
.neto )'reapta-:0,s/s!1N0*7
.neto )'reapta-:0,s/s!100*7
,
nt #asetaB )nt /( ,nt #/. , nt stn4a, nt s/s , nt #/.1,
nt #/.B*
+
nt 'reapta,6os,p/n#ta61 7
'reapta=stn4a!B<07
6os=s/s!1Q07
set"..stG.e )/(,#/.*7
bar )stn4a,s/s,'reapta,6os*7
set#o.or )#/.1*7
(o&eto )stn4a!B0,s/s!Q0*7
LIMBAJUL C TEORIE I APLICAI I E:9
.neto )stn4a!B0,s/s!B0*7
.neto )'reapta-:0,s/s!B0*7
set#o.or )#/.B*7
o/ttextxG )stn4a!B<,s/s!;0,33*7
o/ttextxG )stn4a!B<,s/s!L0,33*7
(o&eto )stn4a!B0,s/s!Q0*7
.neto )'reapta-:0,s/s!Q0*7
.neto )'reapta-:0,s/s!B0*7
(o&eto )stn4a!B0,s/s!1N0*7
.neto )stn4a!B0,s/s!100*7
.neto )'reapta-:0,s/s!100*7
set#o.or )#/.1*7
(o&eto )stn4a!B0,s/s!1N0*7
.neto )'reapta-:0,s/s!1N0*7
.neto )'reapta-:0,s/s!100*7
o/ttextxG )stn4a!:8,s/s!:0,3SOEUT99EE YOSEYTE SUNT3*7
4otoxG )stn4a/L!:,s/s/1B!:*7
prnt" )3K1==0B" 8n3*7
4otoxG )stn4a/L!:,s/s/1B!<*7
prnt" )3KB==0B"3*7
ret/rn )p/n#ta61*7
,
#aseta: )nt /( ,nt #/. , nt stn4a, nt s/s , nt #/.1, nt
#/.B*
+
nt 'reapta,6os 7
'reapta=stn4a!B<07
6os=s/s!1Q07
set"..stG.e )/(,#/.*7
bar )stn4a,s/s,'reapta,6os*7
set#o.or )#/.1*7
(o&eto )stn4a!B0,s/s!Q0*7
.neto )stn4a!B0,s/s!B0*7
.neto )'reapta-:0,s/s!B0*7
set#o.or )#/.B*7
o/ttextxG )stn4a!B<,s/s!;0,3 test1 3*7
o/ttextxG )stn4a!B<,s/s!L0,3 rn' B 3*7
(o&eto )stn4a!B0,s/s!Q0*7
.neto )'reapta-:0,s/s!Q0*7
.neto )'reapta-:0,s/s!B0*7
(o&eto )stn4a!B0,s/s!1N0*7
.neto )stn4a!B0,s/s!100*7
.neto )'reapta-:0,s/s!100*7
set#o.or )#/.1*7
(o&eto )stn4a!B0,s/s!1N0*7
.neto )'reapta-:0,s/s!1N0*7
.neto )'reapta-:0,s/s!100*7
4otoxG );<,18*7
prnt" )3SOEUT99EE YOSEYTE SUNT3*7
4otoxG );<,1Q*7
LIMBAJUL C TEORIE I APLICAI I EE$
prnt" )3K1==0B"3*7
4otoxG );<,B0*7
prnt" )3KB==0B"3*7
,
'.13 4rogram de re3ol#are a sistemului liniar cu 2 necunoscute.
Pentru ca e%e"u% s& poat& %ucra sin,ur )i s& -ie testat -&r& a i!p%ica -actoru% u!an, s0
a rea%i.at un pro,ra! ce per!ite a%e,erea unui set de 9 siste!e %iniare , a-i)area
acestor siste!e 6ntr0un !od indentic cu scrierea pe ta*%&, apoi a-i)area casetei de
dia%o,, 6n care e%e"u% "a indica ce%e dou& so%u2ii/
n ur!&toarea etap& se e"a%uea.& de ca%cu%ator so%u2ii%e date cu so%u2ii%e corecte )i
atri*uie sau nu a unui punct pentru -iecare siste! pre%ucrat /
7e continu& e"a%uarea ur!&toare%or > siste!e, 6n -ina% ca%cu%atoru% a-i)ea.&
puncta+u% o*2inut )i nota/
Pro,ra!u% co!*in& !odu% ,ra-ic cu !odu% tet )i prin de."o%tarea *a.ei de date
a-erente ce%or G coe-icien2i a, *, c, d,e, -, a%e siste!u%ui %iniar, se poate rea%i.a
e"a%uarea a unui nu!&r c3t !ai !are de e%e"i/
La !odi-icarea *a.ei de date se "a 2ine cont ca so%u2ii%e siste!u%ui s& -ie "a%ori
rea%e/ Pentru a contro%a accesu% 6n pro,ra! c3t )i 6nc'iderea pro,ra!u%ui, s0a
pre"&.ut un cod de intrare :9$$ )i un cod de ter!inare :>$$, aceste coduri se pot
!odi-ica prin sc'i!*area "a%ori%or a-erente 6n pro,ra!u% surs&/
Pro,ra!u% surs& este e-ectuat pentru nu!&ru% ca%cu%atoru%ui I:/
- n#./'e <st'o012
- n#./'e <#ono012
- n#./'e <'os012
- n#./'e <4rap1#s012
- n#./'e <(at1012
- n#./'e <st'.b012
- n#./'e <st'ar4012
&o' 4rest )&o'*7
&o' #ore#t )&o'*7
nt e#/B )".oat,".oat,".oat,".oat,".oat,".oat,".oat,".oat*7
&o' (an )*
+
nt 4'r&er = DETEYT,4(o'e,error#o'e7
/ns4ne' .on4 s7
nt x(ax,G(ax,,,6,.,n,x,G,a,b,#,a1,b1,#1,t,r,',",4,W1,WB7
nt e7
nt /(,#/.,stn4a,6os,'reapta,s/s,#/.1,#/.B7
".oat W,5?1N0@,xx1,xxB,e17
""./s1 )st'n*7
W1=07 WB=07
p/ts )3DAT9 YODUE3*7
s#an" )3='3,Jr*7
" )r==1Q00*
+
LIMBAJUL C TEORIE I APLICAI I EE:
#.rs#r )*7
x(ax=4et(axx)*7G(ax=4et(axG)*7
nt4rap1)J4'r&er,J4(o'e,3 3*7
set&eWport)0,0,4et(axx)*,4et(axG)*,0*7
error#o'e=4rap1res/.t)*7
")error#o'eT=4rOV* prnt")3Eroare 4ra"#a:
=s8n3,4rap1error(s4)error#o'e**7
#.ear'e&#e)*7
XEN9U:
/* settextstG.e )SANSASES9>A>ONT,aOS9bAD9S,0*7 */
/* set/ser#1ars5e )L,B,L,B*7 */
set"..stG.e )SOE9DA>9EE,SED*7
bar )100,100,:00,B;0*7
set#o.or )da9TE*7
(o&eto )1B0,1L0*7
.neto )1B0,1B0*7
.neto )BNQ,1B0*7
set#o.or )OEAY`*7
o/ttextxG )1B<,1:0,3 AEMEOSA 3*7
o/ttextxG )1B<,1;0,3 Y.s0a \999-a 3*7
(o&eto )1B0,1L0*7
.neto )BNQ,1L0*7
.neto )BNQ,1B0*7
(o&eto )1B0,BB0*7
.neto )1B0,180*7
.neto )BNQ,180*7
set#o.or )da9TE*7
(o&eto )1B0,BB0*7
.neto )BNQ,BB0*7
.neto )BNQ,180*7
(o&eto )10<,B8<*7
.neto )BQ<,B8<*7
.neto )BQ<,B8<*7
set"..stG.e )SOE9DA>9EE,E9MaTMSAc*7
bar )100,B80,:00,;;0*7
set#o.or )da9TE*7
(o&eto )10<,;:<*7
.neto )10<,B8<*7
.neto )BQ<,B8<*7
set#o.or )OEAY`*7
.neto )BQ<,;:<*7
.neto )10<,;:<*7
o/ttextxG )1:<,1Q0,3TEST DE E\AEUASE3*7
o/ttextxG )1:<,B00,3YU YAEYUEATOSUE 3*7
set#o.or )SED*7
o/ttextxG )1B<,:1<,3S9STEXE DE EYUAT99 3*7
o/ttextxG )1B<,::0,3 3*7
o/ttextxG )1B<,:;<,33*7
4otoxG )1L,B;*7
prnt" )3 9NTSODUYET9 NS 3*7
4otoxG )1L,B<*7
prnt" )3 YAEYUEATOSUEU9 =3*7
LIMBAJUL C TEORIE I APLICAI I EEE
s#an" )3='3,J"*7
set#o.or )OEUE*7
"or )W=107W<=<07W=W!B*
+
'e.aG ):0*7
#r#.e );<0,:00,L0!W*7
,
'e.aG ):000*7
#.ear'e&#e)*7
5?1@=17 5?B@=07 5?:@=<7
5?;@=B7 5?<@=:7 5?L@=;7
5?N@=<75?8@=-175?Q@=:7
5?10@=075?11@=175?1B@=B7
5?1:@=17 5?1;@=-:7 5?1<@=07
5?1L@=<7 5?1N@=-N7 5?18@=87
5?1Q@=-;75?B0@=175?B1@=-:7
5?BB@=175?B:@=175?B;@=N7
5?B<@=17 5?BL@=-17 5?BN@=;7
5?B8@=17 5?BQ@=17 5?:0@=117
5?:1@=175?:B@=B75?::@=:7
5?:;@=B75?:<@=175?:L@=:7
5?:N@=17 5?:8@=17 5?:Q@=17
5?;0@=17 5?;1@=-17 5?;B@=-:7
5?;:@=-175?;;@=;75?;<@=<7
5?;L@=175?;N@=:75?;8@=B7
5?;Q@=:7 5?<0@=B7 5?<1@=107
5?<B@=N7 5?<:@=-87 5?<;@=-B7
"or )=-<:!<;*"7<=<;*"7=!L*
+
set"..stG.e )SOE9DA>9EE,SED*7
bar )100,100,:10,1Q0*7
set#o.or )da9TE*7
(o&eto )1B0,180*7
.neto )1B0,110*7
.neto )BQ0,110*7
set#o.or )OEAY`*7
.neto )BQ0,180*7
.neto )1B0,180*7
4otoxG )18,8*7
prnt" )3SEbOE\AT9 S9STEXUE3*7
4otoxG )B0,10*7
a=5?@7
b=5?!1@7
#=5?!B@7
a1=5?!:@7
b1=5?!;@7
#1=5?!<@7
" )a==1*
+
" )b<0*
" )b==-1*
LIMBAJUL C TEORIE I APLICAI I EE1
+
" )#<0*
prnt" )3x-G=='3,#*7
e.se
" )#==0*
prnt" )3x-G=03*7
e.se
prnt" )3x-G=='3,#*7
,
e.se
+
" )#<0*
prnt" )3x='G=='3,b,#*7
e.se
" )#==0*
prnt" )3x='G=03,b*7
e.se
prnt" )3x='G=='3,b,#*7
,
e.se
" )b==0*
+
" )#<0*
prnt" )3x=='3,#*7
e.se
" )#==0*
prnt" )3x=03*7
e.se
prnt" )3x=='3,#*7
,
e.se
" )b==1*
+
" )#<0*
prnt" )3x!G=='3,#*7
e.se
" )#==0*
prnt" )3x!G=03*7
e.se
prnt" )3x!G=='3,#*7
7
,
e.se
" )#<0*
prnt" )3x!='G=='3,b,#*7
e.se
" )#==0*
prnt" )3x!='G=03,b*7
e.se
prnt" )3x!='G=='3,b,#*7
7
,
e.se
LIMBAJUL C TEORIE I APLICAI I EEF
" )aT=0*
+
" )b<0*
")b==-1*
+
" )#<0*
prnt" )3='x-G=='3,a,#*7
e.se
" )#==0*
prnt" )3='x-G=03,a*7
e.se
prnt" )3='x-G=='3,a,#*7
,
e.se
+
" )#<0*
prnt" )3='x='G =='3,a,b,#*7
e.se
" )#==0*
prnt" )3='x='G=03,a,b*7
e.se
prnt" )3='x='G=='3,a,b,#*7
,
e.se
" )b==0*
+
" )#<0*
prnt" )3='x=='3,a,#*7
e.se
" )#==0*
prnt" )3='x=03,a*7
e.se
prnt" )3='x=='3,a,#*7
,
e.se
" )b==1*
+
" )#<0*
prnt" )3='x!G=='3,a,#*7
e.se
" )#==0*
prnt" )3='x!G=03,a*7
e.se
prnt" )3='x!G=='3,a,#*7
7
,
e.se
" )#<0*
prnt" )3='x!='G=='3,a,b,#*7
e.se
" )#==0*
prnt" )3='x!='G=03,a,b*7
e.se
LIMBAJUL C TEORIE I APLICAI I EE#
prnt" )3='x!='G=='3,a,b,#*7
7
,
e.se
+
" )b<0*
" )b==-1*
+
" )#<0*
prnt" )3-G=='3,#*7
e.se
" )#==0*
prnt" )3-G=03*7
e.se
prnt" )3-G=='3,#*7
,
e.se
+
" )#<0*
prnt" )3='G=='3,b,#*7
e.se
" )#==0*
prnt" )3='G=03,b*7
e.se
prnt" )3='G=='3,b,#*7
,
e.se
" )b==0*
+
" )#<0*
prnt" )3=='3,#*7
e.se
" )#==0*
prnt" )3=03*7
e.se
prnt" )3=='3,#*7
,
e.se
" )b==1*
+
" )#<0*
prnt" )3G=='3,#*7
e.se
" )#==0*
prnt" )3G=03*7
e.se
prnt" )3G=='3,#*7
,
e.se
" )#<0*
LIMBAJUL C TEORIE I APLICAI I EEG
prnt" )3='G=='3,b,#*7
e.se
" )#==0*
prnt" )3='G=03,b*7
e.se
prnt" )3='G=='3,b,#*7
7
,
4otoxG )B0,11*7
" )a1==1*
+
" )b1<0*
" )b1==-1*
+
" )#1<0*
prnt" )3x-G=='3,#1*7
e.se
" )#1==0*
prnt" )3x-G=03*7
e.se
prnt" )3x-G=='3,#1*7
,
e.se
+
" )#1<0*
prnt" )3x='G=='3,b1,#1*7
e.se
" )#1==0*
prnt" )3x='G=03,b1*7
e.se
prnt" )3x='G=='3,b1,#1*7
,
e.se
" )b1==0*
+
" )#1<0*
prnt" )3x=='3,#1*7
e.se
" )#1==0*
prnt" )3x=03*7
e.se
prnt" )3x=='3,#1*7
,
e.se
" )b1==1*
+
" )#1<0*
prnt" )3x!G=='3,#1*7
e.se
" )#1==0*
prnt" )3x!G=03*7
LIMBAJUL C TEORIE I APLICAI I EE=
e.se
prnt" )3x!G=='3,#1*7
7
,
e.se
" )#1<0*
prnt" )3x!='G=='3,b1,#1*7
e.se
" )#1==0*
prnt" )3x!='G=03,b1*7
e.se
prnt" )3x!='G=='3,b1,#1*7
7
,
e.se
" )a1T=0*
+
" )b1<0*
")b1==-1*
+
" )#1<0*
prnt" )3='x-G=='3,a1,#1*7
e.se
" )#1==0*
prnt" )3='x-G=03,a1*7
e.se
prnt" )3='x-G=='3,a1,#1*7
,
e.se
+
" )#1<0*
prnt" )3='x='G =='3,a1,b1,#1*7
e.se
" )#1==0*
prnt" )3='x='G=03,a1,b1*7
e.se
prnt" )3='x='G=='3,a1,b1,#1*7
,
e.se
" )b1==0*
+
" )#1<0*
prnt" )3='x=='3,a1,#1*7
e.se
" )#1==0*
prnt" )3='x=03,a1*7
e.se
prnt" )3='x=='3,a1,#1*7
,
e.se
" )b1==1*
LIMBAJUL C TEORIE I APLICAI I EE>
+
" )#1<0*
prnt" )3='x!G=='3,a1,#1*7
e.se
" )#1==0*
prnt" )3='x!G=03,a1*7
e.se
prnt" )3='x!G=='3,a1,#1*7
7
,
e.se
" )#1<0*
prnt" )3='x!='G=='3,a1,b1,#1*7
e.se
" )#1==0*
prnt" )3='x!='G=03,a1,b1*7
e.se
prnt" )3='x!='G=='3,a1,b1,#1*7
7
,
e.se
+
" )b1<0*
" )b1==-1*
+
" )#1<0*
prnt" )3-G=='3,#1*7
e.se
" )#1==0*
prnt" )3-G=03*7
e.se
prnt" )3-G=='3,#1*7
,
e.se
+
" )#1<0*
prnt" )3='G=='3,b1,#1*7
e.se
" )#1==0*
prnt" )3='G=03,b1*7
e.se
prnt" )3='G=='3,b1,#1*7
,
e.se
" )b1==0*
+
" )#1<0*
prnt" )3=='3,#1*7
e.se
" )#1==0*
prnt" )3=03*7
LIMBAJUL C TEORIE I APLICAI I EE9
e.se
prnt" )3=='3,#1*7
,
e.se
" )b1==1*
+
" )#1<0*
prnt" )3G=='3,#1*7
e.se
" )#1==0*
prnt" )3G=03*7
e.se
prnt" )3G=='3,#1*7
,
e.se
" )#1<0*
prnt" )3='G=='3,b1,#1*7
e.se
" )#1==0*
prnt" )3='G=03,b1*7
e.se
prnt" )3='G=='3,b1,#1*7
7
,
set"..stG.e )SOE9DA>9EE,YcAN*7
bar )100,B<0,:10,:;B*7
set#o.or )da9TE*7
(o&eto )1B0,::0*7
.neto )1B0,BL<*7
.neto )BQ0,BL<*7
set#o.or )OEAY`*7
.neto )BQ0,::0*7
.neto )1B0,::0*7
4otoxG )18,18*7
prnt" )3SYS9ET9 SOEUT9A3*7
4otoxG )B0,1Q*7
prnt" )3K=3*7
s#an" )3="3,Jxx1*7
4otoxG )B0,B0*7
prnt" )3c=3*7
s#an" )3="3,JxxB*7
W1= e#/B )a,b,#,a1,b1,#1,xx1,xxB*7
set"..stG.e )SOE9DA>9EE,cEEEOd*7
bar ):B0,100,<L0,1Q0*7
set#o.or )da9TE*7
(o&eto ):;0,180*7
.neto ):;0,110*7
.neto )<<0,110*7
set#o.or )OEAY`*7
.neto )<<0,180*7
.neto ):;0,180*7
LIMBAJUL C TEORIE I APLICAI I E1$
4otoxG );<,Q*7
prnt" )3PUNYTAPUE OOT9NUT3*7
4otoxG );<,10*7
prnt" )3PAST9AE=='3,W1*7
WB=W1!WB7
4otoxG );<,11*7
prnt" )3TOTAE=='3,WB*7
set"..stG.e )SOE9DA>9EE,OEUE*7
bar )B00,:;8,:80,:N0*7
'e.aG )100*7
"or )=17<=<7=!1*
+
4otoxG )B8,B:*7
p/ts )3 3*7
'e.aG )100*7
4otoxG )B8,B:*7
p/ts )3 Apasat o tasta 3*7
'e.aG )B00*7
,
4et#1 )*7
#.rs#r )*7
,
'':
set"..stG.e )SOE9DA>9EE,XAMENTA*7
set#o.or )OEUE*7
bar )100,B00,;00,:L0*7
4otoxG )1<,1<*7
prnt" )3 PUNYTAPUE TOTAE OOT9NUT ESTE= =' 8n3,WB *7
4otoxG )1<,1N*7
prnt" )3 AT9 OOT9NUT NOTA : =' 3,WB!1*7
4otoxG )1N,B1*7
p/ts )3YODUE DE TESX9NASE3*7
4otoxG )1N,BB*7
""./s1 )st'n*7
s#an" )3="3,Je1*7
" )e1==1800*
+
4otoxG )1N,BB*7
p/ts )3 3*7
4otoxG )1N,B1*7
p/ts )3YOSEYT APASAT9 O TASTA3*7
,
e.se
+
4otoxG )1N,BB*7
p/ts )3 3*7
4oto ''7
,
,
e.se
p/ts )38n ESOASE3*7
4et#1 )*7
LIMBAJUL C TEORIE I APLICAI I E1:
#.ose4rap1 )*7
,
nt e#/B)".oat a, ".oat b, ".oat #,".oat a1, ".oat b1,
".oat #1, ".oat xx1 , ".oat xxB*
+
".oat x1,xB,' 7
nt p/n#ta61 ,p/n#t6t ,7
#1ar e7
n#ep/t:
#.rs#r )*7
so/n' )1B00*7
'e.aG )B00*7
noso/n' )*7
p/ts )33*7
""./s1 )st'n*7
'=a*b1-a1*b7
")'==0*
+
prnt" )3 Sste(/. n/ are so./t /n#e 8n3*7
,
e.se
+
x1=)#1*b-#*b1*/)a1*b-a*b1*7
xB=)#1*a-#*a1*/)a*b1-a1*b*7
,
""./s1 )st'n*7
" )"abs )xx1-x1*<=000B*
+
" )"abs)xxB-xB*<=000B*
+
p/n#ta61=17
#ore#t )*7
,
e.se
+
p/n#ta61=07
4rest )*7
,
,
e.se
+
p/n#ta61=07
4rest )*7
,
set"..stG.e )SOE9DA>9EE,MSEEN*7
bar ):B0,B<0,<L0,:;B*7
set#o.or )da9TE*7
(o&eto ):;0,::0*7
.neto ):;0,BL<*7
.neto )<<0,BL<*7
LIMBAJUL C TEORIE I APLICAI I E1E
set#o.or )OEAY`*7
.neto )<<0,::0*7
.neto ):;0,::0*7
4otoxG );<,18*7
prnt" )3SOEUT99EE YOSEYTE SUNT3*7
4otoxG );<,1Q*7
prnt" )3K==0B"3,x1*7
4otoxG );<,B0*7
prnt" )3c==0B"3,xB*7
ret/rn )p/n#ta61*7
,
&o' #ore#t )&o'*
+
bar )B00,B00,:80,B;0*7
4otoxG )BQ,1;*7
prnt" )3 YOSEYT 3*7
,
&o' 4rest )&o'*
+
bar )B00,B00,:80,B;0*7
4otoxG )BQ,1;*7
prnt" )3 MSES9T 3* 7
,
LIMBAJUL C TEORIE I APLICAI I E11
Gi-liografie
:/ 8i%%ia!s 7/, Pro,ra!!in, t'e G>$$$, 7P*e Inc/, BerZe%eP, :9>E
E/ Patru*anP M/, Totu% despre !icroprocesoru% i>$, Editura te'nic&, Bucure)ti, :9>9
1/ Caius I/, )/a/, Mate!atici c%asice )i !oderne, Editura te'nic&, Bucure)ti, :9>1
F/ Bo*ancu </, )/a/, Dic2ionar de !ate!atici ,enera%e, Editura encic%opedic&
ro!3n&, Bucure)ti, :9=F
#/ Ionic& A/, Iordan </, A%,orit!i )i pro,ra!e, Editura Mirton, Ti!i)oara, :99F
G/ I%in A/, Munteanu C/, Pro,ra!area ca%cu%aoare%or H Li!*a+u% C, Editura
ori.onturi uni"ersitare, Ti!i)oara, E$$$
=/ Ve,rescu L/, Li!*a+u% C )i CJJ pentru 6ncep&tori, "o%u!e%e :, E )i 1, Editura
!icroin-or!atica, C%u+, :99F
>/ C&prariu </, W'id de uti%i.are Tur*o C E/$, Editura !icroin-or!atica, C%u+, :99:
9/ C'ioreanu C/, Uti%i.are co!en.i inter-e2e M70DO7 G/$, Editura !icroin-or!atica,
C%u+, :99F
:$/ Lucanu D/, Proiectarea a%,orit!i%or H Te'nici e%e!entare, Editura uni"erit&2ii A%/
I/ Cu.a, Ia)i, :991
::/ Cucuru. L/ R/, Radu B/, Li!*a+e de pro,ra!are )i uti%i.area ca%cu%atoare%or,
Editura Mirton, Ti!i)oara, :99>
:E/ Boian O/, )/a/, In-or!atica pentru e%e"i, Editura !icroin-or!atica, C%u+, :99E
:1/ 7(an T/, n"&2&! CJJ pas cu pas, Editura te'nic&, Bucure)ti, :99G
:F/ Catrina O/, Co+ocaru I/, Tur*o CJJ, Editura Teora, :991
:#/ Doande) P/ Pintea D/ Uti%i.area ca%cu%atoare%or, Editura de <est, Ti!i)oara, E$$E/
LIMBAJUL C TEORIE I APLICAI I E1F
CUPRINS
1 Algoritmi.....................................................................................................9
!.! 8ntroducere...................................................................................................3
:/E/ A%,orit!i )i or,ani,ra!e////////////////////////////////////////////////////////////////////////////////////////9
!.&.!. <lgoritmi liniari.....................................................................................!!
!.&.&. <lgoritmi ramificai................................................................................!&
!.&.,. <lgoritmi ciclici......................................................................................!*
. !"diul d" #rogramar" tur$o c .%..........................................................&
&.!. Eediul de lucru..........................................................................................&,
E/:/E/Meniu% principa%//////////////////////////////////////////////////////////////////////////////////////////////////E#
E/:/E/:/Meniu% OILE/////////////////////////////////////////////////////////////////////////////////////////////////////EG
E/:/E/E/ Meniu% Edit//////////////////////////////////////////////////////////////////////////////////////////////////////EG
E/:/E/1/ Meniu% Run /////////////////////////////////////////////////////////////////////////////////////////////////////1$
E/:/E/F/ Meniu% De*u,//////////////////////////////////////////////////////////////////////////////////////////////////1$
E/:/E/#/ Meniu% BreaZK(atc'////////////////////////////////////////////////////////////////////////////////////////1:
E/:/E/G/ Meniu% options/////////////////////////////////////////////////////////////////////////////////////////////////1:
&. Structura u'ui #rogram (ur() ' lim$a*ul C.........................................&&
,.!. 6rearea unui program..............................................................................,.
,.&. 5ipuri de date. ..........................................................................................,1
1/E/:/ Tipu% 6ntre,/////////////////////////////////////////////////////////////////////////////////////////////////////////1G
1/E/E/ Tipu% rea%////////////////////////////////////////////////////////////////////////////////////////////////////////////1G
1/E/1/ Tipu% caracter//////////////////////////////////////////////////////////////////////////////////////////////////////1G
,.,. 6onstante i #aria-ile................................................................................,2
1/1/:/ Constante///////////////////////////////////////////////////////////////////////////////////////////////////////////1=
1/1/E/ <aria*i%e/////////////////////////////////////////////////////////////////////////////////////////////////////////////1=
1/1/E/:/ <aria*i%e %oca%e )i ,%o*a%e///////////////////////////////////////////////////////////////////////////////1>
1/1/E/E/ Con"en2ia de denu!ire a "aria*i%e%or )i constante%or/////////////////////////////////////19
,... Funcii. 8ntroducere..................................................................................,3
,...!. Funcii standard de intrare ieire..........................................................+
,./. 8nstruciuni. Epresii. :peratori...............................................................2
1/#/:/ Instruc2iuni//////////////////////////////////////////////////////////////////////////////////////////////////////////F=
1/#/:/:/ Instruc2iunea "id&////////////////////////////////////////////////////////////////////////////////////////////F=
1/#/:/E/ Instruc2iunea epresie//////////////////////////////////////////////////////////////////////////////////////F=
1/#/:/1/ Instruc2iunea co!pus&/////////////////////////////////////////////////////////////////////////////////////F=
1/#/:/F/ Instruc2iunea de atri*uire/////////////////////////////////////////////////////////////////////////////////F>
1/#/E/ Operatori/////////////////////////////////////////////////////////////////////////////////////////////////////////////F9
1/#/E/:/ Operatori arit!etici/////////////////////////////////////////////////////////////////////////////////////////F9
LIMBAJUL C TEORIE I APLICAI I E1#
1/#/E/E/ TPpecastin,//////////////////////////////////////////////////////////////////////////////////////////////////////#$
1/#/E/1/ Operatori re%a2iona%i/////////////////////////////////////////////////////////////////////////////////////////#$
1/#/E/F/ Operatorii %o,ici///////////////////////////////////////////////////////////////////////////////////////////////#E
1/#/E/#/ Operatorii de incre!entare )i decre!entare////////////////////////////////////////////////////#E
,./.,. 8nstruciunea if....................................................................................../.
,./... 8nstruciunea for....................................................................................1+
,././. 8nstruciunea Mhile. ...............................................................................2+
,./.1. 8nstruciunea do Mhile...........................................................................2.
,./.2. 8nstruciunea -reaL. .............................................................................2*
,./.*. 8nstruciunea continue...........................................................................2*
,./.3. Funcia eit.............................................................................................23
,./.!+. 8nstruciunea sMitch............................................................................23
,./.!!. 8nstruciunea goto.................................................................................*&
,.1. <pelul prin #aloare i apelul prin referin al unei funcii. ..................*,
,.2. :peraii asupra #ectorilor. .....................................................................*,
,.*. :peraii asupra ta-lourilor cu dou dimensiuni.....................................3,
,.3. Funcii de -i-liotec...............................................................................!++
1/9/:/ Ounc2ii de intrare ie)ire/ ///////////////////////////////////////////////////////////////////////////////////:$:
1/9/E/ Ounc2ii !ate!atice/ /////////////////////////////////////////////////////////////////////////////////////////:$:
1/9/1/ Ounc2ii de u. ,enera%/ //////////////////////////////////////////////////////////////////////////////////////:$E
1/9/F/ Ounc2ii de con"ersie//////////////////////////////////////////////////////////////////////////////////////////:$#
,.!+. Aointeri...................................................................................................!+*
,.!!. ;tructuri i tipuri definite de utilizator................................................!!&
,.!!.!. 7eclaraie de structur.......................................................................!!,
,.!!.&. <ccesul la elementele unei structuri..................................................!!/
,.!!.,. <signri de nume pentru tipuri de date............................................!!*
,.!&. Arelucrarea irurilor de caractere........................................................!!3
,.!&.!. Funcia strlen0lungimea irului de caractere....................................!&+
,.!&.&. Funcia strcp90 copierea unui ir de caractere.................................!&!
,.!&.,. Funcia strncp90 copierea a cel mult n caractere ale unui ir de
caractere..........................................................................................................!&&
,.!&... Funcia strcat0 concatenarea irurilor de caractere.........................!&&
LIMBAJUL C TEORIE I APLICAI I E1G
,.!&./. Funcia strncat0 concatenarea irurilor de caractere cu lungimea
impus.............................................................................................................!&,
,.!&.1. Funcia strcmp0 compararea a dou iruri de caractere.................!&,
,.!&.2. Funcia stricmp0 compararea a dou iruri fr a se face distincia
ntre litere mari sau mici................................................................................!&.
,.!&.*. Funcia strincmp. ...............................................................................!&/
,.!,. Arelucrarea fiierelor............................................................................!&1
1/:1/:/: Vi"e%u% superior de pre%ucrare a -i)iere%or/ //////////////////////////////////////////////////:E=
1/:1/E/ Intr&ri ie)iri cu -or!at/////////////////////////////////////////////////////////////////////////////////////:E>
,.!,.,. Aoziionarea n fiier...........................................................................!&*
,.!.. Areprocesorul 6.....................................................................................!,!
Directi"a \inc%ude//////////////////////////////////////////////////////////////////////////////////////////////////////:1E
directi"a \de-ine ////////////////////////////////////////////////////////////////////////////////////////////////////////:1E
Directi"a \error//////////////////////////////////////////////////////////////////////////////////////////////////////////:1G
Co!pi%area condi2ionat&/////////////////////////////////////////////////////////////////////////////////////////////:1G
Directi"a \i-////////////////////////////////////////////////////////////////////////////////////////////////////////////////:1G
Directi"a \e%i-/////////////////////////////////////////////////////////////////////////////////////////////////////////////:1>
Directi"e%e \i-de- )i i-nde-//////////////////////////////////////////////////////////////////////////////////////////:19
Diecti"a \%ine/////////////////////////////////////////////////////////////////////////////////////////////////////////////:F$
Operatori de preprocesare \ )i \\///////////////////////////////////////////////////////////////////////////////:F$
+. ,ra-ic) ' C...........................................................................................1+1
..!. Eoduri grafice.........................................................................................!.&
..&. ;isteme de cordonate...............................................................................!.,
..,. 6ulori i palete de culori.........................................................................!.,
.... Eoduri de umplere..................................................................................!..
../. ;tiluri de linii...........................................................................................!..
..1. <fiarea tetului n mod grafic..............................................................!./
..2. 5ipuri de date folosite n funciile grafice..............................................!.1
..*. FU=6Q88 7E 7E;E=<"E.....................................................................!/+
F/>/:/ ARC/////////////////////////////////////////////////////////////////////////////////////////////////////////////////:#$
F/>/E/ Bar////////////////////////////////////////////////////////////////////////////////////////////////////////////////////:#:
F/>/1/ Bar1d////////////////////////////////////////////////////////////////////////////////////////////////////////////////:#E
F/>/F/ Circ%e////////////////////////////////////////////////////////////////////////////////////////////////////////////////:#F
F/>/#/ Rectan,%e//////////////////////////////////////////////////////////////////////////////////////////////////////////:#F
F/>/G/ Line///////////////////////////////////////////////////////////////////////////////////////////////////////////////////:##
F/>/=/ Mo"eto//////////////////////////////////////////////////////////////////////////////////////////////////////////////:#G
F/>/>/ %inere%////////////////////////////////////////////////////////////////////////////////////////////////////////////////:#G
LIMBAJUL C TEORIE I APLICAI I E1=
F/>/9/ %ineto/////////////////////////////////////////////////////////////////////////////////////////////////////////////////:#=
F/>/:$/ !o"ere%///////////////////////////////////////////////////////////////////////////////////////////////////////////:#>
F/>/::/ dra(po%P/////////////////////////////////////////////////////////////////////////////////////////////////////////:#9
F/>/:E/ e%%ipse//////////////////////////////////////////////////////////////////////////////////////////////////////////////:G:
F/>/:1/ -i%%e%%ipse/////////////////////////////////////////////////////////////////////////////////////////////////////////:G:
F/>/:F/ -i%%po%P////////////////////////////////////////////////////////////////////////////////////////////////////////////:GE
F/>/:#/ -%ood-i%%///////////////////////////////////////////////////////////////////////////////////////////////////////////:G1
F/>/:G/ outtet/////////////////////////////////////////////////////////////////////////////////////////////////////////////:GF
F/>/:=/ outtetP/////////////////////////////////////////////////////////////////////////////////////////////////////////:G#
F/>/:>/ pies%ice////////////////////////////////////////////////////////////////////////////////////////////////////////////:GG
F/>/:9/ putpie%///////////////////////////////////////////////////////////////////////////////////////////////////////////:G=
F/>/E$/ sector///////////////////////////////////////////////////////////////////////////////////////////////////////////////:G=
..3. Funcii pentru setarea #aria-ilelor in mod grafic.................................!13
F/9/:/ 7eta%%pa%ette//////////////////////////////////////////////////////////////////////////////////////////////////////:G9
F/9/E/ set*Zco%or ////////////////////////////////////////////////////////////////////////////////////////////////////////:G9
F/9/1/ 7etco%or/////////////////////////////////////////////////////////////////////////////////////////////////////////////:G9
F/9/F/ setpa%ette///////////////////////////////////////////////////////////////////////////////////////////////////////////:G9
F/9/#/ set-i%%stP%e/////////////////////////////////////////////////////////////////////////////////////////////////////////:=$
F/9/G/ set-i%%pattern//////////////////////////////////////////////////////////////////////////////////////////////////////:=$
F/9/=/ set%inestP%e////////////////////////////////////////////////////////////////////////////////////////////////////////:=:
F/9/>/ settet+usti-P/////////////////////////////////////////////////////////////////////////////////////////////////////:=E
F/9/9/ settetstP%e////////////////////////////////////////////////////////////////////////////////////////////////////////:=1
F/9/:$/ set"ie(port/////////////////////////////////////////////////////////////////////////////////////////////////////:=F
F/9/::/ c%eard("ice/////////////////////////////////////////////////////////////////////////////////////////////////////:=G
F/9/:E/ c%ear"ie(port//////////////////////////////////////////////////////////////////////////////////////////////////:=G
..!+. Funcii de interogare a sistemului........................................................!22
F/:$/:/ ,etarccoords///////////////////////////////////////////////////////////////////////////////////////////////////:==
F/:$/E/ ,et*Zco%or///////////////////////////////////////////////////////////////////////////////////////////////////////:=>
F/:$/1/ ,etco%or///////////////////////////////////////////////////////////////////////////////////////////////////////////:=>
F/:$/F/ ,et,rap'!ode/////////////////////////////////////////////////////////////////////////////////////////////////:=9
F/:$/#/ ,et!a!ode///////////////////////////////////////////////////////////////////////////////////////////////////:=9
F/:$/G/ ,et!a//////////////////////////////////////////////////////////////////////////////////////////////////////////:=9
F/:$/=/ ,et!aP//////////////////////////////////////////////////////////////////////////////////////////////////////////:=9
F/:$/>/ i!a,esi.e////////////////////////////////////////////////////////////////////////////////////////////////////////:>$
F/:$/9/ ,eti!a,e/////////////////////////////////////////////////////////////////////////////////////////////////////////:>$
F/:$/:$/ ,et///////////////////////////////////////////////////////////////////////////////////////////////////////////////:>E
F/:$/::/ ,etP///////////////////////////////////////////////////////////////////////////////////////////////////////////////:>E
F/:$/:E/ ,etpie%/////////////////////////////////////////////////////////////////////////////////////////////////////////:>E
..!!. Funcii de iniializare i nchidere a sistemului grafic........................!*,
F/::/:/ init,rap'//////////////////////////////////////////////////////////////////////////////////////////////////////////:>1
F/::/E/ c%ose,rap'///////////////////////////////////////////////////////////////////////////////////////////////////////:>1
.. Program" a#licati/"..............................................................................10+
/.!. Arograme i algoritmi pentru sortare i cutare..................................!*.
LIMBAJUL C TEORIE I APLICAI I E1>
/.&. Arogram pentru rezol#area sistemelor de ecuaii liniare....................!*3
/.,. Eetoda 6ramer pentru determinarea #alorii determinantului..........!3.
/... 6aracteristicile geometrice ale seciunilor trans#ersale.......................!3/
/./. 6alculul analitic al eforturilor E0 =0 5..................................................!32
/.1. 6alculul ariilor contururilor poligonale nchise...................................!33
/.2. 6alculul integralelor prin metoda dreptunghiului...............................&+!
/.*. ;oluionarea numeric a ecuaiilor neliniare prin metoda -iseciei.. . .&+&
/.3 6alculul coordonatelor unei retrointersecie..........................................&+.
/.!+ 6alculul distanelor dintre puncte consecuti#e i calculul distanei
totale dintre primul i ultimul punct.............................................................&+/
/.!!. 6alculul momentelor de inerie i poziia centrului de greutate folosind
o -az de date pentru profile standard.........................................................&+2
/.!& Arogram pentru rezol#area ecuaiei de gradul 88................................&!+
/.!, Arogram de rezol#are a sistemului liniar cu & necunoscute................&&+