ham va cau lenh
TRANSCRIPT
-
7/23/2019 Ham va cau lenh
1/20
KHI NIM V HM TRONG C
Trong nhng chng trnh ln, c th c nhng on chngtrnh vit lp i lp li nhiu ln, trnh rm r v m!t thi
gi"n #hi vit chng trnh$ ngi t" thng ph%n chi" chngtrnh thnh nhiu mo&ul', m(i mo&ul' gi)i *u+t mt c-ng vi.cno / 0c mo&ul' nh v1+ g2i l cc chng trnh con/
3t ti.n l4i #hc c5" vi.c 67 &8ng chng trnh con l t" c th&9 &ng #im tr" :c ;nh tn c5" n trc #hi rpn?i vo chng trnh cht u thEc thiGIng hm m"in/
V d 1C T" c hm m": tm 6? ln gi" J 6? ngu+Bn ", G nh6"uC
int m":Kint ", int GL
M
r'turn K"NGL O "CG$
P
V d 2C T" c chng trnh ch
-
7/23/2019 Ham va cau lenh
2/20
int ", G, c$
printKUVn Wh"p v"o X 6o ", G,c UL$
6c"nKUY&Y&Y&U,Z",ZG,ZcL$
printKUVn [o lon l" Y&U,m":K", m":KG,cLLL$g'tchKL$
r'turn \$
P
Hm th vin
Am th vi.n l nhng hm ] 4c ;nh nghF" 6^n trong mtth vi.n no , mu?n 67 &8ng cc hm th vi.n th ph)i #h"iGo th vi.n trc #hi 67 &8ng GIng l.nh #include
3t 6? th vi.nC
"lloc/h "66'rt/h Gc&/h Gio6/h compl':/h
conio/h ct+p'/h &ir/h &ir'nt/h &o6/h
'rrno/h cntl/h _o"t/h 6tr'"m/h grn'ric/h
gr"phic6/h io/h iom"nip/h io6tr'"m/h limit6/h
loc"l'/h m"lloc/h m"th/h m'm/h proc'66/h6't`mp/h 6h"r'/h 6ign"l/h 6t&"rg/h 6t&&'/h
6t&io/h 6t&io6tr/h 6t&liG/h 6tr'"m/h 6tring/h
6tr6tr'"/h 6+6V6t"t/h 6+6Vtim'G/h 6+6Vt+p'6/h tim'/h
v"lu'6/h
a nghF" c5" mt 6? th vi.n thng &QngC
1. stdio.h :Th vi.n chH" cc hm vob r" chuDnKst"nd"r& inputboutputL/ dm cc hm !int"#$% s&'n"#$%()t$% *t$% ()ts#$% *ts#$% +*sh#$% "o)n#$% "&,os)#$%"!)'d#$% "-!it)#$% ()t&h'!#$% *t&h'!#$% ()t-#$% *t-#$/. &onio.h :Th vi.n chH" cc hm vo r" trong ch ef[Kef[ con6ol'L/ dm cc hm &,!s&!#$% ()t&h#$% ()t&h)#$%()t'ss#$% &()ts#$% &*ts#$% *t&h#$% &,!)o,#$%0. m'th.h:Th vi.n chH" cc hm t
-
7/23/2019 Ham va cau lenh
3/20
5. ',,o&.h:Th vi.n chH" cc hm liBn *u"n n vi.c *u)n lG nh/ dm cc hm &',,o$% !)',,o$% m',,o$% "!))#$%"'!m',,o$% "'!&',,o$% "'!"!))#$% 6. io.h:Th vi.n chH" cc hm vo r" c!p th!p/ dm cchm o)n#$% 7o)n#$% !)'d#$% 7!)'d#$% &,os)#$% 7&,os)#$%&!)'t#$% 7&!)'t#$% &!)'tn)-#$% )o"#$% 8,),)n(th#$% ,o&9#$%. (!'hi&s.h:Th vi.n chH" cc hm liBn *u"n n d h2"/dm init(!'h#$% ,in)#$% &i!&,)#$% *ti4),#$% ()ti4),#$%s)t&o,o!#$% ///
3u?n 67 &8ng cc hm th vi.n th t" ph)i :'m c= php c5"cc hm v 67 &8ng th'o =ng c= php K:'m trong phn tr4
gi=p c5" TurGo 0L/
Hm n(;i d? @ANG MBT HM
;nh nghF" hm
0!u tr=c c5" mt hm tE thit #C Tn hm #DEkiu t s>Etha sFD%Ekiut sFEtha sFD$M
jh"i Go Gin c8c G v cc c%u l.nh thEc hi.n hmk
D!)t*!n DEi* thJ&FP
i)i th
-
7/23/2019 Ham va cau lenh
4/20
t.Wu c nhiu th"m 6?, m(i th"m 6? ph%n cch nh"u &!uphD+ K,L/
Bn trong th%n hm Kphn gii hn Gi cp &!u MPL l cc #h"iGo cQng cc c%u l.nh :7 l/ 0c #h"i Go GBn trong hm 4c
g2i l cc #h"i Go c8c G trong hm v cc #h"i Go n+ chtdn ti GBn trong hm m th-i/
jhi ;nh nghF" hm, t" thng 67 &8ng c%u l.nh r'turn tr)v #t *u) th-ng *u" tBn hm/
q.nh r'turn &Qng thot #hi mt hm v c th tr) v mtgi tr; no /
CL hC
!)t*!n 9hPn( t!Q v (i t!Sr'turn SGiu thHcN$ bsTr) v gi tr; c5" Giu thHcsbr'turn KSGiu thHcNL$ bsTr) v gi tr; c5" Giu thHcsb
5u h$ c' kt qu t( v)6 ta 78t 7u9c hi s* dn& c:u lnh(etu(n ; t( v) kt qu ch+ h$/
V d 1C it hm tm 6? ln gi" J 6? ngu+Bn " v G
int m":Kint ", int GL
Mr'turn K"NGL O "CG$
P
V d 2C it hm tm c chung ln nh!t gi" J 6? ngu+Bn ", G/0ch tmC u tiBn t" gi) 67 0qW c5" h"i 6? l 6? nh nh!ttrong h"i 6? / Wu iu #h-ng =ng th t" gi)m i mt nv; v cH gi)m nh v1+ cho ti #hi no tm th!+ 0qW
int uclnKint ", int GL
Mint u$
i K"SGL
u"$
'l6'
uG$
whil' KK"Yu x\L yy KGYux\LL
u$
-
7/23/2019 Ham va cau lenh
5/20
r'turn u$
P
[7 &8ng hm
3t hm #hi ;nh nghF" th ch=ng vzn ch" 4c thEc thi tr{ #hit" c mt li g2i n hm /
CL h (i hm: ETn hmF#D@'nh s&h && th'm sU$V dC it chng trnh cho ph|p tm c 6? chung ln nh!tc5" h"i 6? tE nhiBn/
Rinclu&'S6t&io/hN
un6ign'& int uclnKun6ign'& int ", un6ign'& int GL
Mun6ign'& int u$
i K"SGL
u"$
'l6'
uG$
whil' KK"Yu x\L yy KGYux\LL
u$r'turn u$
P
int m"inKL
M
un6ign'& int ", G, 0$
printK}Wh"p ",GC ~L$6c"nK}Y&Y&~,Z",ZGL$
C W *&,n#'%$printK}oc chung lon nh"t l"C ~, 0L$
r'turn \$
P
u =C i.c g2i hm l mt ph|p ton, #h-ng ph)i l mt phtGiu/
Wgu+Bn t>c hot ng c5" hm
-
7/23/2019 Ham va cau lenh
6/20
Trong chng trnh, #hi gp mt li g2i hm th hm G>t uthEc hi.n GIng cch chu+n cc l.nh thi hnh n hm 4cg2i/ u trnh &i9n r" nh 6"uC
Wu hm c th"m 6?, trc tiBn cc th"m 6? 6@ 4c &3n &i3
t( th4c t?n& 0n&/ 0hng trnh 6@ thEc hi.n tip cc c%u l.nh trong th%n hmG>t u t{ l.nh u tiBn n c%u l.nh cu?i cQng/
jhi gp l.nh r'turn hoc &!u P cu?i cQng trong th%n hm,chng trnh 6@ thot #hi hm tr v chng trnh g2i n vthEc hi.n tip t8c nhng c%u l.nh c5" chng trnh n+/
TR?N THXM YZ CHO HM
3c nhiBn, vi.c tru+n th"m 6? cho hm trong 0 l tru+n th'ogi tr;$ nghF" l cc gi tr; thEc Kth"m 6? thEcL #h-ng G; th"+ igi tr; #hi tru+n cho cc th"m 6? hnh thHc
V d 1C i) 67 t" mu?n in r" nhiu &ng, m(i &ng \ # tE no/ n gi)n t" vit mt hm, nhi.m v8 c5" hm n+ l in r"trBn mt &ng \ # tE no / Am n+ c tBn l njT/
Rinclu&' S6t&io/hN
Rinclu&' Sconio/hN
voi& njTKch"r chL
M
int i$
orKi$iS\$iL printK}Yc~,chL$
printK}Vn~L$
P
int m"inKLM
ch"r c $
njTKsL$ bs n r" \ &"u s sb
njTKL$
njTKcL$
r'turn \$
P
-
7/23/2019 Ham va cau lenh
7/20
u =C
Trong hm njT trBn, Gin ch g2i l th"m 6? hnh thHc 4ctru+n GIng gi tr; Kg2i l th"m tr; c5" hmL/ 0c th"m tr; c5"hm coi nh l mt Gin c8c G trong hm v ch=ng 4c 67
&8ng nh l & li.u u vo c5" hm/ jhi chng trnh con 4c g2i thi hnh, th"m tr; 4c c!p -nh v nh1n gi tr; l G)n 6"o gi tr; c5" th"m 6? thEc/ eo ,mc &Q th"m tr; cng l Gin, nhng vi.c th"+ i gi tr; c5"ch=ng #h-ng c nghF" g ?i vi GBn ngoi hm, #h-ng )nhhng n chng trnh ch
-
7/23/2019 Ham va cau lenh
8/20
r'turn \$
P
jt *u) thEc hi.n chng trnhC
sss[f, TA[ 3e T [ WfT [fTe/sss@ii thchC
Wh1p vo J 6? v K", GL
Trc #hi g2i hm hon v; th ", G
Bn trong hm hon v; ", G
jhi r" #hi hm hon v; th ", G
s qu
Trong on chng trnh trBn, nu t" mu?n 6"u #hi #t th=cchng trnh con gi tr; c5" ", G th"+ i th t" ph)i t th"m 6?hnh thHc l cc con tr, cn th"m 6? thEc t l ;" ch c5" ccGin/
q=c n+ m2i 6E th"+ i trBn vQng nh 4c *u)n l Gi con trl cc th"m 6? hnh thHc c5" hm th 6@ )nh hng n vAn&nhB ;an& ;Cc qun l= 7Di tha s th4c t t?n& 0n&Kcn rIng vQng nh n+ ch
-
7/23/2019 Ham va cau lenh
9/20
P
int m"inKL
M
long ", G$clr6crKL$
printKUVn Wh"p v"o J 6o ngu+'n ", GCUL$
6c"nKUYl&Yl&U,Z",ZGL$
printKUVn Truoc #hi goi h"m ho"n vi "Yl& ,GYl&U,",GL$
ho"nviKZ",ZGL$ bs [hQi , \S' &h] &^' ' v sbprintKUVn ["u #hi goi h"m ho"n vi "Yl& ,GYl&U,",GL$
g'tchKL$r'turn \$
P
jt *u) thEc hi.n chng trnhC
sss[f, TA[ 3e T [ WfT [fTe/sss
@ii thchC
Wh1p vo J 6? , K", GL
Trc #hi g2i hm ho"nvi th ", G
Trong hm ho"nvi K#hi ] hon v;L th ", G
jhi r" #hi hm hon v; th ", G
u =C jiu con tr v cc ph|p ton trBn Gin #iu con tr 6@ni trong phn 6"u/
HM _ `?
_Snh n(ha'
3t hm 4c g2i l . *u+ nu GBn trong th%n hm c l.nhg2i n ch
-
7/23/2019 Ham va cau lenh
10/20
i ;nh nghF" trBn th hm . *u+ t
-
7/23/2019 Ham va cau lenh
11/20
P
_f& \im &gn ,* 9hi vit hm \ 2*e
Am . *u+ ph)i c J phnC
hn &{ng h"+ ph)i c trng h4p ngu+Bn t?/ Trong v< &8 trBn th trng h4p n\ l trng h4p ngu+Bn t?/
hn . *u+C l phn c g2i li hm "ng 4c ;nh nghF"/Trong v< &8 trBn th phn . *u+ l nN\ th nx n s KnLx
[7 &8ng hm . *u+ trong chng trnh 6@ lm chng trnh&9 2c, &9 hiu v v!n 4c nBu G1t r rng hn/ Tu+ nhiBn
trong " 6? trng h4p th hm . *u+ t?n G nh nhiu hn vt?c thEc hi.n chng trnh ch1m hn #h-ng . *u+/
TQ+ t{ng Gi c c8 th m ngi l1p trnh *u+t ;nh c nBn&Qng . *u+ h"+ #h-ng Kc nhng trng h4p #h-ng &Qng .*u+ th #h-ng gi)i *u+t 4c Gi tonL/
C> jNH
Khi nim &k* ,nh
3t c%u l.nh K6t"t'm'ntL :c ;nh mt c-ng vi.c m chngtrnh ph)i thEc hi.n :7 l & li.u ] 4c m- t) v #h"i Go/0c c%u l.nh 4c ngn cch vi nh"u Gi &!u ch!m phD+ K$L/
[hkn ,oli
0 h"i loi l.nhC l.nh n v l.nh c c!u tr=c/
nh ;?nl mt l.nh #h-ng chH" cc l.nh #hc/ 0c l.nh ngdmC l.nh gn, cc c%u l.nh nh1p :u!t & li.u
nh c' cEu t(cl l.nh trong chH" cc l.nh #hc/ q.nh cc!u tr=c G"o gdmC c!u tr=c iu #i.n r@ nhnh, c!u tr=c iu#i.n lE" ch2n, c!u tr=c lp v c!u tr=c l.nh h4p thnh/ q.nhh4p thnh K#h?i l.nhL l mt nhm G"o gdm nhiu #h"i GoGin v cc l.nh 4c gom vo trong cp &!u MP/
00 qWA W
jnh (n
q.nh gn K"66ignm'nt 6t"t'm'ntL &Qng gn gi tr; c5" mtGiu thHc cho mt Gin/
-
7/23/2019 Ham va cau lenh
12/20
0= phpC STBn GinN SGiu thHcN
V dC
int m"inKL M
int :,+$: \$ bsn hIng 6? \ cho Gin :sb
+ Js:$ bsn gi tr; Js:Js\J\ cho :sb
r'turn \$
P
Wgu+Bn t>c #hi &Qng l.nh gn l #iu c5" Gin v #iu c5" GiuthHc ph)i gi?ng nh"u, g2i l c 6E tng th
-
7/23/2019 Ham va cau lenh
13/20
ch /$ bs ch c #iu ch"r, cn / c #iu _o"tsb
r'turn \$
P
T!on( nhi* t!;n( hx \ tlo !' s tn( thb&h v 9i*%t' hQi sz dyn( \n &&h thJ& &h*en \i 9i* mut &&ht;n( minh. CL h &^' h{ ton ne nh s'*:
#Tn 9i*$ Ei* thJ&F0hu+n i #iu c5" Siu thHcN thnh #iu mi STBn #iuN/0hng hn nhC
_o"t $
K_o"tL \ b $ bs l=c n+ l J/sbChL C jhi mt Giu thHc 4c gn cho mt Gin th gi tr; c5" n 6@th"+ th gi tr; c m Gin ] lu gi trc /
Trong c%u l.nh gn, &!u l mt ton t7$ &o n c th4c 67 &8ng l mt thnh phn c5" Giu thHc/ Trong trngh4p n+ gi tr; c5" Giu thHc gn ch
-
7/23/2019 Ham va cau lenh
14/20
FhuGi ;nh dHn&C &Qng *ui ;nh #iu & li.u, cch Giu&i9n, rng, 6? ch 6? th1p ph%n/// 3t 6? ;nh &ng #hi nh1p#iu 6? ngu+Bn, 6? thEc, # tE/
;nh&ng a nghF"
Y6?#6?k&
Wh1p 6? ngu+Bn c t?i " S6? # 6?N
Y6?# 6?k
Wh1p 6? thEc c t?i " S6? # 6?N t
-
7/23/2019 Ham va cau lenh
15/20
0c Gin K;" ch GinL ph)i cch nh"u Gi &!u phD+ K,L/
0 G"o nhiBu Gin th ph)i c G!+ nhiBu ;nh &ng/
ThH tE c5" cc ;nh &ng ph)i phQ h4p vi thH tE c5" ccGin/
nh1p gi tr; #iu ch"r 4c chngh"+ kt thc 7Rn& kh+n& t(8n&L, ch=ng t" ph)i #h"i Go
#iu n& k= t4h"+ c+n t(S# tE, 67 &8ng ;nh &ng Y6 v tn7in tha- ch+ ;a chJ 7in/
2c vo mt chu(i # tE c chH" #ho)ng tr>ng Kktthc 7Rn& h Tnte(N thhi dAn& h$ &etsKL/
V dC
int Gi'nngu+'n$
_o"t Gi'nthuc$
ch"r Gi'nch"r$
ch"r chuoiJ\k, schuoiJ$
Wh1p gi tr; cho cc GinC
6c"nK}YX&~,ZGi'nngu+'nL$
Wu t" nh1p JX th gi tr; c5" Gi'nngu+'n l X # 6? utiBn KJXL/ 0c # 6? cn li 6@ cn nIm li trong vQng .m/
6c"nK}Y~,ZGi'nthucL$
Wu t" nh1p JX/ th gi tr; c5" Gi'nthuc l JX/, cc # 6?cn li 6@ cn nIm trong vQng .m/
6c"nK}YJ&Y~,ZGi'nngu+'n, ZGi'nthucL$
Wu t" nh1p liBn tip J 6? cch nh"u Gi #ho)ng tr>ng nh 6"uCJJX X/JXJ
J # 6? u tiBn KJL 6@ 4c 2c vo cho Gi'nngu+'n/
J # 6? tip th'o trc #ho)ng tr>ng KJXL 6@ 4c 2c vo cho
Gi'nthuc/
-
7/23/2019 Ham va cau lenh
16/20
6c"nK}YJ&YYc~,ZGi'nngu+'n, ZGi'nthuc,ZGi'nch"rL
Wu t" nh1p liBn tip J 6? cch nh"u Gi #ho)ng tr>ng nh 6"uCJX X/JXJC
J # 6? u tiBn KJL 6@ 4c 2c vo cho Gi'nngu+'n/ X # 6? tip th'o trc #ho)ng tr>ng KXL 6@ 4c 2c vocho Gi'nthuc/
jho)ng tr>ng 6@ 4c 2c cho Gi'nch"r/
Wu t" ch nh1p 6? gdm nhiu # 6? nh 6"uC JXC
J # 6? u tiBn KJL 6@ 4c 2c vo cho Gi'nngu+'n/
# 6? tip th'o KXL 6@ 4c 2c vo cho Gi'nthuc/
Gi'nch"r 6@ c gi tr; l # 6? tip th'o /6c"nK}Y6~,chuoiL$ hoc 6c"nK}Y6~,chuoiJL
Wu t" nh1p chu(i nh 6"uC 5&u-en Van inh th gi tr; c5"Gin chuoi h"+ chuoiJ ch l 5&u-en/
6c"nK}Y6Y6~,chuoi, chuoiJL$
Wu t" nh1p chu(i nh 6"uC Uu+n& Van ieu th gi tr; c5"Gin chuoi l Uu+n&v gi tr; c5" Gin chuoiJ l Van.
V s'o nh ve C s \& tw \g* \n 9hi (f 9hoQn(t!n( v (n (i t!S &ho in \g* tin% hgn &n ,li s'*9hoQn( t!n( , (i t!S &^' && in ti th)o/g't6KchuoiL$
Wu nh1p chu(i C 5&u-en Van inh th gi tr; c5" Gin chuoil 5&u-en Van inh
jnh 4*t (i t!S &^' i* thJ& ,n mn hnh #hm !int"$
Am print KnIm trong th vi.n stdio.hL &Qng :u!t gi tr;c5" cc Giu thHc lBn mn hnh/CL hCprintK}0hu(i ;nh &ng ~, 0c Giu thHcL$
@ii thchC
FhuGi ;nh dHn&C &Qng *ui ;nh #iu & li.u, cch Giu&i9n, rng, 6? ch 6? th1p ph%n/// 3t 6? ;nh &ng #hi ?ivi 6? ngu+Bn, 6? thEc, # tE/
-
7/23/2019 Ham va cau lenh
17/20
;nh &ng a nghF"
Y& u!t 6? ngu+Bn
Y/6? ch 6?th1p ph%nk u!t 6? thEc c S6? ch 6? th1p ph%nNth'o *u+ t>c lm trn 6?/
Yo u!t 6? ngu+Bn h. Gt ph%n
Y: u!t 6? ngu+Bn h. th1p l8c ph%n
Yc u!t mt # tE
Y6 u!t chu(i # tE
Y' hoc Yhoc Yg hocY
u!t 6? ngu+Bn &ng #ho" h2c Knh%n \m :L
< &8
Y& n r" 6? ngu+Bn
Y&n 6? ngu+Bn t?i " # 6?, nu 6? cn in
nhiu hn # 6? th in htY n 6? thEc
Yn 6? thEc t?i " # 6? Kt
-
7/23/2019 Ham va cau lenh
18/20
printK}i" tri ngu+'n cu" Gi'n ngu+'n Y&Vn~,Gi'nngu+'nL$
printK}i" tri thuc cu" Gi'n thuc YVn~,Gi'nthucL$
printK}Truoc #hi l"m tronY Vn
["u #hi l"m tronY/J~,Gi'nthuc, Gi'nthucL$r'turn \$
P
jt *u) in r" mn hnh nh 6"uC
Wu t" thBm vo &ng 6"u trong chng trnhC
printK}Vn j+ tu co m" [0 Y& l" Yc~,i,iL$
jt *u) t" nh1n 4c thBmC
printK} [o ngu+'n l" Y& Vn [o thuc l" Y~,i, KY+atLi L$
printK}Vn [o thuc l" Y Vn [o ngu+'n l" Y&~,Gi'nthuc,
KintLGi'nthucL$
printK}Vn i't Ginh thuong Y Vn i't #i'u #ho"
hocY'~,Gi'nthuc, Gi'nthucL$
jt *u) in r" mn hnhC
u =C ?i vi cc # tE iu #hin, t" #h-ng th 67 &8ng cchvit th-ng thng hin th; ch=ng/
j tE iu #hin l cc # tE &Qng iu #hin cc th"o tc:u!t, nh1p & li.u/
3t 6? # tE iu #hin 4c m- t) trong G)ngC
j tE
iu
i tr;
th1p l8c
j tE 4c hin
th;
a nghF"
-
7/23/2019 Ham va cau lenh
19/20
#hin ph%n
V" \:\ q ht r" ting chu-ng
VG \:\ [ ei chu+n con tr 6"ngtri # tE v :" #tE GBn tri KG"c#6p"c'L
V \:\0 ["ng tr"ng
Vn \:\ q u?ng &ng
Vr \:\e 0 Tr v u &ng
Vt \:\ AT T"G th'o ct Kgi?ng gph
-
7/23/2019 Ham va cau lenh
20/20
printKUVn e"u T"G Vtv" &"u G"c#6l"6h VVUL$
printKUVn e"u nh"+ &on V v" &"u nh"+ #'p VUUL$
printKUVn e"u ch"m hoi VOUL$
printKUVn j+ tu co m" G"t ph"n \ l" V\UL$printKUVn j+ tu co m" th"p luc ph"n l" V:\UL$
printKUVn eong hi'n t"i, :in go 'nt'rUL$
g'tchKL$
printKUVr' &"u &ongUL$
g'tchKL$
r'turn \$
Pjt *u) trc #hi g ph