M ôí bicn chỉ cổ lầm lác tiụ n ị: Ironp khoi ỉộnlì ì\ó íưtrr khai ỉxío... Tix>ne khai báo các tham ch iố ii phai đưtíc ean với in ỏ l bicn nào đó tio iip bỏ Iilìứ.. Lời gii rcr35 cũ iie
Trang 2I K r Ờ N í ; Đ A I l l ( ) ( HẢ( H K H O A l i À N Ô I
N(;rv í:\ rnAMI nil V (( hu bien).
I A A N H I I A N N ( í l V K N ( ^ l A N (Ỉ H I Y, \ ( ; i Y Í;N m i t ) r (
B ò i t ậ p
lỉà i tập mẫu, Cáu hồi trắc nghiệm, Bài tập tự giải
In lần thứ 4 có chỉnh sửa
vU
NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT
HÀ NÔI - 2009
Trang 3LỜI NOIĐẨl
N i^ on n í ỉ ữ C-h~^ l à ỊI^ỎN ỉỉí^ữ l ậ p ĩ h n ì ì vợềỉ ỉ ì ủ ỉ ì ị ’ (Ỉỉù/C s ử (íỉỉỉii* p h ô h i ê ì ỉ h i ệ n
Ỉ Ị ( Ị \ \ N i ; o n ỉ i i ^ ữ r'++ ('() c ả s ự n t ê t ì ì ( ỉ e o ( l i f t N ị ỉ o n ỉ ì ^ ữ c v à n ỉ i ữ n í * ( Ì i ể n ì m ạ n h ( l i a
ỈỈỈỌỈ //xv>// //.í;/? I ợ ị ) í r ì n / ỉ hirớn^ (ídi tỉCỢnịỉ H iệ n Ỉ Ì ( I \ \ ( r ê n r â r hệ ( iiêĩi lì àt ilỉ t hỏỊỊỊỉ
i l ì o c á i ' ỉ ỉ l i a p h a ĩ Ị i i ứ t ỉ Ị ) l ỉ ( í n ỉ ĩ ỉ ê m
1'roỉíi^ cá c ín r ở n i ^ (íạ i h ọ c kh o d họ c , câ( ĩn ù y tì iị d ạ i h ọ c k v t h i i ậ í và cỏtì iị
p l ỉ ỉ ù / n í * p l u Ì Ị ) l i ư ớ ỉ ì Ị ỉ (ìâ i ĩượn ^ N h ằ m (íâp ứỉiíỊ p h â n ficio vẽií r ầ i i (íỏ, ('lìỉh ỉíỉ t ô i
ỉ ì r n h à n h hiêìì s o ạ n c á c t à i l i ệ ỉ i ĩ h a n t k h ả o p l n i ( ' vụ c h o việc ị^ỉảtìiị (ỉ ạy n ^ ô ỉ ỉ riiỉữ
ĨH Ì, ntù c ủ r á c n í^ ã ỉììi k liá c C h ú n ịf ĩỏ ì c ũ n ịị h v V Ọ ỈÌỈỊ r â ỉ i í Ị c iiố n " B à i U Ịp lậ p í r ì n l i
Hiìỉỉh.
V é co' h â ỉ L h o í7/r c ủ a cỉiốỊì sáciì ỉ ì à \ h â n i S(ÌỊ n ộ i dỉiĩti* ( ' ãa c â c cỉiỉù/tìỊị
ĩroỉi^ nu)ti sadì 'ỈAip irình hưÓ7tf* dôi ÍƯOÌIỊỊ vói í'++" (ỉã in ỉại nhà xiíáỉ hdn
K h o a học và K \ ĩíĩỉiật, lìâtìì 2 0 0 0 và (tíitiịi (ỉược (Íùtií* là m tài liệìi íỊÌảnỉ^ (lợv cho
Siỉìtì v i ê n ĩ Ị ị ị ị ộ c kluHt C â t i ^ ní*hệ ỉl i ô H i ỉ ĩiìì, T n ú y n i * O ạ i ltỌ(' B â c h k h o a H à N ộ i
( ' h í h ì Ị i (ỏi (1(1 cô ị^OỊì\ỉ, (ỉ ả m h à o titìh s ư p l ì ạ m ĩ r ì n h h á y m ộ ĩ c á c h l o ^ i c c á r
nọ i (i n ỉ i Ị ị ĩ h c o ỉ ừ ỉ i i ; m ứ c ki ến fhức, iỊÌúp c h o n ^ i d r ị ( ỉ o r và ĩ ự h ọ c (lê t i i j ) ĩ h ì i i'(U' vân í / í ' ('àn ĩ n i y ẽ ì ì ĩ h ỉ i i ) ầ i i tììổĩ ('lìiừrn^ (ìéỉí có p h ầ n ĩ ó m l ư ợ c l ý ĩt ìu y ế ĩ ĩ i ế p theo 1(1 ( út c â u l ỉ ó i ô n ỉ ợ p \'ủ p l i ỉ h ì ỉ r ắ í ' ỉì^l ìi ệĩ ìi nììằtìì cìu ìị ĩ r ỏ k i ế n í l n ù ' c h o ỊìỊịỊ(ời họ('
\(Ị Ịi ĩứĩii> i hưoíiii, í i ê p ĩ h e o l ủ r à í h à i í ậ p m ẫ n , ('íh' h à i ỉ ậ p t ự ị ị i â i và c i í o i l à
(láp án ('í((ỉ c âc ( â u h ỏ i ò n tậỊ) \ à t r ắ c n^hĩệm T r o n ^ m ồ i ch ỉùínịị, í ln o i iỊ t ô i cò
i ỉ â ỉ ỉ ỉ ĩ d ư a /V/ r á c h ù ỉ ĩ á p c ó t í n h c h t i ẩ n m ự c v à l ỉ ệ t h ổ ĩ ì ị * v ớ i ( í ộ k h ó t â ỉ ỉ Ị ĩ ( l ầ n M ư c
(íộ i liiix ẽỉì sáỉi í i I n ì ỉ (ỉươc m à r ộ ỉ ỉ ỉ ỉ ĩiìeo ('úc (i iiùrníỊ ĩù y ĩ h ĩ i ộ c vâo tìlìti ( ầu sử
(liiỉiị* ỉiỉ^otỉ ỉ t i ĩ ữ ( l i d Ịìi^uởi sử (ỈỈỊĨÌỈ^ T r o ỉ i i ^ ĨNỘÍ sô ('lìt(<ffìịĩ c l ỉ i ỉ n ^ f â i (ítC(Ị r a n tộ t sỏ
kê hù t t o á n ĩ h e o p l n ù ĩ n í Ị I)liái> Ìỉiíớỉìị* <ỈÔI ỉ ư ợ n ^ và c á c h (‘()i ( l ậ t chươnị* ĩ r ì ỉ ì h h â ỉ ỉ i Ị
ỉiiỉòn / / í '/ ? r v + ỉ ) ă c hièt, chỉiNịĩ tỏi d à n h ri é u Ị ĩ c h ư tm ỊỊ 7 dế g i ú p h ạ n dọc làm
Trang 4(Ịỉiưtt Vfri phĩíếmịỉ phá p phán tích íhiết ke hưóitịi dồi Ííítni^ sii í/////^^ cntỉỉ^ i ỉi
I M I - m ọ i COỈÌỊỊ cụ m ớ i d a n ^ r át dược quítỉỉ tá m í ren (he ịỊÌỚi Víí (ì Vit'i Niỉrn.
( \ i ( i lịỉùíiìì^ ĩ r i t i h t m t ì ị ị Cĩiòtì s á ( i ì (í ã (Ỉỉú/C VÌVÍ và i 'ỉ u f\ ' ĩ l i ừ í ỉ i h i n ỉ ( ỉ \ ' h ằ ỉ i y
ki'fti Cỉỉon sácìì Ban íl ọ c cố V kiếiì iíỏtìỊị iỊÓp CỈỈO ỈỈỘI (l iu ii ĩ ( l í o n MÍi lỉ \ i f ỉ Hihì lỉ('
ỉi lú ỉ i r ị ) vớỉ r á i ' tái íỉi à th e o (tị(Ị r h ỉ :
N t,'//v/// T h a n h T h ủ y
KliỉXề C ô n Sỉ ỉỉỊiliự rhỏn^ tin
i ) ạ i lỉỌí Bá( k h o d H à N ộ i
Te ! f i ồ 9 6 l 2 4 - F a x 8 ố 9 2 9 0 h
E m a i l : ĩỉ ì Ị i \ n ĩ ( ữ i t ' h i ư e d i ề v n
C'hiiHi* rói \ n i ('(ỉm ơn vê nlỉửniỉ lỉÓNí^ ^óp (jiiy háỉi dó.
( ' h iu i iỉ ỈOI Aiỉì hà v ỉỏ lòniỊ cdnì (/n ĩỡi B(ỉn t h ù tìhiệtìì khoiỉ, ( á i ( ỉ i á o SIC
ỉiiíứn<^ Đ ụ i họí Bác khoa H á N ộ i và N h à x u ất hãn Klì o a lỉọc và KỶ ĩl m ặ ỉ { ỉ â (íótìỊĩ
H a N ọ ỉ n,i>av 2 ( } / J / 2 ( ) ( ) l
( ' ú c tác íỊÌá
4
Trang 5C h i í o i i ỉ ỉ I
N H ĨlN íỉ MỞ R Ộ N (Ỉ CỬA C++
I TÓM TẮT Ll THUYẾT
1'o a n fư x u ũ l n h ậ p : T ro n e C + + cho phcp sử d ụ n p ti>án tử xu ấ t ( « ) và loiín
111 iiIk iị) (> > ) ílò lỈKiv llic hàm v;u) ra chuán của c Lơ i điém CIUỈ việc s ử tiụ n e icKÍn
lư \ u â i nhạ|) là Iieirờị s ử d u n u k h ôn u phai lỊiian tủm đ ế n đ ị n h íiạiìg xuất Iihậịx Cú
pliáp (lìin e đc xuà! iilìậ Ị) như sau
• ' o u t ' ■ ;
■ 1 r i ■ ;
K h a i bá o h iõ n l i i ỳ v: K h ôn i: Iih ir c , chúng la cổ thế khai báo m ỏi hiên lại nìõi ví Í i í K ỉl kì Iron u clìirơne tiìiìh M ôí bicn chỉ cổ lầm lác tiụ n ị: Ironp khoi ỉộnlì
ì\ó (íưtrr khai ỉxío ì)k) tính chấ! klu ti báo b iín tuỳ ý này mà C-t” f cung cấp U)áii tử
li m h [ílìạni V! (;;) tie x á c định l ỏ biốn nìu) dược sử tiụng khi x á y ra lình Irạiìg định
I i i i h ĩ a c h ố i i i : m ỏ l Ị ò n h i ò n t i o i ì i i m ộ t k h õ i l ộ i ì h C D M
n e w va d e l e t e : T o ú ĩ ì lừ n e w vìì ciclcic tioiiị: C + + đ UiK d ù n g dổ q uả n lý bộ
n h ớ đ ô i i g Ihay vì c á c lìàni cấp phái đ ộ n g cúa c
H a m in lin e : Sứ íiụ n g hàm iiìlin c clìt) phcp lãng lỏ c độ thực hiộn chơtíng
nliau ỉihưiie th am sõ iiuyCMì vài> chiì lìàni kháe nhau H ai h à m c ù n g lôn d ượ c pháii
hiệt ỉih ư d a n h sách k ic u các tham số
I riiyên tham sò mặc định: CV-h cho phép người viôì chư(fiig liình mò la
c á c iziá trị nuáni (tịnh c h o cá c th am SÃ của hàm Nh ít đ ó h à m c ổ \ h é đ ượ c g ọi vơi
n iõ l tlanh sách các llia n i sỏ không đáy đủ
rh u iiầ c lìic ti: 0 + cho Ịíhóp khui báo m ỏt biến tham c h iíu d ù iig đỏ Iham
^'hiõu lííi I11Ộ1 hiõn Ii>ii lai \\o\]ị: hộ nhớ. M ọi thay đổ i tròn b ic iì tham chieu la !hay
Trang 6Nlỉữniỉ m ở ỉ ộì i ì : í liíỉ t (
đoi chínlì biên điníc Iham chiốu lứi D o vẠy, có íhổ coi hiến thain c h iíu Iihư là niôt
hí (ianli k h á c củ a inôt biốn C h ú n g la c ó thổ Iruyéiì ỉhatn s o c h o h à m h an e ihani
m ilieu Đ iề u này lin tn g lự như triiyé n tham bicn cho cln n n iu Irìiìh con Ironu nuõn Iii:ữ PAvSCAL T n m u lừi gọi hàm la tlù n g ten b ic ii và tham chicu của hiôn (ló sr
ÍI uy cn.
rVÌM ìt o i / / ;
Hai hàiìì cố Ic ii trùng nhau được phân hiệt nhau bữi cái ^ì?
Cáu hỏi 1.2:
Co ỉhc trijyCMi eiá trị mặc định cho m ôt tham so đứne Irước n iô l tham sỏ
k h ô i i e c ỏ g iá Irị inạc địiìh tiling cìiiìg m ộ l h à m đ ư ợc k h ỏ n g (ví tlụ ihani sô i Ironj: hàm:
v o i d f u n c ( i n t i==0, int j))?
( V / / / l i ỏ i 1 3 :
cv> thể ị!Ìải | )h ó n g mộ t v ù n g nhứ đưítc cá p |)liá! bang loan lử ncvv thỏnu qua
hàm free đư(íc khône?
( á u ỉií ỉi 1.4:
Ncu sự g iổ iip lìhaii và khác nhau giữa con Irỏ và tham chiốu
C ủ a Ỉ ỉ ỏ i 1,5:
C ỏ i h ố t h a y ( ỉ o i n ô i ( l u n g c ù a m ỏ l ! l ì a m c h i ô i i t ì ư ơ c k h ô n i i ?
ỉ ỉ à i t ậ p t n ả u / / ;
Sử dụng loấn ỉir ^ u ấ l nhạp đổ vict thực dơn cho chưưnu ỉrìiih
Lòi ^iái:
T ro n u chưtíiiu trìn h này chúiìg la viốl nìộl thực dơn hao p ổ iiì niộl SÁ nìuc
thực lìiộn và m ụ c ciiõi c ù n g là lựa chọi ì thoái khỏi chưtíug trìiih.
Trang 7t iài Ịập Lập Ỉrinỉt ỉỉirớnỉ* f ) ố i tượnỊĩ vm r + f
# 1 ỉ ỉ c l i u ỉ e < i o s t r e a m h >
' - : o u t V
M
M e n u \ n " ;
M
í
d o
/ v/r/ ỊtHiìiị lèỉi f}ìi)n Ịiììĩli
m e n u ( ' ' ;
// ỉ à \ hnt chọti
í
' : a s e 2 :
' ■ ' a s e 3 :
)
// ỉậỊì i'!ìo (ỉi‘)i khi fìị»ưởỉ sửilụnỉỉ lựa dìoỉt 4
) w h i 1 e í i 1? * ^ 4 ì ;
H a i iap m d ỉi 1.2:
ỉim lỗ i sai cu;i tlíx u i chU(tiíe trình sau:
I n t M ;
Trang 8Nhtùì^ fti(í rọỉi\i i ỉfii ( ị ị
Iiit a [ i 00 1 ;
■ ■lĩ! ■ ■ a [ i ] ; i
t(.)i ( i - 0 ; i< n ; 1++) cout •: a Ị i ] ;
Loi
d ì i r ơ n L ’ l í ì i ì h h ị l ỏ i I r i ì i i p v ò í i u í o r i h ứ hai c i o bicn míUìịi a k h ô n e ( ỉ i r ợ e t Ì Ị i i h Iiulììa M ã n u ii clưt/c k h iii h;u) lit) n u vònt! f o r thứ nhấl L'hi ct) Uini huiil tlò n c Iro iii: Vvìiit' ỉo r tlí') inìi Ihoi D o vạy, cliUtiniz liìn h k h ò iìe Ihê hiôí ì\ó ớ tỉo iii.’ VÒIIU f u r !hứ lìiũ C’hú V là hiõn niĩu yôiì i đư<íc khai báo Irone tlònu lộiìh f o r cố vị Irí Uíơiií^ clư(íni: vtíi việc klìai háo i (V bòn Mịiiỳcú v ò n e l u r V ì vậy, I io u i: vònu f o r Ihứ Ikiì ỉa
sư clụne hiõn i ỉiliưni: chưiíiìí: trình khỏim báo lỏi
í i a ì iuỊ) m a n
I'lni lỗ i sai c l i o C ííc k h a i bát) p r i ì l o t y p c h à m clưííi đ a y ( c á c h à m n à y trone cuni: m ôl ohưcíne h ì n iì )
i ut f liĩì' • i ( int,) ; ỉ ỉ f 1 )
f1 cat func i ( i n t ) ; // (2) Iiìt fviivl ( f l o a t ) ; // Í3)
void tunci(int =0, int); // (4)
void Íuĩic2{int, int =0); // ( 5 )
voi d í un(.-:2 { i n t ) ; // (6j
void í:unv:2 (float); ỉ ỉ (7)
I ò i ị>ỉai:
I m i i e ( lịiih ni:hìa c h ổ n i: hàm, írìn h h icn (ỉịc h k h ô n u phâíi biọl c ú c hùm hời
k u ' u tlữ li ộ u irii ta cu;t h à m n i à c h i |>hủn ỉiii}! b(Vi (liMìh s á c h I h a m so c ủ a h à m D ( ì va_v hàm I và hàm 2 bị đ ị i i l i niihĩa c h ò iii: lon nhau v;i l i ì i i h b icn (lịch hát) lỗi (iiữ a liá iìì 2 vò lìà iiì 3 kh ỏ ite có lỗ i vì c liú n g khác Iiiiau hới kiCni ciữ liệ ii của Ihani só ' ĩ r o n i : l i à m 4 la thl sử d ụ i i g sai c á c i ì t i u y ổ n g i á ỉ r ị mạc đ ị n l ì c h o t h a m sô K h ó n e hao uiờ iniyCMì eiá III mạc dinh chi) niỏt Iham số tiin V Iiìòt llì.un sô khônu (lirưc
íi u y c n e i á !| ị m ạ c t li iỉ lì
'IVoni: cáclì d ịiih nghĩa hai hàm 5 và (^ có sự nhạp Iihani: K lìi la eoi hàiìì riiiic 2 với tham sô ịi\ m ỏ i số i m u y c i ì thì l i ì i i h hiO*n tlịc h k h ô iìu hicí là SC eoi hàiìì 5 hay là lìànì 6 bơi vì ca hai h^m này đều đưttc T ro im Irưừng lìítp Iiày Irìn h hìon
ílirh c ũ u e t h ỏ iì e biUì lỗ i
Trang 9Hat ị ( ỉ ị > ị iỉỊì Ỉriỉ ih ỉỉíHỉỉỉỊ^ f)ói íượ/ỉi^ \'ứi r ' f ^
H a i ỉa p tìtaìỉ Ị 4 :
('ho hỉôl k c \ t|(ui chụy Liiit chư(íi»i: Iiìiih Siiu:
u ] ỉ ì c l u d ^ ■■ iost r e a m h '
void í un-■ í int i, iiit j = 0}
í -::out ■ "so nguyen: " << i <•" " " ■: < j %< endl ;
void fuĩì.-( float i = 0, float j = Oỉ
) ':out "so thUí*: " << i " " << ^ : eiìdl ;
vcjid mai ]) í )
í int i-i, j”2;
f l o a t í: = ỉ , 5 , g - 2 5 ; { ) ;
fun-" ( i ) ;
f un<- í f ) ; funcii, j);
fun<' i t , gì ;
LÒI ịiiãi:
K cl iịiìiì chạy ch iíirn e írìiih
so thuc: 0 0
so Iiguyen: I 0
so thuc 1.5 0
so nguyên: 1 2
so thuc i 5 2.5
H a i ía p tìHiti 1.5:
Pim lỗ i sai (Iv^i cú pháp và bỏ như) cho chưtriie liìn li Siiu;
11 it & 11-' 11 ()
(
i n t a - 5 ;
r e t u r !ì a ;
Trang 10in t & r e t 2 í i n t a ì
í
a +■ +;
r e t u t ri a : }
in t & r e f 3 ( i n t & a)
í
a + + ; return a ;
i n t ci = ‘>;
i n t & r l ;
i n t & i2 = 2 2 ;
i n t & r ỉ - a ;
i n t & r 4 = r e f 3 ( 5 ì ;
i n t & r 'Ì) = r e f 3 (a } ;
liri Ịĩiũi:
T r o iiịi các lià n i cỏ kct qua Irả VC là m ô! thum chieu, ch ú iìi: la luôn |ihái chú
ý runi: biốn được liii Uii có giá írị là tham c h ií ii k h ỏ iiị: bị xoíì khói bô nhớ clìưiíim Irình khi kốl ihtk- Ihực hiộn hàm U o vạy hai hàm r c f l và rc l7 là sai hĩú vì n6 Iiủ
VC iham c lìic u tiíi hiòiì a mà a lại là b ií ii cục bô Im n j: ỉ v f l và là llìam sd rcf2 chí diAyc tạo ra là iìi thTti Ircn stack khi go i hàm và xoã kh ó i slack khi kòi llìú c hàm H àni vcH kh ô n ^ cố lồ i vì a là mộ! !ham chiốu lới n iộ l h ic ii khôni: luini lix)iiị! lìàm
Tix>ne khai báo các tham ch iố ii phai đưtíc ean với in ỏ l bicn nào đó tio iip bỏ Iilìứ U o vậy cấc khai hấo l i , |2 là sai Lời gi)i rcr3(5) cũ iie là sai bơi vì íhanì sô clìi) hàm phai là thaiìì chiếu dốn m ột bicn, tn ìiig kh i đố la lại Iruycn vào niộl lìang sô
/ỉờ i /ậ/7 //ui ỉ/ 1.6:
C'ho hiCM kòi qiiá Ihực lìiộ iì (.'hương tn n h sau
l u t & f o o { i n t i n t bì í
b + - a ;
ií (b'5) a++;
r e t u r n a ; )
v o id m a in {) í
i n t i= 2 , j= 4 ;
i n t k = f o o ( i , j } ;
10
Trang 11H a i ỉ ậ p Ị j } p ỉ r i ỉ ỉ Ỉ Ị l l K Ớ n ^ i ) ô i ĩỊùtìis* v ớ i ( ' \ f
ki +;
cout ■ ■ i " " < ‘ j ’’ " << k << endl;
int í I f oo ( i , j ) ;
1 +;
cout ■ i << " " << i <^< " " << 1 << endl;
L ù i ^ ia i:
3 4 4
5 4 5
'lY diìi: c h ifiiiii! liin h irèn cán chu ý hai đ ia ii Thứ Mlìấi là la liuyCMi vìu> cho hám Ihain chicu cưa h iín i chứ kh ò n i: Ịìhái \h biên i D o vậy, m ọi thay đổi của ilìiiin so n ìi\ Iro iìe hàni lù thay đ ổ i tơi hicn i tlưưc Iham chiêu ((Vi Tưitng lự Iihư vậy tlỏ i V(íị Iham chiêu I Tham chiôu I cỉược xác lập bủiìg Ihani chiếu !rả la của lìà iiì clìín lì là ih a n i chiêu lới biốn i D tì vậy m oi ihay đổi của I chíiìh là thay đo i i
Hài ííỊp ĩĩtãu 1.7:
V ic l m ôl hàin svvaỊ) tlìiiit: iìổ hoáii chuyên iziấ trị hai so nuuyCMì Sau đố vicl clìươne trình n liặ ịi và sap xcp n iỏ l m aiỉíi so lìgiiyên
I.ò i ^ ia i:
#inrlude < i o s t ream.h>
void swdp(int int &b)
/
iiit tmp - a;
rì = b);
b = trnp;
ì
void m a i n {)
í
/ ỉ i l ì í i p ( ỉ ữ h r n
Iiìt Ii;
cout ' ■ "n = cin >> n;
// 1 ì ' ịị } p h i ỉ Ị n ĩ i ớ i Ỉiỉ) i ì k i t ì Ị ị
toi íint 1=0; i<n; i++)
ị
cout "a[" << i << "]=
1» f
11