Tải bản đầy đủ (.pdf) (37 trang)

Giáo trình c++ lập trình hướng đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.6 MB, 37 trang )

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ò lluuì 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

Hoá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



nhập

tihco
một

thứ

ciãy

số

t. ự


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 loíì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



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 Oí ì í 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 )

í


{)

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 ( ( " \ riliv.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ì toà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 toà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 oà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



" <<

(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ì cluì 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ìayíì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‘ )



(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Ì uá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




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 toà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:
voìci

í(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í)};

//

‘ĩ ố


//

phái

dùnq

mặc

rnặc




trị

clịnh
mặc

d?

(lịnh

cho

ciịnh

d3,
c:hơ

t.hì
d4



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 khoá 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ìoá 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 dịch
hàm trục
«
• 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 luyòiì 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 uá 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 Ihoá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 hoàii t oà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ÌU 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 soá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

oùa


u»ỏl .

nquyôn
Ma x

3

số

số

cùa
tíiực

nquyôn

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ó uá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ứ




45


6.6. Các ví (lụ
Ví d ụ 1: Cliirtyiìu Irình uiai bài loá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ố nuuyòn. 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 Oí 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 \ uô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 toá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);