C huơiìỊỉ 2
HÀM TRONG
c
++
C h ư ơ i ì í i n à y tr ì n h b à y /ĩlỉthỉỊỉ k h d n ã n ỵ n i ớ ì c ù a ứ ' íroỉĩỊỊ v iệ c x â y
dỉntịỊ và s ư d ụ n i i h àn u D ó là:
- Kiéiỉ ỉììcnìì cììiêu va việc í r u y ẻ n (lữ liệ u c h o h à m h ã n ^ ihuỉiì chỉêii.
- D ơ i íluỉiỉĩ chicii lìủìĩ^ (c onsi Ị
- D ồ i có ự/ớ Ị rị ỉììủc cỉịnlĩ
- ỉ l ù m i r ư c Ịu y ê n
- \'iệc cìịììlì nịỊÌìĩcỉ clìơni^ c á c h ù m
- Việc đ ị n h n ^ h ĩ a clìỏníỊ c á c l o á n Ịỉi'
§1. BIẾN T H A M C H IẾ U (R E P E R E N C E V A R IA B L E )
1.1. Ila i loụi biến dùn<Ị trong c
T r ư ó c khi nói d c n bicn llìam chiƠLi, c l iú n g ta nlìãc lại 2 loại bic*n uặp
t r o n g ( ' là:
lỉiơiì giá Irị d ù n u dc c h ứ a dù' liệu (nguycMi, lhực\ ký lự, ...)
liiốn con iro d ù n u ilc c hứa dịa chi
C'ác b ic n này d c u d ư ợ c ciiim c â p bộ n h ớ v à có d ịa chi. Ví d ụ c â u lộnlì
klìai báo:
í'ií^'>nh ì n
y ,
* px ;
sò tạ o ra b i ê n g i á trị k i è u d o u b l c X v à b i ê n c o n trò k i ê u d o u h l c p \ . B iơ i i
X có \'ùníi n h ở 8 b \ l e . biến p \ có vùi m n h ớ 4 hytc ( n c u d ù n g ni ị liìnli
La ru c) . lĩ i c n X d ù n u d ê c h ử a giá Irị k i ê u doLiblc, ví d ụ lệ n h gán:
X
3 . M ;
sẽ c h ửa giá Irị 3.14 vào biốn X. Biến px d ù n g đế c h ứ a dịa ch; c ù a một
biốn thực, ví dụ câu lệnh:
px
&x ;
sẽ lưu irCr dị a chi c ua biến \ vào con tro px.
1.2. Bicn tham chiếu
Tr oi m c * c ho p h é p s ử dụn» loại bi ên t hứ ba là biên t h a m chiêu. So với
2 kụú biên que n hiõl noi Irơn. thì bicn này có nhữi m đặc dicMii sau:
26
t liicn ihani chiỏu khoiiy d u ợ c câp pliál bộ nhớ. k h ơ n g có dị a chi riênu.
■
N ó (.liìnu lam bí danh c ho mộl biến (ki êu giá trị) nào dó và nó sư d ụ n g
v ù n g nliớ cua biên n à \ . Vi dụ câu lệnh:
í 1o a t -
u,
V,
í. r
u;
tạ o ra c á c b i ế n th ự c u. V \ à hiốn t h a m c h i é u t h ự c r. B i ế n r k h ô n g d ư ợ c
c ấ p phát bộ Iihớ. nó là niộl tèn khác (hí d a n h ) của u và nó d ù n g c h u n g v ù n g
n h ớ c u a hiốn u,
1 ' h i i ậ t iiịỊữ: Khi r là bí danli (alias) c ua u thì ta nói r t h a m chi ế u đến
bicn u. Nhu' vậy 2 ihuật nuũ' Irêii dirực hiêu uhir nhau.
Ý n ” hĩ a: Khi r !à bi danh cua 11 ihì r d ù n g c h u n g v ù n g n h ớ c ủa u, d o đó :
•
1 r o i m m ọ i c à u lệ n h . \ ict LI h a \ \ ièt r d ô u c ó ý n g h ĩ a n h ư n h a u , vì d e u
tru\ n h ậ p dỏn cùnti niộl \ iini! nhớ.
i C'ỏ Uiê duiiu biên ihani chicu dê tru\ nhập đế n mộ t biến kiêu giá Irị.
\ ’í ilụ:
•
i n t.
u ,
r
1 0 ;
c o u t.
V,
r
u ;
/ /
< <
u ;
/ /
í;
/ /
u
11
Mu;
/ /
r
\7
r ỉ
(.:oul
<<
Ị Ị
r;
V
r;
/ /
hr;
//
Cho
10
u
in
r a
s ố
10
in
ra
;;ố
17.
V
(i ị a
12
chi
củd
u
c ỏ r i ị ; clụn»: liiến i ham chiốLi tliườiie dượ c sứ d ụ n g l àm dối c ủa h à m đê
c h o p h é p hà m Iruv nhậ p dcii các tliain sơ bien t rong lời gọi hàm.
Vàì c h ú i' Vt' biéii tliíiin chiểu:
a. Vi hicn lliain chieu kliịim cỏ dịa chi ricMí’, nó chi là hí d a n h c ủa một
h i ê n k iê u uiá In n ê n troiiỊ! khai b á o pliái chi rõ nó t h a m c h i ế u d e n biô n nào.
\ ' í dụ nêu khai hao:
c io u b U '
í»x;
lliì trÌ!ìlì biciì dịch sc bái) lồi:
í (í r o n c : ( ì
V d ria b lc
'x'
rnusí.
bo
i n i t i a 1i zed
b. liiỏn ihani cl úcu cỏ llic lliani chiếu dcn một p h ầ n lư má n g , vi dụ:
inl
r
a Ị 10
Ị,
^r
/ /
a | b |
ci I Ị ;
;>b
c. Kl i ỏng c ho phé p kliai háo ni anu ihani chicu
d. B i ế n tliani c h i ế u c ó tliê tlium c h i ế u d ế n m ộ t h à n g . Khi d ó nó sẽ
sir d ụ i m \ ù n u Iihứ c u a h ầ n u \ à n ó cỏ i h è l à m t h a y d ố i
gia Irị ch ứ a troii g
\ ù n u n h ớ nà_\.
27
Vi d ụ ncLi kliai bíỉo:
ÌI\1
ÍMry
'/A ;
llìi irình ỈMcn cÌỊclì ilira ra c a n h b á o ( u a r n i i m ) :
'i'(nĩipor (i r y
USCHÌ
t.c)
init
i a 1 ị/.c
' .s '
l u\ nhiêii chiKvnu irình \ầii làm \ iộc, C'ác câu lệnli du'(Vi d â \ \ ầ n ihirc
hiộiì \'á clnì kẽl qita lìlnr sau:
-s t I ;
c o u l
<<
*'\n.s
"
<<
s ;
/ /
In
r a
C'liu'(yníi irinlì duới d à \ nìinh họa cách dù n g hiên lliani clìicu dc n IIIỘI
p h ầ n Ui’ n i a i m c â u irúc d c nlìập d ữ liệu \ à t h ụ c lìiẹn ca c p h é p líiìh Irên các
I n r ờ n g c u a plìàn lu' Iiianu c â u trúc,
il i n c 1 U í i c ĩ
< i o ; ì {. r ( N 3 í f i . h >
It i DC l uci t;
< c c ) r i i (>. h >
;ỉt. r u c : t
‘i ' S
(
c h a r ht. Ị
í I Ocìl
I;
1, h,
Lci;
};
v o i (j nifi i n ( )
’i ' S
t . s M O L
c:out.
<<
K s ị l ! ;
"\nllo
/ /
t-Ham
c h i ề u
đ ề n
t s Ị l Ị
ten;
c i n . CỊCt_ {h . ht , p.b) ;
cout<< *'C^"3CcH crii t , o a n ,
ly,
c: i n > > h .1. > > h . l > > h . h ;
h . t,(j
h.t
<<
cout
<<
hoa:
I h . I ( h.h;
"\nllt)
ton:
" <<
" \ r r r c ) r i ( j (i i c i n :
" <<
qcít.ch í ) ;
}
1.3. Ila iiịỊ tliaiu chiếu (const)
1 lă n u ihan i cliicLi d u ‘ọ'c khai b á o llìco m a u :
i riL
ì 0 ;
n
cori.st,
ifil,
íii r
n;
('Cinu u i ị n e nliu hicii iliain chiêu, liăim ihaiìi chicii có lliơ llìaiìì clìicu
dcn mội bicii hoặc Iiiộl liăiiu. Ví dụ:
ĩ n t,
ì 0 ;
n
coriíỉl
iril
consL
i rìt
n;
ỉ^íi
//
llầnq
Lhani
//
nầr uỊ
t,harn c h i ố u
//
(iốn
hấnq
cíiiốu
r
s
tham
Lharn
chiẾu
(iồn
biốn
n
c:hicu
\23
S ự k h á c n h a u uÌLÌa b i ỏ n \ à h a n u i h i im c h i e u ớ c h ỗ :
K l i ỏ i m clio
p h é p d ù n u hãiiLí lliain c l i i c u clC' l àni tlia y d ô i u i á Irị c u a \ ù i m n l i ứ m à
n ó i h a n i cliicLi.
28
Ví dụ:
int
y
consl
1 ^ , ■/. ;
int
í *py
y;
/ / lỉ
Ị Ị
y I t ;
7
/ /
y *
í'C)u!
c h ị ou
chiốu
cií^ri b i ()fì
py
tham
y
l)t'iric;
py; / /
y
p>
l.hi i m
<<"
l)ún(j
"<<
p \ • 1;
f)y;
/
y ị)
//
I Ĩ1 f
^
1
Sai. I rinli biciì dịcli i h ị n u h á o lồi;
( ' a i i n o l n ì o J i l \ a c o n s t (ìhịccl
C' ách tiìiĩi” : lláiìg ilìaiìì cliicu clìo pliép sir d ụ n g uiá Irị c h ứ a t rong một
\ Linu nhó', n l u r n u k h ô n u CỈH) plK‘p llìav' dơi uiá Irị này.
I l ă n u ih ani cliicLi l l iu ò i m diiỢí^’ su d ụ n u làm d ố i c u a h à m d c c h o p h é p
hàm sư d ụ i m Lĩiá irị cua cac ihaiiì sỏ tronu lời gọi h à m, n h ư n u t r ánh k h ơ n g
laiiì l h a \ dơi ịiìíì irị c u a các ihan i sỏ.
§2. T R U Y Ề N G IÀ TRỊ C H O HÀM T H E O T H A M C H IẾ U
2.1. Ilà n i tro ii” C'
T r o i m ( ' chi có Iiiộl c á c h IÍ U>C11 dù' liệu c1k> h à m i h c o g i á trị :
^ C‘à p p ị ú i M Ì n u n l ì ơ CỈIO e a c d ỏ i .
! ( l a n UUI irị c a c i hani sị ircìHu lời gọ i h à m c h o c á c dỏ i s a u dỏ
hànì lani \ icc Ircii \ ùi m n h ó ’ c u a c á c dỏi c h ứ k h ơ i m ììcn q u a n gì đC'n
c a c iliaiiì sị.
Nliu \ ậ \ c l u a r n u Irỉnh sị lạo ra các baiì sao (các đỏi) c ùa các i ham sơ và
hàin sị that) lac Ircn các baiì sao n à \ . clìử tvhỏnu làm việc Irực liêp với các
i h a n i sò. IMuioim p h á p n à \ co 2 Iihirọc diciìì cliíiih:
Tơn kóin vê thịi ụian \ à bộ nlìớ v ì phai lạo ra các bàn sao. K h ô n g thao
Uic tr ụ c ù c p trc n c á c llìain sỏ, \ ì \ ậ \ kl ìỏnu làm Ih ay dơi d u ợ c g iá irị các
í hani sị.
2.2. '1'ruycn ^iá trị cho lìàin tlico tham cliiếu
Trong ('
CUIILĨ c a p llìcni cáclì lrii\ỏii d ữ liệu c h o lìàiiì i h c o t h a m chiốLi
b ã n u c á c h d ì i n a dơi là hiên ih an ì clìicu lìoặc đôi là h a n g t h a m clìiêu. C á c h
n à \ c ó iru d i ê i i ì :
Kliơim c à n t ạ o ra cá c baii s ao c u a c ác lliain số, d o d ó licl kiộni b ộ nliở
\ a ihòi u ia n c l i ạ \ n i á \ .
I lam sị llu lac Iruc licp tivii \ ìinu Iilió' c u a cá c t h a m sô. d o d ó dc d à n g
lluiN dõi uia Iri ca c ihani sò khi càn.
29
2.3. M ố i quan hộ ịỊÌiìa dối vÌầ tliaiìi số IroriỊỊ lịi gọi hàm
N c u dơi là b i c n h o ặ c hăiìíz t h a m chicLi k i è u K thì i h a n i sô ( I r o n g lời
gọị
hàni) phai là hiên hoạc phâ n lư m á n u kiêu K. Vi dụ:
+ Dối là bicn hoặc h ầ n u t ham chicLi kicu douhl e, íhi lliani
số là bicn
hoặc pliần lư m a i m kicLi douhl e
+ D ố i là b i ế n h o ặ c h à n g i h a m c h i ế u kicLi c ấ u tr úc , llìi t h a m s ố là bieii
hoậc p h à n iư m a n u kiêu câu trúc
2.4, Các chiroiiịỊ trình minh họa
/*
( ' h ưo r u Ị
Nhập
dãy
Hốn
vị
Sắp
Siiii
Lrinh
số
xép
Chưoriq
lố
c:húc
thtình
3
dãy
cloưbỉíí
số
t. r ì n h
doubỉc
sõ
nhập
tihco
một
thứ
ciãy
số
t. ự
và
Lănq
in
* /
# i ncl udc
< i OÍỈL r c a m . h >
II i n c ỉ u d e
<c:onio.h>
II i n c l u d e
<-st_d i o . h >
void
nhc.if;)d;ì { d o u b 1 c
*a,
inL
n)
{
for
( í nt
i
1;
i<
n;
t f i )
tu
thu
í
cout
c Ì fi
<<
>>
"\ninian
" <<
a 1i I;
}
}
VOỈCÌ
hv(doub!o
A.X,
cioublc
&y)
{
doublo
t.q
x;
Vỉ
X
V
tCỈ/*
}
void
s a p x e p ( d o u b ỉ Cĩ * a ,
int.
ri)
í
for
í inL
for
i
{ i nt,
i í
1;
i<
j
i ỉ 1;
(a 1 i ì
>
n - 1;
}
nia i rì ( )
{
double
xịìOOl;
i n t.
n;
í :o u I
c in
30
i ,
<<*'\riN
>>
n;
t »i )
j< n ;
a I j I)
hv(a[il,a[ jỉ);
void
hàm:
doublo
t)iốn
2
ciưục:
* *j )
i
<<
dần
dãy
sau
khi
íỉắp
xếp
nhapxLs {X,
s«ipx(ĩp {X,
n };
n);
for
i<
( i
ì ;
n;
( í i
)
í" ,
x| i Ị) ;
p r i r i t í ( ” \ n ' ẲO. n
q o t c h {);
C l ì i r a n u lrìi‘.li s a u g ỏ n ì cáe h à m ;
- N h ậ p d à y c ấ u Irúc ( m ồ i c ấ u ’rúc c h ử a d ữ liệu m ộ t thí s i n h )
- 1 lìu \ ị 2 b i c n c â u trúc
- s ẳ p x ố p d à y Ihí s in h Iheo llìử tự g i a m c u a t ồ n g đ i ế m
- ỉn m ộ l c â u irú c (in họ tên \ à l ỏ n g đièiìi)
Ch i r ơ n u trinh sè nhạ p d ừ liệu niộl da nh sách ihí sinh, n h ậ p đicni c h u ẩ n
\ a in da n h sách ilìi sinh Irúne tuNcn
*/
1
|ị ỉ n c :
U( i ( í
< i ( ) S t. r c ; f J t n . h >
II i ĩ\c: 1 uci í i
< i oiric) n i
íl i n c 1 u c k ĩ
< c o r ỉ i c;. h>
;:t r u c L
.h>
'l’S
í
char
h t í 20 Ị ;
f: l 0í Jt .
L,
1,
h,
Ld;
};
void
irìt_.s{cc)nsL
'Ỉ’S
&1. s)
í
cout
(' Out.
<<
<<
s c t i o s í I a q s ( i 0 5 i: : s h o w p o i nt )
" \ n l l o t . o n : " << s o t . w ( 2 0 ) < <
<< íỉc Lw (6)
void
nhaf>sl c r s
< < s e t p r e c i s i o n {1 ) ;
ts.h t
<<
*ls,
int.
n)
{
f t ^I
( i 111
i
1 ,
i ''
I »;
M
i
)
í
coul
<<
"\n'i'hi
coiii
<<
” \rUl()
íỉ i ( i h
”
<<
i;
t(Mi:
c: i n . i c ^ r u ) r í ĩ ( ì } ;
c: i n . q c L { t . s Ị i Ị . h t ,
2íì) ;
c o u t << " C a c d i c m
t.oan, l y ,h oa:
c i ri > > t . s I i Ị .
>>
t , s I i I . 1> >
t . s Ị i 1. h ;
í. s Ị i Ị . l ci
t. s Ị i I . t t 1. s Ị i I . 1 ỉ t, s [ i 1 . h ;
void
UvLsựVS
Ẵt.íỉl,
TS
í»Ls'^)
{
'!*s
t,sl
tq
- IrA;
ts;?;
31
{ íỳ?
1(ị;
}
VC) Ì ( J
í ỉ , j p X ( > p ( 'r.s
M . i n t
n)
1
í C) r
( i ĩ! l
I () r
i]
( i
it
; i<
n l)
ri - ì ;
iM
( l s Ịi
;
j <
Ị . t (i
<
h v L í ỉ ( t .s í i I ,
I ti )
n ; * I
i )
t.iỉ I Ì 1- t (i)
t s i i 1 );
}
v o i cl nuì i ri ( )
í
L.sỊlOOI;
'V S
i nt,
n,
i ;
cIrscr ();
coul
<<
"So
t hi
c i n > > ri;
nhaf ) 5ỉ 1 ( t s ,
s a p x o p {l s ,
í 1 Oí'j t. c i c ;
c q u
L
<<
cin
” \ri\n l)a n h
(ì
i í
ch u cK i:
ck: ;
<<
fo r
n) ;
n );
"D ÌC ÍIÌ
>>
c:out,
íìinh:
ì ; ỉ<
ri;
Scjch
t.u y c n X n ";
M i )
( l í ỉ Ị i Ị . t.ci >
i ri Ls (t í ; Ị i Ị ) ;
I
Lru nq
cic)
ÍU>
b rc^i k ;
íỊot.cti ( } ;
I
/*
(' hìưc?ruỊ
t. r ì nhì
5J(1U ( Ịồí ii c á c
Nhi ập một.
nia t r ộ n t . h ự c
In
trậ n
rnột
' I ' ì ni
ma
phần
(_ừ
cấp
Lhục
dưới
hàrn:
ÍĨI
n
dạnq
bànq
[6n
nhất
và
C h u a r u Ị t, r ì n h s ồ
c á c p h ầ r ì t. ừ 1 órì
nhrĩp
rứìấl
niộL nia L r ạ r ì ,
i n ma I r ậ n
và n h ỏ n h ấ t t r ơ n m ỗ i hàriq
tị Ì n^'* ì
\
phần
t.ử
nhị
nhất của
dãy
vừa
cùa
số
Lhưc;
nhập và
rna t. r ậ r ì
ro.itn . h>
ỉt i ru: ỉ ucỉíĩ
< i ( ) man i p . h >
(I i n c 1 U ( l ( ĩ
< co ri i o . h>
H i ru: 1 ưfi(? < s t ci i () . h >
voi(j
rihtipm t. { f ị o a t
a |2 0 Ị|^ ()|,
int.
rn,
int
<<
ị
<<
int.
n)
s o l i ì í i ( j q s ( i o s : : s h o w p o i n t . )
<<
n)
í
to r
(
inI
í () r
ị ì;
i<
( inl j ì ;
rn
j<
;
í *i )
n;
M j )
1
c:c)ul
c in
<<
>>
<<
i
<<
"Ị
.i I i Ị I ) I ;
ỉ
í
voici
i nrnt. ( í l C)(J t.
I >í() Ị I ^ 0 Ị ,
i nt .
m,
í
c: oưL
"^2
<<
s e t p r e c i s i ori ( 1 ) ;
in
*/
t or
(
i
i
nt
tor
1
( i nt
ì<
;
ị ì ;
rn
j<
(ti)
;
n
;
) I j )
í
lí
{)
1) c o u t
cau\
void
<<
< < scì t. w { ( ) )
ntaxrn in d s {
í 1 Ofjt,
*'\n";
<<
* x,
a I i I ị i Ị ;
int
n,
int
Aí V t ma x ,
inL
&vtrnin)
í
V l ÍỈUJ X
f () r
V t.f[i i n
(i n t
i
1 ;
2
:
i<
n
;M i )
i
i f
(X i i Ị
>
X Ịv t ^ r r i a x I
)
vt max
i ;
ị í
(X i i ]
<
X ị V Liiỉ MI I
)
V t íĩì i Ĩ1
1;
}
}
VC) i (i
rn.i i ri ( )
í
llc:)at
(i| 2 0 l ị 2 0 1 ;
c:out
cin
<<"\n
>>
m
So
>>
nhaf)rnt ( t ì ,
int
harnq
m,
va
so
n;
coL
ma
tran:
n;
rn,
n ) ;
c; ì r í ỉ c : r ( ) ;
i nrnt ( c ì ,
í 1 o a í,
m,
*p
n ) ;
( f 1 o a t.* ) <ì
i nt.
vt Iiitix,
vl,m i n ;
for
( i nt
1;
Ì
i <
rn;
;
t í i )
i
p
{ ( M
* ) < ì )
íri (j xfi i i n c i s ( p ,
n,
f ) r i n l ( ( " \ rili
v.d",
prinl
I,
í ("\n
Y.6.1Í
tai
i
^ 7 0 ;
vt.riicix,
”.cJ Phciĩi
f)|v!_max|,
l^han
i
tu
c: ot
vt.min);
lu
ni ax
' Ề6. 1Í
tai
cot
vlm.ìx) ;
min
plvt.niinỊ,
vtntin);
}
§3. H À M T R À V Ể C Á C T H A M CHlẾU
l l à m c ó thị c ó k i c u íhan i cliiỏu \ à Ira \ e uiá irị i h a n i ch iốu. Khi đ ó có
llìc d ù i m h à n i dơ iru y Ịìlìập dcn m ộ t biên lioặc n iộl p h a n Ur n i a n ụ n à o dó.
Di r ới ctà\ là m ộ l s ỏ \ í d ụ .
V'í d ụ 1 Irìiilì b à \ nìột lìàni tra vc lììộl lliani clìiéu dế n inộl hiciì tồn b(V
D o d ó cỏ tlìc d ù i m h à n i d ê
jf i rìC'1 uclí'
|j i n c I ucicí
i n (
7. ;
rcNJf ĩ i . h>
<C()ri i a . h >
l ru \ Iihập dc!i b i ê n
này .
int
Ẳ. í { )
/ /
il(Jin
t.rã
vồ
íỉtột
bi
ci cinh
của
biến
t.c),jri
bộ
/.
i
rot u r n
}
vo i ớ
/ ;
ni(j i n { v o i f j )
í
í()
cout
hO;
/ /
/,
"
<<
í>()
/;
q o t c h ();
}
Ví d ụ 2 íiinli bà> mộí hànì Ira \ c
hí danlì c ua mộ t bicii c á u Irtìc tồii
\ i d ụ ircĩi. a &âyk h ỏ n u d ù n g h à m mộ l cách
bộ. Kliác \ 0 ' 1
h à m c h o m ộ l hiến i h a m clìicu.
trục liêp !ìià uán
sau dó d ù n g bicn ihanì clìicu
nà>' d c
lru>
n h ậ p dcii hi ên c â u trúc t ồn bộ.
Hi n c ì u d c
< i o í ĩ L r o a m . h>
# i n c 1 u(lo
< c o r ì i C) . h >
sL ru ct.
’Ỉ ‘S
í
ctiar
ht [
í 1 o a i};
' !'S
1;
t ,
1,
h , Ì AÌ ;
ts;
rt;
{)
{
r ( *t u r fì
}
V ( 3 I (j
1. s ;
ỉrifj i ri ( )
{
'l'S i . h
cout.
í ();
// h
<< " \ n l i o L e n :
c i n . cjct, ( h . h t
,
2[))
tJiarn c h i ố u
;
h . t
t
biên
t.s
:
coul
< < "Cac : i o m l . Oci n,
ly,
c; i n > > h . t. > > h . l
>> h . h ;
h . t.d
(iến
h . \
t
hoa:
h . h ;
r.o u l
« "\riỉ!o l.on:
" «
ts.hL;
uout
v v "' \ ( r uj f i
tíĩ.tci;
q e t c h ();
}
V í d ụ 3 Irìiìlì bà ) m ộ t h a m tra vồ bí d a n h c ú a i nột phằiì l ư m a i i g c á u
l o à n bộ.
l l à i n sc k i ê m tra XCIIÌ clìi s ỏ m a n g c ó M rạ i ra n g o à i n ìiê n q u \ dịnlì h a \
khịnu. S a u do diìní: haiìi này dê l m \ lìỉiập dcn các phằii tư ni a n u c a u Iriìc.
tl i
ru: 1 U( Ì CÍ
II i r u : ] u c i c
<
ị C)S t. r
. h>
<c:on i (). h >
tl I ĩ \ a ỉ U i i a < s t . d ! i b . h >
s l r u c . l *I'S
char
34
hlị'A[y\;
í i oa t t ,
1, h , t.íl ;
I;
'rs
*i.s;
v o i
f5 h a t
c:df)
b o
rihc)
nhafiíỉ I (int,
n)
í
ị s
nc,‘w 'Ỉ'S Ị n M I ;
i í
( t.;ỉ
NUl.ỉ.)
í
cxíut
<< "l.oi
1 C) r
c:ap
phcJÍ.
b o
n h o
;
( int
i ì ;
i<
ri;
M i)
í
■l’S
IsỊil;
coul
< < " \ n ' l ’h ị
cout.
<< " \ n
sinh
t . hu
ilc) i a n :
" «
i;
"
c in . i qnorc (1) ;
c: ị n .
(h . ht.,
q o l
cout,
í))
;
< < "Cac: dicMii
ciri
h . l >>
>>
h . t.ci
'TS
2
h . t. t
Loan, ìy ,
h.ì
h . ỉ
ỉ
>> h . h
;
h .h
;
n) Ị Ị C h o
(int.
i,
i nt
1
II
í > n )
hoa:
bi
danh
** ;
t s [ i |
{
i ỉ( i <
i
coul
<<
í^x i t í
1
"Chi
so
lỉiaruỊ
t . hi
:;irih
khon<^
hop
1g
;
) ;
}
r (ĩt u r fi
t , ‘i I i I ;
}
v o i tl
rna i n { )
{
i nt.
n,
c:c)ut
i
<< "Xní ỉ o
c i ri
>>
cap
phdL
wh i
;
1
o
:
n ;
(
1
bo
rìho
nhíipíìl (n) ;
)
í
c:out.
<■<
"\n C tin
cout
<<
"\nChon
XCMTI
:ỉo
" ( barn s a i
c In
>>
■|'.s í.\\
t^hi
sinh
lu
1 don
kvA
t.huc
th u
" <<
m íiy :
n
;
<<
CT)";
i ;
í í ì,
ri) ;
35
coul
<<
‘' \ n l i o
l ( Mi :
cout
<<
"\n 'i'{)n (Ị
§4. Đ Ố I
có
" <<
(iiííỉii:
"
h.hl;
<<
h.tci;
G IÁ TRỊ M ẶC Đ ỊN H
4.1. Thố nào là doi mặc ciịnh
9
9
MỘI I r o n e c á c k h a n ã n u ỉiiạnli c u a c ' " là lìỏ c h o p l ì é p x â y ciựim
h à m \cVi c á c dơi c ó ui á Irị inặc dị nh-
1 h ò i m t h ư ờ i ì u sơ lliaiìì s ỏ l i o n u
lời uọi lìàni plìai b ă n g sơ dỏi c u a h à m . Mo i dôi sè d ư ợ c k h ở i g á n uiá
Irị t h e o ihaiìi sỏ tircrnu ửnLĩ c u a nó. ' l ' ronu c '
c h o p h é p l ạ o iziá trị inặc
dịnlì cl c á c dơi . C’ác dõi Iìà\ có iho c ỏ h o ặ c k h ô n u c ó i h a i n sỏ tuxnìg
írnu I r o n u lịi uọi liãin. Klìi k h ơ ỉ i u c ỏ t h a m sò l ư ơ n u ửiiu. d ôi di rợc
khơi u ã n btri Liiá trị m ặ c d i n h .
Ví clụ h à m d c l a v vói d ỏi sỏ ni ặc clịnh d ư ợ c \ iêl i h c o n ì ộ l i roni! 2
c á c h sa u:
('ách ì ( K h ỏ n u kliai báo iiuuNcn lììẫu):
void
dcìaìnt
n
1000)
{
for
( i nt.
i
0;
i
( Có khai báo
C 'ách 2
voicỉ
dclay(int.
ri
V Q i ci
ci cĩ
1a y {
n
Ì n
L
i
C);
Mi)
nuuNCii
mẫu):
1000);
)
{
íor
( i nt
i
í ti )
c ách dù 11 ” ;
' C'unu càp uia irị chi) dỏ! 11 (C’ó llìani sỏ iroim lời gọi hàiiì)
d(?l
Ị Ị
Dối
n
í)000
^ Sư cI ịuìì : uiá trị niậc dị nh cua dơi ( Kh ị i m có t h a m so Ironu lời eọi)
dolay();
Ị Ị
Dối
n
ì 000
4.2. Quy íác xây tlụns lùuiì \(Vi dối mặc ciịiih
t C'ác dổi m ặ c dịiilì c ằ n phai là c á c dối c u ố i c ù n u líiìlì
(ì ia sư có 5 dũi ihco thứ lụ' lù' trái sanu phai là
dl.d2.d3.d4,d5
Khi dó:
36
lìr Irái s a n ụ
phai
nêu tnol clịi inặc clịnh ilii phiìi ỉà J 5
nêu hai clỏi mạ c dịiih thi phíu la d4. d5
nèu ha dỏi niặc dịnlì ihi pli:ii la cl3. d4. cl5
( 'UL' \ ỉ dụ sai:
\ a d5 mặc dịnh (khi do d4 ciìim phai ĩììặc dịnh)
d ỏ \ a d 4 I iì ặc d ị n h ( k h i d o d 5 c i ì n u pl i ai m ặ c d ị n h )
•
Klìi xâ> dụì i u liàm. iièu sir dụiiíi khai háo n u u y c n maLL llìi các dối
n i ặ c cliiilì c à n LÌược k h a i u á n Irtìiiu i m u \ c i i l ì i au. \'í d ụ :
/ /
Khỏi
v o ic i
( Ị / j r i (] i / i
í(int
(11,
i nt
voici
í (irit
/ /
C' /j c
t rị
í
cho
\ \ o c ì i .
(i4
100,
(il,
í loat.
:
lộ n íi
'ị
( V / ,
rnric
íi'/,
t.roncỊ
(J‘ )
và
(ií)
;
c:h.jr
thân
d3,
*ci'ì " i l A N O l " ,
( ' ì u i r
d o u t ) I ('
(i ị rứi
int
ci 4 ,
double
db)
h àm
Khỏi i L' J u ọ c k l ì o i u a n lại c l i o c á c d ỏ i n i ậ c dị i i h I r o n u d ò n u d â u c ú a d ị n h
!ìi_ỉlìĩa h a i ì ì . N c u \ 1 plìạiri dicL! n à \ ihi chưtriio trinh d ị c h sị ihơ iiu b á o lồi.
• Klii \ à \ dụi iu^ liàiiì- ncu khỏiigv_ khai báo n cg u y^ ê n inầu, thì các dối niạc
dịiih đirọc klìDÌ n iroim dịi m dâu cua dịnli neliĩa hà m. \'í dụ:
//
Khùi
vcìici
íjfin
ÍỊ ị <'i
í(int
,
t r ị
chc)
lloal
i nl
100,
d
?
-ì
,
tlố i
mặc:
char
^d:ỉ
c i o u b l (í
d [ )
dịnh
(i3 ,
"iiA
ci 4
và
ciíỉ
N O Ỉ",
;ỉ . 1 4 )
I
Ị Ị
(^l(:
c
I ộ n h l r o r n)
t tuln
hcHii
i ( i i a tri d ù n u clc klìoi uan clìo dịi niặc dịnli
u lỉic (.UiiiLi CUL haiiu. các bicn tồn bu. các h à m đC‘ kh^íi gáii CỈK) dơi
mặ c dịnlì. \ í cỉụ:
i ril
void
MAX
1 OOOO;
!{int
i n [
n,
i nl
yỉ f i <) x
m MAX,
(Ị('t
int
xí ĩ i ax
(Ịot.maxx(ì,
in.ixy { ) ) ;
4.3. Cácli su (iụiiỊi liàiii có (lối mặc cíịnh
i ,ứi uọi ham càn \'iẽt lỈKH) q u \ dịnli sau:
Cac tliani sị llìièu vănu triHiu lịi uọi ỉiàin phài l ưa i m ửim vứi các đơi
m ặ c dịnỉi CIIÕI CIIMLÍ (línli lừ trái sanụ phai).
Nói cácli kliác: Dã diine eiá trị inặc di nh clio mộ t dối (lai nhi ên pliái là
d ô i m ặ c d ị n h ) ihi c ũ n e pliai
SU'
d ụ n u uiá Irị niặc d ị n h clio c ác d ô i c ò n lại.
37
Ví dụ \ ó i liàin cỏ 3 dơi mặ c dịnh:
vci
í(inl
\\oiii
dl,
i nt
d ? .,
100,
char
doubỉc
*d3
"HA N O Ỉ " ,
(i S
3. ì^) ;
riìì c á c loi e ọ i s a u là d ú i m :
I Cì ,
3.^,
"AHC",
í {,'i,
. 4,
f {3,
'ỉ. 4 ) ;
10,
"AHC");
//
Ị Ị
1.0);
/ / 'rhiốu
‘r h i ố u
3
Dầy
tỉử
Ui arn
Iharn
‘ỉ ố
t.hcjm s ố
cuối
rA io
ciố i
khơnc]
íiùnq
qiá
Irị
số
cuối
C'ác lời e ọ i s a u là sai:
í (3);
í (3,
//
'l'h i ồ u
3.^1,,
t. hai n
lí)};
//
‘ĩ ố
Dã
//
phái
dùnq
mặc
rnặc
iá
trị
clịnh
mặc
d?
(lịnh
cho
ciịnh
d3,
c:hơ
t.hì
d4
và
c:0ru3
db
4.4. Ciíc ví dụ
I làm lil (bên dưới ) d ù n u dê lìièn ihị chuồi kv lự dc trên n d ị n u mà n
hiiih. Cá c đối dc \ à n dê u có uiá irị Iiìặc dịnh.
H i n c 1 Uíicĩ
< c : o n i C). t-i>
Hi n c 1 u d o
< i O í ì l r(3am . h >
void
hl(char
*dc
"l i A
void
ht. ( c h c i r
*cic,
inl
NOI ",
int
n
10);
rì)
I
for
( i nL
c:c)ut
i
<<
0;
i
"\ri"
<<
t í i )
( i c: ;
}
v o i (i
u\ii
i n {)
{
ht. 0 ;
/ /
In
hl("AỈK:",
ciịnq
3);
h l . { " í ) 1-:K") ;
chữ
/ /
/ /
"H A
In
NO r ' L r ơ n
dịnq
líi
dịnq
10
chữ "A IK :"
chữ
dịng
trơ n
trê n
3
10
dịnq
ciịn q
qeLch í ) ;
V'í c!ụ d ir ỏ i d â y t r ì n h b à y h à m h i é n lliị m ộ t c h u ỗ i s l r t r ê n m à n h ì n h
d ò h ọ a . tại \ Ị tri ( \ . y) v à c ó m à a m , C á c d ố i X, V v à in là m ặ c đ ị n h
D ù n u các h á m u c l m a x x O \'à u e t m a x v O dc khởi u á n clio
X .
R1;ỉ) u á n c h o ni.
H i n c Ì ucU^
< C ( ) f ì i C) . h >
It i
< ( j r a p h i c.s . h>
nc:
voi<ỉ
I
hi Ì
(c:íia r * ; ỉ t r ,
i nt ,
voici
y
h i íMudc: ( chvi r
*slr ,
inL
i
i ri t
hl
s o t c x ) 1 o r (in) ;
(j(;Lc:o 1 t^r ( ) ;
out.t.(?xtxy (x,
Y,
.st, r )
s o t c : o l o r {ĩiiciu h L ) ;
38
i nt. X
í Ị Ct r naxyí )
//
//
/ 2,
q c t m a x x ()
/
X,
2,
i nt.
inl,
y,
m
RKD) ;
i ri L
m)
l . uu
mau
hi c n
Lai
phuc
mau
hicri
tai
;
Khoi
\ . D ù i i g liăim
v o i (i Íĩiíỉ i ri ( )
1
I ri t
rnh
C),
rri(K:i(ĩ
ĩ íì í t (J r r i p h ( íiiinh ,
s c t
bkc:c)
1
o r
0 ;
í»ĩnc)cic', "
" ) ;
{ Ki . Ul *' , ) ;
Ị Ị
h i (Mick: ( 'Mlỉ-IM.C)" ) ;
h i cncỉ c: { " c i i u c :
ÌỉhM.l.C) rn.iư cỉỏ
MUNC",
1,
1};
^ 0 0 , Yl':i,l,CìW) ;
tri
//
//
(Ị(M c h
i Oa
màn
/ / ciiuc:
//vị
fi l o r u i c { " C ' ! 1 A ( ) " , ỉ ,
<3
vị
MUNG m à u
(1,
CIIAO
hình
dỏ
Lại
1)
màu
trí
vánq
t ại
(1 , -100)
( ) ;
í
\ ' í ilụ LỈuoi d à ) Irinli ba\ liàiiì línỉì tích phân xác dịnh g ô m 3 dôi: r là
lìaiiì c a n l ín h l íc h plìàiì. a \ a h lá các cậiì du ’ới \ à Ircn (a < b). C á 3 dối f, a
\ á b d õ u m ặ c d ị n l ì . ( ì i á Irị m ặ c d ị n h c u a c o n t r o h à m r i à d ị a c h i c u a h à m h p
( b i n h p l n r o i m ) . c u a a h ă i ì u í), c u a h b ã i m 1.
fị i nc: I U ( i ( í
< ( : o r i i C). I’ì >
II i r u : 1 u c i c ĩ
< i O íìt r c a m .
íi i r u ; ỉ u c i o
< i oriuin i p . h >
H i r u : 1 U(l<í
< f n a t h . hi>
h >
c i c ) ưt ) ỉ c }
b p { c i o u b 1 (í x ) ;
cloublo
tp(dc)ut)lc} ( *í )
c i o u t ) 1 c:; t)
! tí
( i o ỉ i h
(ciout)l(?)
bf),
double
a
-
0.0,
ì . (ì)
;
b p ( ( i o u b 1 (' X )
I
r
u rn
X
*
X;
I
cio u h U ^
lp(ciuublt'
( * I ) ( ( ỉ o u b 1( 0 f
c io u b lo
( ),
đ o u b lo
h )
{
i n t
n
1 0 0 0 ;
( l o u b 1 ('
I (ir
.s
( 1 rit
SI
r (M u r n
I
I (ci
s *
í) .
, h
( b
(ỉ;
I<.n;
/
n ;
M i )
t i * h t h)
h
I
f {ci f i * h) ;
/ 2;
}
VC) i ci
lĩici i n { )
{
c: 1 r s c : r ( )
;
cout.
< < s c t i t)-s í 1 ( ì ()S :
:; ; hc ) wpo i rit )
<<
ccMit.
<< * '\n 'r ií: h
ph
l u (ì
cicMi 1
c:ua
X
í:c)ut
<< " \ n ' I'i c :h
phan
t u í)
(ie n 1
C i i i ì
oxf)(x)
cout
<< ''\n 'r ic : h
phíiD
tu 0
ci(;n I M/ 2
cua
s o L p r e c i 3 i on (2 )
*
X
sin(x)
"
<<
'* < <
;
t p { ) ;
tp (G xp);
" <<
t . p ( s i ri, 0 , '3 . ] A / ? ) ;
(’ h { ) ;
39
§5. C ÁC HÀM T R Ự C T U Y É N (INLIN E)
5.1. liu , nhiiọc (liêm cua hàm
V i ệ c lò c h ứ c c l n r ư n u Irìnli ihàiili c á c liàm c ỏ 2 ưu d i ê m rõ rệt: riiư
nhất là c h i a c l i ư ư i m irinli i h à n h c á c d ơ n vị d ộ c lập. l àm CÌKI c l u a r n u
t r ình di rợc lỏ c h ứ c m ộ l cácli klioa h ọ c dc k i ề m s o á i ciễ p h á t h i ệ n lỗi. dc
pliál i r iên. nio' rộim.
T h ử hai là uiani dirọc kícli thirơc c h ư ơ n u Irình, \ i nìồi doạii chưcíim
trinh t hục hiện nliiộni \ ụ cua iiàm dược lliay bà nu mộ t lời gọi hà m.
I'u\ nhi ên h à m cũni; có nhirợc d i ê m là làm c h ậ m lơc dộ c h ư ư i m trình
do pỉiai llụrc hiện mộ l sổ thao tác cỏ linh thu tục mỗi klii gọi h à m như:
cấp
phái NÙIILÌ nho' cho cac dối \'à biến cục bộ. i ruycn d ữ liệu c ua các lliani sù
cho các dôi. uiai ỊThỏiiLỉ \ i i n u n h ớ trirớc klii ihoál khơi hàm.
Cac ha m Irụv l u\ êi i troni: C'"
cho kha năni ’ khăc phục d ư ự c nhược
di êm noi Irèn.
5.2, C,'ác hàni trục tuyến
Dê biên một hà m i hành Irực luycii la \ iêl t hêm lừ khoá:
i n 1 i nc
\ à o Irưóc kliai báo n u u y ê n m ầ u hàm, Ne u kliông diiim n e u \ ê n mầu ihi
\ ict lìr khố nà\ trirớc dỏrm dầu liên cúa dịiih imhĩa hà m. Ví dụ:
i n 1 i r\o
f 1O
i i t
fỉoat_
í
( Ì nl
í (int
n,
n,
í I oat.
í loat
x);
x)
í
/ /
Các
c:âư
lệ n h
1. r o n q
Lhâri
íiàm
}
hoạc:
i n I i ru.‘ í ì Otì ỉ
/ /
(.\u:
( \ 1U
í ( i fi i
lộ n h
ĩì,
(1 o<ì t.
I rí)ru]
th â n
X)
hàrn
}
C h ú ý: TrDiiLi IIÌỌÌ Iriràn u lìợp, từ klìố in line p h a i x u â l liiện Irirức các
lời uọi h à m lliì Irinli b iê n dịcli iuỏ'i hicl cân \U' lý lìàni i h c o k ic u inlinc.
Ví d ụ hàm 1'iroiìu clìirơne trinh sau sè khỏi m phai là lìànì irỊĩc luN ciì \ i
lìr khíKi inlinc \ ’icl sau lời aọi hàiiì:
Hi n c 1 u d o
<czoĩ\ i o . h >
ỉl i n c 1 u c i o
< i C)-S L r oar n . h >
voi d
[ĨU.1 i n ( }
{
40
i n l.
s ;
s
Í(S,
6);
cout
<<
s ;
(Ịíít.ch ( ) ;
I
i n l i no
I
ri l
I ( i nl
ii,
i nl
b)
{
r(ìt u r n
ci
*
b ;
/
C h ú v'; l i o n e C'' \ ncu hà m dược xà\ d ụ i m sau lời íiọi hùm ihì bẳt buộc
phai
kliai b á o nuLiNcn mầu liàm iruớc lới uọi, Trong ví dụ trên, trình biên
dịch c '
s ẽ h ă l lỗi \'ì l l i i ê u k h a i bát ) i m u y ê i i n i ầ u h m r .
5.3. Cỏcl biờn dch
hm trc
ô
ã tuycn
V
( ' h ư o n u t r in h dịcli XU' 1\ c a c hàiìì in lin e n h ư c á c m a c r o ( d ư ợ c đ ịn h
nulìĩa Iroiìiĩ lệnh //dcllne). imliĩa là no sò ihay moi lời gọi hàiìi bằ ng một
doạn cluuyiìu irinh ihực hiện nliiệm \-ụ cua liàni. C á c h nàv làm c h o clì ươnu
Irình dài la. l ìl nnm lỏc dộ clìut>im trinh lănu ICmì do k h ơ n u phái t hực hiộn các
ihao lác cỏ líiili llni lụe k!ii iiọì lìàỉiì.
5.4. So sáiìlì inacro và hànt trục tuyen
DưiiLĩ lìKicro \ a ham Uụv IU\Ị!1 dịu dan đcn hiệu q u a luxrnu lự. luy
nliiôii n u u o i la ihiclì dìiim hani Irục lLi}ên han, \ \ cách nàv d a m hao lính cau
iriìc cua clìuxriiy trìnlì. dề SU' dỊiim và iránh dirợc các sai sót lậl vặt lliirừng
Liặp k h i ỏ ù n n ‘' ' d e ỉ l n c (Iil ur t h i ê u c a c d â u n u o ặ c . d a u c h â m p h â y ) .
5.5. K hi nào thì nên dùn” liàin (rục tuyến
Pluro'nu an dùi m hàiìì irirc luiì rút i măn dirực thời uian c hạy m á y
nliuiìLĩ lại l àm tãim khối l ưọng bộ n h ớ clìLRTng Irinh (nhai là dối \ ới các ỉìàm
irục t u\ cn c ó nlìicu c;ìư lệMìh). Vi \'ậy cli! Iicn dùi m p h ư ơ n g án Irirc t uyền dối
\ ới các liáni nho.
s
S ụ* h í u i c h ố c ủ : \
r r ì iì l i l)iên ílịch
Kl ì ơnu plìai khi uặ|') lù' klnìá inlinc là Irinh bicn dịcli nhất ihiỏl phai xư
1\’ l i à m l l ì c o k i ê u I r ụ c l i i \ ê n .
c / i ú V r ã n u lìi' khoiì iiiliiic c h i là m ộ l s ự u ợ i V c h o Iri nl i b ì c n d ị c l i c h ứ
khỏi ì Lĩ p Ì K u l à m ộ l n i ộ i i h i ệ n l i b ã i I^ỈLIỘC.
( ’o lìiội sị liatìi nià cac irinli biên dịch llurờiìg k h ơ n g xir lý ihco cách
i)ilÌ!ic nluỉ' c a c lìàiii c h u a bicn slalic. hánì cliứa c ác lộỉilì c h u Irình h o ặ c lộnlì
UOU) h o ặ c lệiìlì s u i l c h . hàiìì d ệ q u \ . T r o n u i r ư ờ i m h ợ p n à v t ừ k h o á in li nc lè
dĩ nhiịn b\ ho qua.
1h ậ m chí ùr klioá inliiic vần bị bo q u a nga y ca dối với các h à m khơ n g
có nhìriìu h ạ n clic IICU Irciì nỏu nlur triiìh bicii dị ch i hấy c ầ n llìiet (\'í d ụ da
có q nliiêii lìàin inline làni cho hộ nhớchiRTiig Irinh q u á lớn).
41
Ví ilụ : C'lui’o'!m Irinh s au s ư d u n e liàiiì inlinc líiìlì c h u \ i \ à d i ệ n lícli cuci
liinh c h ữ nhậl:
riìinniỉ^ áỉì / Klìỏim kliai báo nmi yê n Iiìau. k h i cló hàiiì citc\ hcn pliai
dăl ircii liànì inain.
II i f ì( ' 1 uci(? < c o n i
|{ i n c I
c;. h >
< i o.s t
1n i i n e
v o i (i
r (?<jín . h >
(i l c : v h c n ( i ri t. í i ,
i n t. b ,
i nt.
^(it.,
i n l.
^ c: V )
ỉ
(í t
ci
cv
*
h;
7^
ị
b) ;
}
v o i (j
ĩĩiti i ri ( )
i
inL ữ ị ? . 0 \ , b | 2 0 Ị ,
cvị;^Oị, d t [ 2 0 Ị ,
c o u L << " \ r i S o h ì n h c h u h a t :
c i n >> n;
í o r ( i ní- i 1 ; ị < Ỉ1 ; t * i )
n;
{
<< " \ n N h o p 2
coul.
canh
cua
h i rìhi
c:hu í i h a t
thu
"
< < i< <
c: i ri > >
(i ị i Ị
>>
c i L c v h c n (. i I i Ị ,
h Ii Ị;
bỊ í Ị ,
dt I i j ,
cv Ị i 1 ) ;
}
c 1 r . s c r {) ;
í or
( i
1;
i<
n;
I li )
ỉ
c:oul
< < " \ n l l i r i h cA\{i
cout
<< "\ri!)í>
couí.
<< **\nl)iori t i c ; h
ci(j i
nhat,
thu
7. C t i n h
c:ou\. << "\nChtJ vi
"
"
<<
i <<
< < íJ [ i I < <
"
V(i
"
<<
b Ị i ];
" << (iL Ị ị I ;
" << c v | i ị ;
}
(Ịct.ch ( ) ;
í
P h i a r n ự ỉhì
' S u ’ d i ì t i e kl ì ai hátì n u u v c n m ầ u . K h i đ ó \ i ĩ v.htíá i n i i n c đ ặ l
I r ư ớ c n u u N c n lì ì ầu.
C h ủ ý: Khỏi ì u d ư ọ c dật inli nc I r uởc dịiìh nulìĩa liàni. 1’roiiu c l ur ơnu
trình d u ớ i clã\ ncii dặl ỉ nlinc I ruớc dịiih nulìĩa h à m ihì h ậ u q u a nlìir sau;
Cl uuynu irìiìli \ a n dị c h lliỏiìu. Iihưnu khi c h ạ y thì c h ư ơ n u t r ì nh bị qu â n ,
k h ỏ i m Ihốl dirơc.
Hi nt:! IJ(ÌC <(:c)n i C). h>
It i nc: 1 ư(i<^
i n 1 i r uĩ
< i c j : ỉ í. r ( M Ỉ Í I .
voici
\\>
( i t í : v h c : n ( i rìl.
<1 f
i rit
b,
int
v o i (i ítuj ị n ( )
I
in t ai;^01, b Ị 2 ( ) l ,
co u t: << " \ n S o h i n h
c i n >> n;
42
chui
dLl20J,
hat _:
rì;
í«(lt,
irit
íiCv);
to r
( i rì t
i
1;
i<
n;
M i)
{
c:()ij|
<<
"XriNh^ap)
Cdnh
f:ij<ỉ
th u
hi nh chunhat
**
<
í:
in
>>
a Ii I
dtcvhcn
>>
(.3 [ i ị ,
b i i I;
b Ị i Ị ,
dt
Ị i ],
c v I i 1) ;
}
c 1 r ;u:r { ) ;
1 C) r
( i
1;
i<
ri ;
M i)
coul
<<
"\n
C(j ul
cout
cout
<<
<<
” \ nl ) c) (i
" < < íi [ i I < <
" \ n ! ) i c Mi t i (_:h
" < < (it [ i I ;
*' \ r)(. h\ j v i
"
cv ị i j ;
í
li i n h
c:hu
nh<ì t
thu
" <<
ì
<<
"
va
" <<
b[i];
}
qcítc:h ( ) ;
voici
ciLcvhcníinl
a,
iiìl
b,
í»cit ,
in t
int
&c v )
{
ci t
cv
*
>* *
b;
(a
t
b);
§6. Đ ỊN H N G H ĨA C H ồ N G C ÁC HÀM (O V E R L O A D IN G )
6.1. K liái niệm về định iiịỊliĩa cliono
D ị h Ii i mh ĩ a cl i ồnu (lia_\ c òn iiọi s ự lai bội ) các h à m là di inu cìi ng
lịn ctẽ
một
LỈịnh iiLíhĩa các h à m khac nha u. l)â\' là m ộ t m ở r ộ n u râl có ýn u h ĩ a
c u a C'
Nhir d ã hiêt. iroim c \ à cac ngôn ngừ khác (nliư PASCA1-. 1-’0 X P R 0 ,
mồi h á m dỏLi phai cỏ m ộ t len |ihàn biệt. Dùi klii dày là
\ ì phai ilùni! nhiêu h à m khác nh au
niộl s ự hạn chế kVn,
dè lliục liiện c ù im m ộ t c ô im việc. Ví d ụ dê
là> uiá Irị l u \ ệl dôi li'oim ( ■câii d ù n u lới 3 h à m k h á c nhau;
i nt , a h s ( ị r ì l .
lonqt
i);
//
l.ầy
(Ị i á
qi á
/ /
(ioublo
í í i b . ‘ ỉ( c i o u b i c
ị. r ị
(i) ;
t.iiyột d ố i q i á t r ị
k i ố u jnL
ỉr]bs{loncjt
1);
/ / I.Ay q i á
l_ r ị k i c u 1 o n q
/ / I.ấ y
() ì á
Ị Ị (Ị i ỏ
trịkiổu
I r ị
t.u y ộ t
trị
dối
cioublc
Nhó' klia năim dị nh nuhĩ a chồim. ironu c ” có ihê d ù n g c h u n g một lẽn
clio c a 3 h á m trê n nlur sau:
i rit.
c i b s ( i íìt.
loruỊt.
(ioubJ<;
i);
c i b s ( I oruỊ t.
//
l,jy
!);
Ị Ị
L, j y
/ /
(Ị i á
< i b s ( c i o u b 1 Cĩ ( j ) ;
CỊ i á
/ / Lầy
//
(] i á
t. r ị
t.uyộL
(Ị i á
trị
t r ị
k i
ciối
t_ijyột
ồu
CỊÌ á
t.
Lrị
kiổu
q i á t. f ị k i ồ u
ìnt
dối
1o n c |
ị
t.uyột
dối
(loublo
43
tuyộl,
đố L
6.2. \ êu cầu \ ề các luìiu dịiili lìịỊhĩa chồiiịỊ
Klìi clìiỉìu c ú n u niộl lên dỏ dịiih lìíiliĩa Iilìicu h à m . Iriiilì b i c n d ị c h c "
sC’
d ụ a \'ài) s ự kliác n h a u \ è lập dôi c u a cá c hain n à \ d ê dịi tcn c á c hàiìi. Nlnr
\ ậ y . sau klìi hiên dịcli mỗi hàĩii sè cỏ một lên khác nhau.
T ừ cló c h o l l ì a \ ; các lìaiiì d u ợ c dịnlì nulìĩa i r ù n u lơii pliai c o lập dõi
k há c ỉilìau ( \ c sỏ lirọim lìoậc kiêu). N ê u 2 liàni hồii t ồn i rùi ì e tL' 1 1 \ a
irìiim dổi ihi trìnlì biCMi dịclì sè klìỏim có cáclì naiì plìâiì bi ệl di r ạ c . N e a \
c a kh i 2 liàm nà> c ó k i c u k h á c nlìau ihi Iriiìli b i ê n dịcli \ a n b a o loi. Vi du
s a u \ â > d ụ n u 2 hàiiì CIU c ỏ iCmi là T v à cìiim c ỏ lììộl LÌỗi nuuN cii a. nlnriìi!
k i ê u hàiii kha c nliaii. llàiiì i hử lìhàt kiêu n mi y ê n (tra \ ê a ^ a ) . h ù m llìú liai
k i ê u \ ' o i d ( i n u i á trị a ) . C’lìU'oiìLỉ i r i i ì h s ò bị t l ì ỏ i m h á t ) lồi k h i hiC‘n d ị c h
{bạn hà> thir xenì sao).
íi i nc: I Iici(? <( :orì i () - h >
IM n c 1 U(j(.'
inL
í { i ri1
VC) i (i
i ĩìt
< i ( ) s l rí:' fjíri.h>
f ( i ri t
cJ} ;
<ì)
í { i rit
{
rot-urn
a
* a;
}
vo i d
(1 )
í { i ri l
{
c: ouL
<<
’' \ i i
" <<
a;
}
VC) i ci ma i ri ( )
í
i Ĩ\L
h
í (S) ;
f (b) ;
CỊct c:h ( ) ;
\
t
6.3. Sử (lụnỉi các lìàm liịnh n»hĩa cliồnỊỊ
Khi u ậ p Iiiộl loi uọi. Irinli bi cn ciỊcli sc c à n c ử \'à() sò kr ợni ! \'à kiôii
c u a c á c ihani sổ dc eọi liàiiì có dúni:
i Cmì
và clíinu hộ dổi sỗ tưcYiig ÚĨÌU.
Vi dụ:
at)s{ì^3);
//
Tham
a b s { ì 2 M,);
/ /
cibì-s ( 3 . 1 ' l ) ;
//'i'ham
//
Tharii
;ĩỐ k i ồ u
số
số
ki cu
k i ẻu
dout)lc
i nt. ,
qọi
lonq,
CỊ ọi
cioublc,
{cioubl o
hàm
qọi
ìnl
hầm
íibs(ÌnL
loru)
i)
abs(lonc5
;
1);
ỉìàrn
ti);
Khi khơiiu cỏ h à m !iào có bộ dỏi cùnu kicu \ ứ i hộ ihaiìì sỏ (IroiìU lời
gọi), llù irinh bicn dị ch sc cỉiọn h à m nào cỏ bộ dối uằn kicii nhắl ( phép
c h u \ c n kicií dc dàiie nlìãt).
44
Ví (lụ:
■i h ; : ( ' A '
) ;
/ /
i b; ; ( ì - 1 ^ Ì') ;
' r h
.số
/ /
’r h í j m
//
(ioubiíĩ
íỉố
(50
rt\cìr,
k i ÍMJ
ki Au
íloril.,
íihs{fic)ijblo
hàm
i
(JỌ i
abs(int
inl,
i)
;
hàm
cj);
6.4. Nên su dụng plìép dịnh n^liĩa chồng các hàm nhu* thế nào?
Nhir dà nói ơ Ircii. klii \â} d ự n u cQim !ìhư s ứ d ụ i m các h à m t r ùng lên.
tniìh biciì dị ch ('
dà phai SII\ d o á n \ à eiai quvét nhi ều t r ư ờ n g h ợ p khá
nh ậ p nhăiiu. Vi \ ậ y k h ỏ n u nơn lạiiì clụnu q u á d á n g k h á n ă n g d ị nh nghĩ a
chỏnu. \ i di êu dỏ làm cho cỉiuvrnu trinh khó kiC'm sối vủ dỗ dẫ n đ ế n sai sót.
\ ' i ệ c d ị n h imliĩa c h ò n u sẽ hiệu C|ua hơn nêu d ư ợ c sử diing t heo các lời
kliu\C'ii sau:
t ('Ì 1 1 nịii dị nh nuhĩ a chôim các liàm ilụrc hiện n h ữ n u c ô n g việc như
nhau nliirnu Irèn các dổi l uợnu cỏ kiơu kliac nhau. Ví (1ịi Irong c h ư ơ n g trình
càn xâ> d ụ n e các hàm: cộnu 2 m a trận Mi ône kiêu doubl e. c ộ n g 2 m a trận
\ uòi m ki êu im. c ộ n e 2 ma irãn chù' nhật kiêu doubl c, c ộ n g 2 m a trận c hữ
Iihậl kiêu inl. thi 4 h á m irên nen dị nh nghĩ a c h ồ n u (đặt c ù n g tên).
■
N ê n d ù n u các phép chu_\ ỏii kiêu (ncu cần) dô bộ t h a m số t r ong lời gọi
ln)àn t oan tiiinu kiêu \ ỏi bộ dối sò cua mội h à m dược dị nh n uhĩ a chồim. Vì
pliir i h é inói iránli dirợ c s ụ’ nliập Iihầng c h o ir inh b i ê n d ị c h v à trin h b i ê n d ịc h
sC' c h ọ n d ú n u hà m càn uọi.
U.S. Lấy (lịn chi các hàin trìiii” tÍMi
( i i a SU' c ỏ 4 h á m clèu c ỏ lên la linh m a \ d ư ợ c khai b á o n h ư sau:
i ri l
linh
rn, j x( i ri l .
t. i n h
a,
irU-
b,
i rit,
rruj X ( c l o u b ỉ (ĩ cì ,
c) ;
(ioublc
//
b,
Ma x
cùa
double
3
c) ;
số
//
Ị Ị
int
t inh
inax(inL
l iiih
i nt -
I t i . j ( <. k7uLí I <,;
n);
* ci,
//
iiiL
V â n ctc dặt ralà làm llìc nào lay
M ti x
n ) ;
cùa
niộL
//M a x
dãy
óa
u»ỏl .
nqun
Ma x
3
số
số
cùa
tíiực
nqun
ciãy
L ì ố
l-hục
d u ợc dịa chi của moi hàm. C â u trá lời
nliu' sau:
l ) c lã\ dịa chi eua Iiìộl hàni. ta khai báo Iiìộl con Iro h à m cỏ kicu và bộ
JÕ 1 nhir h à m cân la> dịa clii. Sau dó n iõii hàiìi cho con tró hàm. Ví CỈLI:
I n l
{
* í 1 ) { i ti t ,
t 1t i n h
1n t
f'ỉ
(*í
t inh
) ( c i out ) i
í ti .i x;
( * 1 3 ) ( Ì nt.
t inh
(Jc)ut)Ịcĩ
^,
rn.ix;
/ /
(' \\i
c:ũ.i h à m
t.hứ n hấ t .
ci out ) i Cí) ;
d ị .J í : h i
c:ủ.i h à m
thứ hai
i nt ) ;
Ị Ị
rĩiíix;
íỉ ị
cl ci ub 1 c ,
/ / l.ấy
{ * í 4 ) ( c l o u b I í:
t. i r i h
Ì n t ) ;
/ / Ì.tìy
niax;
I l o u b I(í
í7
i n t, ,
ỉ.ấy d ị a
*,
l.ốy
chi
c:ủa hàrn
thứ
bci
i nt _) ;
(i Ị
chi
của
hàr n
l.hứ
tư
45
6.6. Các ví (lụ
Ví d ụ 1: Cliirtyiìu Irình uiai bài lốiì linì niax c u a nìộl d à v s ò n g u y ê n và
n i a \ cua Iiìột clà\ sỏ ihục. Tr oi m chưiynìg Irinh có 6 lìàin. l lai lìàin d ù n g clc
n h ậ p dà> s ỏ n m i \ c n \ ' à d à \ s ị l l ụr c c ó I c n c h u n u l à I i h a p d s . B ô n l ì à m ; t í n h
inax 2 số nuun. liiilì niax 2 số tlụrc. tính inax CLÌa da>’ số nguycii. tíiìh niax
cua dà\' sơ ihirc diroc dãl c h u n u một lên là niax.
li i nc' I ij(Jí'
< ( ' o n i (). h >
lỉ i n c I
< 1 o.st r O d í i i . íì->
II i n c ỉ U(i(?
< i i ì í i n i
voici
void
i fìt,
. h>
nhapcis(int
*x,
inl. r i ) ;
rìha pcỉ.s ( d o ư b l c? * x ,
int n);
ma x ( i nl
X,
i nt,
y };
c i o u b l c m a x { ( i c ) u b l c X, t i o u b l c í y) ;
int. r n a x í i n l * x ,
int n ) ;
í i o v i b l o n ia x { d o u t ) Ì Cĩ * x ,
int. r ì) ;
v o i d n h c i p d s ( i n t *x,
i n t n)
ỉ
í or
( i nt.
i 1;
i
M i)
í
coul
<<
c i n
> >
" <<
i <<
"
X í i Ì ;
}
}
voi(i
i
r i h í i p c i s ( c i o u b I () * x ,
r
( in1
c: out-
i ri
i nl .
i
<<
>>
1;
i < D;
"Phan
t:u
X ị ii
rĩ i ax ( i n l X ,
i nt ,
*
"
n)
♦i )
<<
i <<
"
;
i nt, y )
í
X > y
rtM.urn
ỉ
X
:
y;
}
doubU)
m a x (cic)ut) 1 c
X, c i o i i b l c
ỉ
rot urn
X
> y
?
X:
y;
\
rni ì x ( i nt * x ,
ị nt,
i nt.
n)
i
i nt
X n
\
í o r ( i ri 1
;ỉ
rnax( í ỉ ,
r o l u r n
dout)ỉc
46
ị
;
2;
i< n;
M ị)
X Ị i ] ) ;
íỉ ;
fíic3x ( ( i o u b Ui
^x,
i nl .
n)
y)
c l o u L) 1 ( ‘
f () r
s
X I 1Ị ;
i;
( i ri 1^.
íỉ
i< n;
r i ui X ( s ,
r (ĩl u r n
Mi)
X ị i Ị ) ;
s ;
}
v o
i ci
rii.i
i n
{ )
1
i nt
n,
n i,
rìd,
(J()ub \ <) x \ 7 0 \ ,
c 1 r ;ỉc r ( ) ;
niaxíỉ;
c:t)ut
ph
<<
(: i r ì
"\riSt)
> -*
ccnit-
"Nhcip
rihcJp(J.‘; (
'
c i n
> ^'
coul
ruịuycín
rì i
n i;
<<
Í'()U I
rn.ix i ;
ciay
SC)
ru3uy(:n\n
ni);
" \n S o
p h ,ỉn
l. ư
t huc
**
ĩ\d
;
n (i ;
<<
"Nhcjf)
nhrjpcj;ỉ ( X ,
max i
iti(JX(i
n d
ỈÌO t . h i j c \ n
( i fj y
;
) ;
í i i ax {
riiíix ( X,
ni) ;
ricJ) ;
(X)ut.
<<
"\fiM a x
c:u
day
ruỊu yo n
c: c) ul
<<
"XriMíìx
c:vj
ci ay t hut:
"
<< m axi,*
*'
<< maxd;
cỊCítcH () ;
I
Ví tlụ 2:
Clìuaiii: Irinh sau ihụv hiện plìóp nhàn nia trận:
I)
A
B
c
irtìiìu dó A. B là các nia Iiạii Miònu. c là m a Irận c h ữ nhật, ' r r o n g
cliutrnu Iriiih có 3 cập hàiiì Irùne tciì dc t hực hiộn 3 n h i ệ m vụ ( nh ư n g trên 2
dÒ! u r ợ n o k h a c Iihau la Iiia trận \ iìg \ à c h ữ nhật) : N h ậ p n ia trận, lìhãn 2
nia irận \ a in nia Irãn.
tl i ỉ k : I
< c : í ) n
ị C ). h >
H i n c I U(i(^ < ỉ ()S l r Cfim . h >
fỉ i í k: 1 ịìcU) < i oi nari i p . h >
t ypíH Ìííi
v o i c i
i nt
MT I
n h . i p í í i t
voiíi
{ M ’ỉ’
í . i , c : h < j r
rìhdnml
(MTh f
v o iíi
nh.ỉprn!
(MT
v c ) i ( i
i n l
in riil
{M 'i‘
M'l’ c ,
(M 'I‘
a
V ( ) i ( j
n h r i p n i t
(M 'ị‘
a ,
r
( i n t
i
( i nt
i nt _
rn,
1 ;
,
i n t
M'ỉ'
b ,
c : h c j r
ĩ <
j 1;
rn,
rn,
i n l
i nt ,
int.
n ) ;
r O;
n,
ini.
p) ;
int, n ) ;
r i , c : h a r
n h . j n m t
í o r
i nt .
íi,c:hc3r
i ci
í o
;
\ 2 ( ) \
i n ml (M'i‘ < ỉ , t : h a r
voici
v o
ị
? . 0
M ‘ l'
irìt,
m ;
M
j< n;
n ) ;
c :,
m ,
L n t
i n L
n ) ;
n )
i )
t »i)
{
c:o u t
<<
"\n"
<<
ton
<<"|"
<<
i
«
**, "
<<
j
«
”1
-
47
c i n > > ci Ị i I I } I ;
v o i ci n h a p m t (M'l’ a , ( : h a r
‘‘t e n ,
int
n)
I
nhapmt. ( a ,
t (Mì,
n,
n);
I
v o i ci
i riíiil (M' ! ‘ í i , c h ( i r
*t.on,
int
in,
int.
n
i
c o u t < < "\riMcj
í C) r ( i n t
i
1;
t. r a n : " < <
ỉ<
t.cn;
rn; * í i )
{
cout. << * ' \ n ” ;
f o r ( i nt. i 1 ;
void
j< n ;
<< í ỳ c l v j { G)
cout.
i nmt í MT
a,char
tíj )
<<
cJ [ i Ị
*ten,
int
[j );
n)
{
i n m L ( a ,
t e n ,
n , n )
;
}
void
n h a n m t . ( M' r
Ỉ I , M'I’ b , M'ỉ’
c,
inl.
m,
int
n,
inl.
p)
{
í o r
( i.riL
for
!
1 ;
{ i nL
1< -m;
I 4i )
1 ; j<
p; M j
j
)
í
cỊ i Ị I j !
íor
0 ;
( i r\L
k
c:[ i 1 I j I
ì ;
•
k< - n ;
( ỉ k)
aỊ i I I k|
* b[kl [ j I;
}
}
void
nh
t),
MT c ,
í
nharunt, ( a ,
b,
c: , n ,
n, n );
}
vo i d
ma ì n ( )
i
MT a ,
MT u ;
b,
c:,
íi;
/ /
cJ
abc
c l r s c r ( ) ;
"A", 2 ) ;
"IV*, 2 ) ;
"C", 2 ' 3) ;
u, 2) ;
c,
ci, 2 , 2 , 3 ) ;
"A" , 2 ) ;
" l ì " , ?') ;
"ư
A * M", 2 ) ;
7,
3);
nriapml ( a ,
nhapnit. ( b ,
nhcipmii. ( c ’
nhaninl (a, b,
nhanmt. ( u ,
i nmt. { a ,
i nmt ( b ,
inml(u’
i runt(c:’
inm t(ci,"l)
qoLch o ;
48
u * C” ,
2,
3);
i nt ,
n)
§7. ĐỊNH NGHĨA CHổNG CÁC TOÁN TỬ
7 . 1 , C ác p h é p t o á n l r o n g (
’ và c
I rt)!iu t ’ ' v à c c ỏ khá lìhicii các p h é p t oán d ù n g dô t hực hiộn các t hao
lác Ircn các kiôu d ữ lìọu cluiủn. Ví dụ các p h é p sô học: + - * / á p d ụ n u
c ho các k i ê u dữ liệu nmivèn. tliục. Phùp lây p h â n d ư % á p d ụ n g đôi với
k iẽ u lìuuNcn.
7.2 .1’hực hiện các phép tốn trên các kicii dữ liệu không chuẩn trong c
\ ' i ệ c t h ụ c h iệ n các p h é p Uián trên c á c dô i ti r ợ n u tự d ị n h i m h ĩ a ( n h ư
inanu. cãii trúc) !à nhu câu băl buộc cua ihưc tê. C h ă n g hạn cân t hực hi ện
cac p h é p s ô học li-ỏn sô p h ứ c . Ucn p h â n số. trên d a t h ứ c, trê n v é c tơ. trê n m a
trận. i)c dai") uiil: _\'êu câu n a \ . la SU' dụi m cac liàm tronu c . V'í dụ sau dây là
mội chi r onu Irình c e ỏ m các ha m nhập phãn số. in phân số và t hực hiện các
pliép cộim Irừ nhân chia phân sô, Chi rơnu Irinh sẽ n h ậ p 5 phâ n sò; p, q. z. u.
\ \ à línli p h â n số s t heo cỏnu thức:
s = (p
q * /.) / (u < V)
HJ nc: 1ucJo <c o n i o . h>
H i n c ỉ u d o
< s L d i o . h >
H i n c ì u d c <í na t . hi . h >
t y p e d e í í i Lr u c : t
(
int
a,
b;
} PS;
vo i d
nhap (
VC) Ì d
i II ( PS p) ;
*p) ;
i Tít-
u s c : 1 n ( i riL X,
i nt
y) ;
l\s rul.íỊorUl^S p) ỉ
l>s c o n q í P S p1 , PS p 2 ) ;
l\s t r u( í >s p 1 ,
PS p 2 ) ;
PS
(: hi r i( l> s
V( ) i ci
p l '
n h ( j p ( Í^S
p;^);
*p )
i
i nt.
t.,
m ;
p r i nt. í ( " \ n ' l ' u
s c iin ỉ
p->a
void
va
f.l,
(" % d 'Ằ d " ,
1;
in(i\s
mau :
p->b
" ) ;
^rn) ;
^ rn;
p)
{
p r ì n t í
i nt
{ " % d /% íi" ,
u s c Ln ( i r i t
X,
p .< i,
i nt
p . b ) ;
y)
í
49
X
( U) ; : ( x ) ;
( X ■* y
ì ì
y
0 )
wh i I
r ('t u r
(X !
i í
r o t.u r n
n
1
;
y )
(x> y)
C' Ỉ - SC'
ribs (y) ;
X
y
-
'
y;
x ;
X ;
í
PS
rut.qon(l^S
p)
{
Ỉ^S q ;
i n l.
X;
X u s c 1n ( p . a ,
p .b ) ;
q.a
p .a
/
X;
q . t)
p .b
/
X;
return
q;
}
PS
c:onq{í\S
\>s p 2 )
p l,
{
q;
c \ . tì
p 1 .
q.h
*
p 2 . tì
* pl . b ;
p2.a
* pl.b;
ỉ
*p 2 . b;
p 1.b
r o t.u r n
.b
rut.CỊon (q ) ;
}
PS
tr\i(I\S
pl,
l\s
p2)
I
PS
q;
q.a
pì.a
*ọ 2 .b
q .b
pl . b
* p2 . b;
return
ỉ
ỉ\s
-
rutXỊon (q) ;
nhan(PS
pì ,
PS
p)2)
{
PS
q;
i ] . cì
- ‘ -Ì
.h
p ì . iJ
T
o t . u r ri
*
;
*'
ị >2 , Ì
r u t íỊori { )
j,
;
}
PS
c:hia(PS
ưtl
f)l,
ị>7)
{
KS q ;
ã
pl . a
* p 2 . l);
q .h
f)l . b
* p2 . a ;
r Cíturn
ruLcỊ orì (c^) ;
}
vo i d
ma i n { )
(
PS
50
p,
q,
u,
í^S t u , m a u ,
s;
printí{"\n
Nhap
V ;
phan
so
p:
");
nhap(&p);