KỸ THUẬT LẬP TR ÌNH - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Baigiang.pdf · 2. Tr ần Đức Huy ên, Phương pháp gi ải các b ài toán trong tin h ọc, Nh à

Embed Size (px)

Citation preview

  • HC VIN K THUT QUN S KHOA CNG NGH THNG TIN

    Bi ging

    K THUT LP TRNH

    Bin son H i Dng

    Nguyn Mu Uyn

    H Ni - 1/2013

  • 2

    MC LC Bi 1 - TNG QUAN...................................................................................................................................................4

    I. Gii thiu...............................................................................................................................................................4 II. Bi ton v vic gii bi ton trn my tnh .........................................................................................................5 III. Cng c lp trnh...............................................................................................................................................10 IV. Tm tt ni dung bi hc ..................................................................................................................................13 V. Bi tp ................................................................................................................................................................14

    Bi 2 - NGN NG LP TRNH C/C++................................................................................................................15 I. Gii thiu.............................................................................................................................................................15 II. Mt s khi nim c bn ....................................................................................................................................16 III. Cu trc mt chng trnh n gin .................................................................................................................25 IV. Nhp/Xut d liu.............................................................................................................................................27 V. Tm tt ni dung bi hc ...................................................................................................................................32 VI. Bi tp...............................................................................................................................................................33

    Bi 3 - Bi thc hnh: MI TRNG LP TRNH V CC LNH VO/RA ...............................................34 I. Lm quen mi trng Dev-C++ ..........................................................................................................................34 II. Bi tp lm theo yu cu ....................................................................................................................................34 III. Bi tp t lm....................................................................................................................................................37

    Bi 4 - IU KHIN CHN....................................................................................................................................40 I. Khi lnh .............................................................................................................................................................40 II. Lnh IF ...............................................................................................................................................................41 III. Lnh SWITCH..................................................................................................................................................44 IV. Tm tt..............................................................................................................................................................48 V. Bi tp ................................................................................................................................................................48

    Bi 5 - Bi thc hnh: IU KHIN CHN..........................................................................................................49 I. Bi tp lm theo yu cu......................................................................................................................................49 II. Bi tp t lm.....................................................................................................................................................52

    Bi 6 - IU KHIN LP........................................................................................................................................53 I. Lnh FOR ............................................................................................................................................................53 II. Lnh WHILE......................................................................................................................................................55 III. Lnh DO .. WHILE...........................................................................................................................................57 IV. Lnh break v continue.....................................................................................................................................60 III. Tm tt ni dung bi hc ..................................................................................................................................60 IV. Bi tp...............................................................................................................................................................60

    Bi 7 - Bi thc hnh: IU KHIN LP..............................................................................................................61 I. Bi tp lm theo yu cu......................................................................................................................................61 II. Bi tp t lm.....................................................................................................................................................63

    Bi 8 - MNG V CON TR ..................................................................................................................................65 I. Mng....................................................................................................................................................................65 II. Con tr................................................................................................................................................................73 IV. Tm tt ni dung bi hc ..................................................................................................................................83 V. Bi tp ................................................................................................................................................................83

    Bi 9 - Bi thc hnh: MNG V CON TR........................................................................................................84 I. Bi tp lm theo yu cu......................................................................................................................................84 II. Bi tp t lm.....................................................................................................................................................87

    Bi 10 - XU K T.................................................................................................................................................89 I. Khai bo...............................................................................................................................................................89 II. Nhp xut chui .................................................................................................................................................90 III. Mt s hm x l chui ....................................................................................................................................91 V. Tm tt ni dung bi hc ...................................................................................................................................95 VI. Bi tp...............................................................................................................................................................95

    Bi 11 - Bi thc hnh: XU K T ......................................................................................................................96 I. Bi tp lm theo yu cu......................................................................................................................................96 II. Bi tp t lm.....................................................................................................................................................98

  • 3

    Bi 12 - HM V CU TRC CHNG TRNH..............................................................................................100 I. T chc chng trnh ........................................................................................................................................100 II. Hm do ngi dng nh ngha ........................................................................................................................104 III. Con tr hm.....................................................................................................................................................122 IV. qui .............................................................................................................................................................125 V. Tm tt ni dung bi hc .................................................................................................................................129 VI. Bi tp.............................................................................................................................................................130

    Bi 13 - Bi thc hnh: HM V CU TRC CHNG TRNH ...................................................................131 I. Bi tp lm theo yu cu....................................................................................................................................131 II. Bi tp t lm...................................................................................................................................................133

    Bi 14 - CU TRC D LIU DO NGI DNG T NH NGHA............................................................135 I. Cu trc d liu do ngi dng t nh ngha ...................................................................................................135 II. Ngn xp ..........................................................................................................................................................145 III. Hng i..........................................................................................................................................................151 IV. Tm tt ni dung bi hc ................................................................................................................................154 V. Bi tp ..............................................................................................................................................................154

    Bi 15 - Bi thc hnh: CU TRC D LIU DO NGI DNG T NH NGHA .................................155 I. Bi tp lm theo yu cu....................................................................................................................................155 II. Bi tp t lm...................................................................................................................................................160

    Bi 16 - LM VIC VI FILE..............................................................................................................................162 I. Mt s khi nim ...............................................................................................................................................162 II. Cc thao tc trn tp tin....................................................................................................................................163 III. Truy cp tp tin vn bn..................................................................................................................................165 IV. Truy cp tp tin nh phn ................................................................................................................................168 V. Tm tt ni dung bi hc .................................................................................................................................172 VI. Bi tp.............................................................................................................................................................172

    Bi 17 - Bi thc hnh LM VIC VI FILE.....................................................................................................173 I. Bi tp lm theo yu cu....................................................................................................................................173 II. Bi tp t lm...................................................................................................................................................176

    Bi 18 - MT S VN M RNG ................................................................................................................177 I. Cy, Hm bm...................................................................................................................................................177 II. Khi ng ho .............................................................................................................................................181 III. Cc hm ho...............................................................................................................................................184 IV. X l vn bn trn mn hnh ho...............................................................................................................193 V. Hiu ng hot hnh ha...............................................................................................................................195 VI. Tm tt ni dung bi hc ................................................................................................................................197 VII. Bi tp ...........................................................................................................................................................197

    Bi 19 - Bi thc hnh: MT S VN M RNG......................................................................................198 I. Bi tp lm theo yu cu....................................................................................................................................198 II. Bi tp t lm...................................................................................................................................................198

    Bi 20 - N TP ......................................................................................................................................................199 I. Nhng vn l thuyt......................................................................................................................................199 II. Cc bi thc hnh.............................................................................................................................................200

  • 4

    Bi 1 - TNG QUAN

    Ni dung bi hc I. Gii thiu II. Bi ton v vic gii bi ton trn my tnh III. Cng c lp trnh IV. Bi tp

    I. Gii thiu

    1. Mc ch, Yu cu Mc ch ca mn hc l cung cp cho sinh vin nhng kin thc c bn v k thut lp trnh ni chung v k nng s dng cng c lp trnh C/C++ trong vic gii quyt bi ton bng chng trnh phn mm trn my tnh. Kt thc mn hc sinh vin c trang b nhng kin thc v:

    - Cch thc gii quyt mt bi ton trn my tnh; - Cng c, kim thc v vic thut ton ha bi ton; - Ngn ng lp trnh C/C++; - Mt s cu trc d liu v gii thut in hnh.

    Yu cu i vi sinh vin - C hiu bit c bn v cu trc my tnh; - C hiu bit c bn v h iu hnh; - Bit s dng cc phn mm h thng trong vic qun l ti nguyn, sao chp/copy d

    liu; - Bit s dng cc phn mn ng dng nh cng c son tho vn bn, truy cp

    internet, web. - Nghe ging v lm bi tp.

    2. Ni dung mn hc Xem chi tit mc lc.

    3. Ti liu hc tp v tham kho 1. H i Dng, Nguyn Mu Uyn, Tp Bi ging Lp trnh co bn, HVKTQS 2010; 2. Trn c Huyn, Phng php gii cc bi ton trong tin hc, Nh xut bn gio dc

    1997; 3. o Thanh Tnh, H i Dng, Tin hc i cng, Hc vin KTQS, 2003; 4. Xun Li, Cu trc d liu v gii thut, NXB Gio dc, 1997; 5. Robert Sedgewick, Algorithns in C++, Addison-Wesley 1992; 6. Niklaus Wirth Bn dch ca Nguyn Quc Cng, Cu trc d liu + Gii thut =

    Chng trnh, , NXB KHKT, 2001; 7. Gio trnh Tin Hc i Cng A, Nguyn Vn Linh, Khoa Cng Ngh Thng Tin, i

    hc Cn Th, 1991. 8. Gio trnh l thuyt v bi tp ngn ng C; Nguyn nh T, Hong c Hi, Nh xut

    bn Gio dc, 1999. 9. C - Tham kho ton din, Nguyn Cn, Nh xut bn ng Nai, 1996. 10. Gip t hc Lp Trnh vi ngn ng C, V Vn Vin, Nh xut bn ng Nai, 2002. 11. The C Programming Language, Brain W. Kernighan & Dennis Ritchie, Prentice Hall

    Publisher, 1988.

  • 5

    II. Bi ton v vic gii bi ton trn my tnh

    1. Phng php tng qut gii mt bi ton trn my tnh gii mt bi ton trn my tnh cn thc hin cc bc sau:

    1. Xc nh bi ton; 2. Xc nh cu trc d liu m t bi ton; 3. Xy dng thut ton; 4. Son tho vn bn chng trnh, kim tra v hon thin chng trnh.

    2. Xc nh bi ton Khi qut v bi ton Trong qu trnh tn ti v pht trin, mi c nhn lun phi gii quyt nhiu bi ton t ra trong cuc sng. C th ni cuc sng l mt chui cc bi ton m ta phi i u gii quyt. Theo nhiu nh nghin cu th mi bi ton u c th din t theo mt s chung nh sau:

    A B (*) trong :

    - A l gi thit, iu kin ban u, thng tin cho, bit; - B l kt lun, l mc tiu cn t hoc ci phi tm, phi lm ra khi kt thc bi ton; l suy lun, gii php cn xc nh hoc chui cc thao tc cn thc hin c c kt qu B t ci c A.

    Xc nh bi ton Theo s trn th vic xc nh bi ton c ngha l xc nh A, B v nu c th th xc nh lun c cc bc thc hin i c t A n B.

    Bi ton trn my tnh Tng t nh (*), v

    - A gi l u vo (INPUT); - B gi l u ra (OUTPUT); l CHNG TRNH MY TNH cho kt qu B vi u vo A.

    Kh khn Vic xc nh mt bi ton trn my tnh thng gp kh khn sau:

    - Thng tin v A, B thng khng r rng v khng y ; - Thng bo v iu kin t ra cho cch gii (=>) thng khng c nu ra mt cch

    minh bch; V d 1: Hy vit chng trnh cho php gii phng trnh bc 2.

    A =???, B=??? V d 2: Gi s ngi A c mt s tin X em gi tit kin, li xut thng l L% hi rng sau T thng th A c bao nhiu tin bit rng c 3 thng th tin li c cng vo gc. V d 3: Bi ton 8 hu - Hy tm cch t 8 con hu trn mt bn c vua sao cho khng c qun hu no c th n qun hu khc. V d 4: Cho dy s a1, a2, ..., an hy sp xp dy trn theo th t gim dn. V d 5: Hy xy dng h thng qun l h s v kt qu hc tp ca sinh vin.

    ... A =???, B=???

    Nhn xt quan trng Vic xc nh bi ton l rt rt quan trng, n nh hng ti cch thc v cht lng ca vic gii quyt bi ton;

  • 6

    - Mt bi ton cho d c din t chi tit, r rng vn nn gi nh l phn ln thng tin v A, B l tim n trong u ngi gii. Thng tin v A hoc B thng ch l biu tng gi nh n cc thng tin tim n.

    - Bc u tin xc nh mt bi ton l phi pht biu li bi ton mt cch chnh xc theo ngn ng ca ring mnh v chnh l cch tip cn bi ton, hiu bi ton.

    - Bc tip l tm hiu thng tin Input A, Output B v cc mi lin h gia chng; - Nn xt mt vi trng hp c th thng qua hiu c c bi ton , thy r c

    cc thao tc phi lm. Thc t cho thy c nhng bi ton trong tin hc ch c th m t c thng qua cc v d (nh: ).

    3. Cu trc d liu v Gii thut

    Cu trc d liu - Trong khoa hc my tnh, cu trc d liu l mt cch t chc lu tr v truy cp d

    liu trong my tnh sao cho n c th c s dng mt cch hiu qu (v ph thuc c vo cng c lp trnh).

    - V d (trong C): Mng (Array), Con tr (Pointer), Xu k t (String), File, Stack, Queue - Thng thng, mt cu trc d liu c chn cn thn s cho php thc hin thut ton

    hiu qu hn. - Vic chn cu trc d liu thng bt u t chn mt cu trc d liu tru tng. Mt

    cu trc d liu c thit k tt cho php thc hin nhiu php ton, s dng cng t ti nguyn, thi gian x l v khng gian b nh cng tt.

    - Cc cu trc d liu c trin khai bng cch s dng cc kiu d liu, cc tham chiu v cc php ton trn c cung cp bi mt ngn ng lp trnh.

    Thut ton - Thut ton , cn gi l gii thut, l mt tp hp hu hn ca cc ch th hay phng

    cch c nh ngha r rng cho vic hon tt mt s s vic t mt trng thi ban u cho trc; khi cc ch th ny c p dng trit th s dn n kt qu sau cng nh d on.

    - Thut ton l mt b cc qui tc hay qui trnh c th nhm gii quyt mt vn trong mt s bc hu hn, hoc nhm cung cp mt kt qu t mt tp hp ca cc d kin a vo.

    V d 1: Gi s c hai bnh A v B ng hai loi cht lng khc nhau, A cha dung dch Da, B cha dung dch Db. Gii thut i dung dch Da vo bnh B v Db vo A l:

    Yu cu phi c thm mt bnh th ba gi l bnh C. Bc 1: dung dch Db vo bnh C; Bc 2: dung dch Da vo bnh B; Bc 3: dung dch Db vo bnh A

    V d 2: Mt trong nhng gii thut tm c chung ln nht ca hai s a v b l: Bc 1: Nhp vo hai s a v b. Bc 2: So snh 2 s a,b chn s nh nht gn cho UCLN. Bc 3: Nu hai s a v b chia ht cho UCLN th Thc hin bc 5. Bc 4: Gim UCLN mt n v v quay li bc 3 Bc 5: In UCLN - Kt thc.

    Mt thut ton c cc tnh cht sau: - Tnh chnh xc: m bo kt qu tnh ton hay cc thao tc m my tnh thc hin

    c l chnh xc. - Tnh r rng: Thut ton phi c th hin bng cc cu lnh minh bch; cc cu lnh

    c sp xp theo th t nht nh.

  • 7

    - Tnh khch quan: Mt thut ton d c vit bi nhiu ngi trn nhiu my tnh vn phi cho kt qu nh nhau.

    - Tnh ph dng: Thut ton khng ch p dng cho mt bi ton nht nh m c th p dng cho mt lp cc bi ton c u vo tng t nhau.

    - Tnh kt thc: Thut ton phi gm mt s hu hn cc bc tnh ton.

    Trnh t thc hin cc bc ca thut ton Gii thut c thit k theo ba cu trc suy lun c bn sau y:

    1. Tun t (Sequential): Cc cng vic c thc hin mt cch tun t, cng vic ny ni tip cng vic kia.

    2. Cu trc la chn (Selection) : La chn mt cng vic thc hin cn c vo mt iu kin no . C mt s dng nh sau:

    - Cu trc 1: Nu < iu kin> (ng) th thc hin - Cu trc 2: Nu < iu kin> (ng) th thc hin , ngc li (iu

    kin sai) th thc hin - Cu trc 3: Trng hp < i> thc hin

    3. Cu trc lp (Repeating): Thc hin lp li mt cng vic khng hoc nhiu ln cn c vo mt iu kin no . C hai dng nh sau:

    - Lp xc nh: l loi lp m khi vit chng trnh, ngi lp trnh xc nh c cng vic s lp bao nhiu ln.

    - Lp khng xc nh: l loi lp m khi vit chng trnh ngi lp trnh cha xc nh c cng vic s lp bao nhiu ln. S ln lp s c xc nh khi chng trnh thc thi.

    Biu din thut gii Ngn ng t nhin: Ngn ng t nhin l ngn ng ca chng ta ang s dng, chng ta c th s dng ngn ng t nhin m t gii thut ging nh cc v d trn. V d: Ta c gii thut gii phng trnh bc nht dng 0 bax nh sau:

    Bc 1: Nhn gi tr ca cc tham s a, b Bc 2: Xt gi tr ca a xem c bng 0 hay khng? Nu a=0 th lm bc 3, nu a khc khng th lm bc 4. Bc 3: (a bng 0) Nu b bng 0 th ta kt lun phng trnh v s nghim, nu b khc 0 th ta kt lun phng trnh v nghim. Bc 4: ( a khc 0) Ta kt lun phng trnh c nghim x=-b/a

  • 8

    Lu thut ton: Ngn ng s (lu ) l mt ngn ng c bit dng m t gii thut bng cc s hnh khi. Mi khi qui nh mt hnh ng nh m t hnh trn. V d: So snh 2 s.

    Gi m: (ting Anh: Pseudocode, xut pht t ch pseudo v code) l mt bn m t gii thut ngn gn v khng chnh thc, trong s dng nhng quy c c cu trc ca mt s ngn ng lp trnh (thng l Pascal) nhng thng b i nhng chi tit khng cn thit gip hiu r gii thut hn. V d: Thut gii phng trnh bc 2

    Vo: a,b,c Ra: Kt lun v nghim BEGIN Delta: = b*b 4*a*c; If Delta=0 Then

    Phng trnh c nghim kp x=-b/(2*a); else

    begin if Delta

  • 9

    Yu cu: Tnh tng n s S=a1+ a

    2+a

    3+......+a

    n .

    Chi tit gii thut c m t bng ngn ng t nhin nh sau: - Bc 1: Nhp s cc s hng n. - Bc 2: Cho S=0 (lu tr s 0 trong S) - Bc 3: Cho i=1 (lu tr s 1 trong i) - Bc 4: Kim tra nu i

  • 10

    - Bc 4: Nu j a

    j th hon i a

    i v a

    j cho nhau (nu khng th thi).

    - Bc 6: Tng j ln mt n v v quay li bc 4 - Bc 7: Tng i ln mt n v v quay li bc 3 - Bc 8: In dy s a

    1, a

    2,..., a

    n - Kt thc.

    Gii thut + Cu trc d liu = Chng trnh

    Algorithms + Data Structures = Programs

    Niklaus Emil Wirth In 1975 he wrote the book "Algorithms + Data Structures = Programs", which gained wide recognition and is still useful today. Biography Wirth was born in Winterthur, Switzerland, in 1934. In 1959 he earned a degree in Electronics Engineering from the Swiss Federal Institute of Technology Zrich (ETH Zrich). In 1960 he earned an M.Sc. from

    Universit Laval, Canada. Then in 1963 he was awarded a Ph.D.in EECS from the University of California, Berkeley, supervised by the computer designer pioneer Harry Huskey. From 1963 to 1967 he served as assistant professor of Computer Science at Stanford University and again at the University of Zurich. Then in 1968 he became Professor of Informatics at ETH Zrich, taking two one-year sabbaticals at Xerox PARC in California (19761977 and 19841985). Wirth retired in 1999. Programming languages Wirth was the chief designer of the programming languages Euler, Algol W, Pascal, Modula, Modula-2, Oberon, Oberon-2, and Oberon-07 . He was also a major part of the design and implementation team for the Lilith and Oberon operating systems, and for the Lola digital hardware design and simulation system. He received the ACM Turing Award for the development of these languages and in 1994 he was inducted as a Fellow of the ACM. He designed the simple programming language PL/0 to illustrate compiler design. It has formed the basis for many university compiler design classes.

    4. Chng trnh nh ngha

    - Chng trnh my tnh: l mt tp hp nhng cu lnh c vit bng mt ngn ng lp trnh theo mt trt t xc nh nhm t ng thc hin mt s nhim v hoc chc nng hoc gii quyt mt bi ton no .

    - L mt biu hin c th ca mt gii thut trn mt ngn ng lp trnh no cng vi nhng m t v cu trc d liu m t u vo, u ra ca bi ton cn gii quyt.

    V d 1: Chng trnh gii phng trnh bc 2 bng Pascal V d 2: Chng trnh gii phng trnh bc 2 bng C

    To ra chng trnh my tnh bng cch no???

    III. Cng c lp trnh

    1. Ngn ng lp trnh Khi nim

  • 11

    - Ngn ng lp trnh l mt ngn ng dng vit chng trnh cho my tnh. Ta c th chia ngn ng lp trnh thnh cc loi sau: ngn ng my, hp ng v ngn ng cp cao.

    - Ngn ng my (machine language): L cc ch th di dng nh phn, can thip trc tip vo trong cc mch in t. Chng trnh c vit bng ngn ng my th c th c thc hin ngay khng cn qua bc trung gian no. Tuy nhin chng trnh vit bng ngn ng my d sai st, cng knh v kh c, kh hiu v ton nhng con s 0 v 1.

    - Hp ng (assembly language): Bao gm tn cc cu lnh v quy tc vit cc cu lnh . Tn cc cu lnh bao gm hai phn: phn m lnh (vit ta ting Anh) ch php ton cn thc hin v a ch cha ton hng ca php ton . V d:

    INPUT a ; Nhp gi tr cho a t bn phm LOAD a ; c gi tr a vo thanh ghi tng A PRINT a; Hin th gi tr ca a ra mn hnh. INPUT b ADD b; Cng gi tr ca thanh ghi tng A vi gi tr b Trong cc lnh trn th INPUT, LOAD, PRINT, ADD l cc m lnh cn a, b l a ch. my thc hin c mt chng trnh vit bng hp ng th chng trnh phi c dch sang ngn ng my. Cng c thc hin vic dch c gi l Assembler.

    - Ngn ng cp cao (High level language): Ra i v pht trin nhm phn nh cch thc ngi lp trnh ngh v lm. Rt gn vi ngn ng con ngi (Anh ng) nhng chnh xc nh ngn ng ton hc. Cng vi s pht trin ca cc th h my tnh, ngn ng lp trnh cp cao cng c pht trin rt a dng v phong ph, vic lp trnh cho my tnh v th m cng c nhiu khuynh hng khc nhau: lp trnh cu trc, lp trnh hng i tng, lp trnh logic, lp trnh hm... Mt chng trnh vit bng ngn ng cp cao c gi l chng trnh ngun (source programs). my tnh "hiu" v thc hin c cc lnh trong chng trnh ngun th phi c mt chng trnh dch dch chung trnh ngun (vit bng ngn ng cp cao) thnh dng chng trnh c kh nng thc thi.

    Chng trnh dch - Nh trn trnh by, mun chuyn t chng trnh ngun sang chng trnh ch phi

    c chng trnh dch. Thng thng mi mt ngn ng cp cao u c mt chng trnh dch ring nhng chung quy li th c hai cch dch: thng dch v bin dch.

    - Thng dch (interpreter): L cch dch tng lnh mt, dch ti u thc hin ti . Chng hn ngn ng LISP s dng trnh thng dch.

    - Bin dch (compiler): Dch ton b chng trnh ngun thnh chng trnh ch ri sau mi thc hin. Cc ngn ng s dng trnh bin dch nh Pascal, C...

    - Gia thng dch v bin dch c khc nhau ch: Do thng dch l va dch va thc thi chng trnh cn bin dch l dch xong ton b chng trnh ri mi thc thi nn chng trnh vit bng ngn ng bin dch thc hin nhanh hn chng trnh vit bng ngn ng thng dch.

    - Mt s ngn ng s dng kt hp gia thng dch v bin dch chng hn nh Java. Chng trnh ngun ca Java c bin dch to thnh mt chng trnh i tng (mt dng m trung gian) v khi thc hin th tng lnh trong chng trnh i tng c thng dch thnh m my.

    2. Cng c lp trnh - Trc nhng nm 1990 ngi ta cho rng ngn ng lp trnh quyt nh kt qu lp trnh.

    Chng hn, trong mt tnh hung c th no , chng trnh vit bng C++ th tt hn Pascal, vit bng Pascal th tt hn Fortran Khi cc cng c lp trnh cn th s v cc yu cu phn mm cha cao th nhn nh ny l kh chnh xc.

  • 12

    - Sau ngi ta cho rng cng ngh lp trnh mi nh hng ln nht n sn phm cui cng, s thng tr trong thp k 90 ca lp trnh hng i tng v RAD (vit tt ca Rapid Application Development ngha l Cng c pht trin ng dng nhanh, thng gi l lp trnh trc quan hay Visual Programming) cho thy t duy ca ngi lp trnh b nh hng bi nn tng pht trin phn mm.

    - Khng ai ph phn Delphi - phin bn pht trin t ngn ng Pascal l km hn Java hay Visual C++. Tuy mi c 1/20 thi gian ca th k 21 tri qua nhng t u th k n nay Cng ngh thng tin c nhng bc pht trin mnh m trong c Cng ngh phn mm. Nhu cu s dng phn mm v yu cu i vi phn mm t nhin tng vt khin nhiu nh pht trin phn mm phi xem li cch lm vic ca mnh. chnh l c s cho s pht trin rng ri trn ton th gii ca ngnh Cng nghip phn mm hin nay.

    - Ngi ta khng ch quan tm n cng ngh lp trnh m cn quan tm n quy trnh pht trin phn mm.

    - Cc cng ty bt u chun ha v a ra quy trnh cng ngh phn mm ca mnh - vic la chn b cng c lp trnh c vai tr rt quan trng. Cc b cng c lp trnh hin nay c xu hng thng nht v tng tc vi nhau cht ch. tng ny tng xut hin trong thp k trc, tiu biu nh CORBA ca Sun hay Delphi - C++ Builder Project Union ca Borland, tuy nhin khi chng cha c a chung.

    - Khi Visual Studio.NET ca Microsoft ra i nm 2002, ngi ta nhn thy rng cc cng c lp trnh nn i vi nhau thnh b. n thi im hin nay gii php v cng c lp trnh ca cc nh pht trin lun c nhc n nh b cng c.

    - Hin nay c rt nhiu ngn ng lp trnh (NNLT) v rt nhiu cng c lp trnh (CCLT). Mt CCLT c th gn lin vi mt NNLT hoc khng - y l iu m mt s t ngi khng c kinh nghim khng h bit. Ta c th phn loi:

    o Theo NNLT: Dng C c Visual C++, C++ Builder Dng Pascal c Borland Pascal, Delphi

    o Theo phm vi s dng: Dng lp trnh h thng c Microsoft Assembly, Borland C Dng lp trnh trc quan c Visual Basic, Jbuilder Dng lp trnh mng c Java, ASP, PHP

    o Theo phong cch lp trnh: Dng c in c Pascal, Fortran Dng hng i tng c C++, SmallTalk, Java

    - Cng c thng dng: o Microsoft Visual Studio 2005, Microsoft Visual Studio 2008: C++, C##,

    VisualBasic, ASPX... o Java; o PHP; o Pascal, Turbo C, Dev - C++

    - Chc nng ca cng c lp trnh: 1. Biu din chng trnh bng mt ngn ng lp trnh no 2. Giao din tch hp (IDE - Itergrated Developments Environment) cho php son

    tho vn bn chng trnh, kim li, th nghim; 3. Bin dch thnh chng trnh c lp trn my tnh.

    3. Cng c lp trnh Dev-C++ - Dev-C++ l mt cng c lp trnh vi giao din tch hp cho php lm vic trn

    Windows, cho php lp trnh bng C/C++;

  • 13

    - D n pht trin Dev-C++ c lu tr trn SourceForge. Dev-C++ nguyn c pht trin bi mt lp trnh vin c tn l Colin Laplace v ch chy trn h iu hnh Microsoft Windows.

    - Bloodshed Dev-C++ l mt Mi trng Pht trin Tch hp (IDE) c h tr y tnh nng cho ngn ng lp trnh C/C++. N s dng trnh MinGW ca GCC (B trnh dch GNU) lm trnh bin dch. Dev-C++ cng c th c dng kt hp vi Cygwin hay bt k trnh dch nn tng GCC no khc.

    - Chng trnh cho ngi dng c cm nhn hi ging vi hnh thc ca chng trnh Microsoft Visual Studio vn c s dng rng ri hn. Dev-C++ c mt c im ph l n s dung DevPaks, l mt phn gm cc gi m rng so vi mi trng tiu chun, bao gm cc th vin, mu, v cc tin ch c a thm vo. DevPaks thng c, nhng khng nht nh, tin ch GUI (giao din ngi dng ha), bao gm cc cng c ph bin nh GTK+, wxWidgets, v FLTK. C nhng DevPaks c cha cc th vin vi thm ch nhiu hm chc nng cao hn.

    - Dev-C++ ni chung l mt chng trnh ch chy trn Windows. Tuy nhin cng c mt phin bn cho Linux, nhng vn trong giai on alpha v cha c cp nht trong vng hn 6 nm qua.

    Mt s giao din Giao din chnh

    IV. Tm tt ni dung bi hc I. Gii thiu

    1. Mc ch, Yu cu 2. Ni dung mn hc 3. Ti liu hc tp v tham kho 4. Hnh thc nh gi kt qu mn hc

  • 14

    5. Tng quan v my tnh II. Bi ton v vic gii bi ton trn my tnh

    1. Xc nh bi ton 2. Cu trc d liu v Gii thut 3. Chng trnh

    III. Cng c lp trnh 1. Ngn ng lp trnh 2. Cng c lp trnh 3. Cng c lp trnh Dev-C++

    V. Bi tp 1. Biu din thut ton gii cc bi ton sau bng s khi v gi m:

    a. Gii phng trnh bc 2; b. Gii h phng trnh bc nht; c. Tnh s ngy ca mt thng mt nm no ; d. Thut ton tm c s chung ln nht;

    2. Ci t, lm quen vi giao din Dev-C++ 3. Tm hiu nhng bi ton thc t, m t thut ton gii quyt vn .

  • 15

    Bi 2 - NGN NG LP TRNH C/C++

    Ni dung bi hc I. Gii thiu II. Mt s khi nim c bn III. Cu trc chng trnh n gin trong C IV. Nhp/Xut d liu V. Bi tp

    I. Gii thiu - C l ngn ng lp trnh cp cao, c s dng rt ph bin lp trnh h thng cng vi

    Assembler v pht trin cc ng dng. - Vo nhng nm cui thp k 60 u thp k 70 ca th k XX, Dennish Ritchie (lm

    vic ti phng th nghim Bell) pht trin ngn ng lp trnh C da trn ngn ng BCPL (do Martin Richards a ra vo nm 1967) v ngn ng B (do Ken Thompson pht trin t ngn ng BCPL vo nm 1970 khi vit h iu hnh UNIX u tin trn my PDP-7) v c ci t ln u tin trn h iu hnh UNIX ca my DEC PDP-11.

    - Nm 1978, Dennish Ritchie v B.W Kernighan cho xut bn quyn Ngn ng lp trnh C v c ph bin rng ri n nay.

    - Lc ban u, C c thit k nhm lp trnh trong mi trng ca h iu hnh Unix nhm mc ch h tr cho cc cng vic lp trnh phc tp. Nhng v sau, vi nhng nhu cu pht trin ngy mt tng ca cng vic lp trnh, C vt qua khun kh ca phng th nghim Bell v nhanh chng hi nhp vo th gii lp trnh ri cc cng ty lp trnh s dng mt cch rng ri. Sau , cc cng ty sn xut phn mm ln lt a ra cc phin bn h tr cho vic lp trnh bng ngn ng C v chun ANSI C cng c khai sinh t .

    - Ngn ng lp trnh C l mt ngn ng lp trnh h thng rt mnh v rt mm do, c mt th vin gm rt nhiu cc hm (function) c to sn. Ngi lp trnh c th tn dng cc hm ny gii quyt cc bi ton m khng cn phi to mi. Hn th na, ngn ng C h tr rt nhiu php ton nn ph hp cho vic gii quyt cc bi ton k thut c nhiu cng thc phc tp. Ngoi ra, C cng cho php ngi lp trnh t nh ngha thm cc kiu d liu tru tng khc. Tuy nhin, iu m ngi mi va hc lp trnh C thng gp rc ri l hi kh hiu do s mm do ca C. D vy, C c ph bin kh rng ri v tr thnh mt cng c lp trnh kh mnh, c s dng nh l mt ngn ng lp trnh ch yu trong vic xy dng nhng phn mm hin nay

    - Ngn ng C c nhng c im c bn sau: o Tnh c ng (compact): C ch c 32 t kha chun v 40 ton t chun, nhng

    hu ht u c biu din bng nhng chui k t ngn gn. o Tnh cu trc (structured): C c mt tp hp nhng ch th ca lp trnh nh cu

    trc la chn, lp T cc chng trnh vit bng C c t chc r rng, d hiu.

    o Tnh tng thch (compatible): C c b tin x l v mt th vin chun v cng phong ph nn khi chuyn t my tnh ny sang my tnh khc cc chng trnh vit bng C vn hon ton tng thch.

    o Tnh linh ng (flexible): C l mt ngn ng rt uyn chuyn v c php, chp nhn nhiu cch th hin, c th thu gn kch thc ca cc m lnh lm chng trnh chy nhanh hn.

    o Bin dch (compile): C cho php bin dch nhiu tp tin chng trnh ring r thnh cc tp tin i tng (object) v lin kt (link) cc i tng li vi nhau thnh mt chng trnh c th thc thi c (executable) thng nht.

  • 16

    II. Mt s khi nim c bn

    1. B k t B ch vit trong ngn ng C bao gm nhng k t, k hiu sau: (phn bit ch in hoa v in thng):

    - 26 ch ci latinh ln A,B,C...Z ; - 26 ch ci latinh nh a,b,c ...z. ; - 10 ch s thp phn 0,1,2...9. ; - Cc k hiu ton hc: +, -, *, /, =, , (, ) - Cc k hiu c bit: :. , ; " ' _ @ # $ ! ^ [ ] { } ... ; - Du cch hay khong trng.

    2. T kha T kha l cc t dnh ring (reserved words) ca C vi mc ch c xc nh trc. V d:

    - T kha int dng khai bo bin hoc hm vi kiu d liu s nguyn; - T kha if dng xy dng cu lnh cu trc chn; - T kha for dng xy dng cu lnh cu trc lp.

    Danh sch cc t kha:

    Lu : khng c dng t kha vo mc ch khc, hoc t tn mt i tng no (bin, hng, tn hm ...) trng vi t kha. Cc t kha ca Turbo C 3.0 bao gm:

    3. Kiu d liu Cc kiu d liu s cp chun trong C c th c chia lm 2 dng : kiu s nguyn, kiu s thc.

    Kiu s nguyn Kiu s nguyn l kiu d liu dng lu cc gi tr nguyn hay cn gi l kiu m c. Kiu s nguyn trong C c chia thnh cc kiu d liu con, mi kiu c mt min gi tr khc nhau. Kiu s nguyn 1 byte (8 bits): Kiu s nguyn mt byte gm c 2 kiu sau:

    STT Kiu d liu Min gi tr (Domain) 1 unsigned char T 0 n 255 (tng ng 256 k t trong bng m ASCII) 2 char T -128 n 127

    Kiu unsigned char: lu cc s nguyn dng t 0 n 255. khai bo mt bin l kiu k t th ta khai bo bin kiu unsigned char. Mi s trong min gi tr ca kiu unsigned char tng ng vi mt k t trong bng m ASCII . Kiu char: lu cc s nguyn t -128 n 127. Kiu char s dng bit tri nht lm bit du. Nu gn gi tr > 127 cho bin kiu char th gi tr ca bin ny c th l s m (?). Kiu s nguyn 2 bytes (16 bits): Kiu s nguyn 2 bytes gm c 4 kiu sau:

    STT Kiu d liu Min gi tr (Domain) 1 enum T -32,768 n 32,767

  • 17

    2 unsigned int T 0 n 65,535 3 Short int T -32,768 n 32,767 4 int T -32,768 n 32,767

    Kiu enum, short int, int : Lu cc s nguyn t -32768 n 32767. S dng bit bn tri nht lm bit du. Nu gn gi tr >32767 cho bin c 1 trong 3 kiu trn th gi tr ca bin ny c th l s m. Kiu unsigned int: Kiu unsigned int lu cc s nguyn dng t 0 n 65535. Kiu s nguyn 4 byte (32 bits): Kiu s nguyn 4 bytes hay cn gi l s nguyn di (long) gm c 2 kiu sau:

    STT Kiu d liu Min gi tr (Domain) 1 unsigned long T 0 n 4,294,967,295 2 long T -2,147,483,648 n 2,147,483,647

    Kiu long : Lu cc s nguyn t -2147483658 n 2147483647. S dng bit bn tri nht lm bit du. Nu gn gi tr >2147483647 cho bin c kiu long th gi tr ca bin ny c th l s m. Kiu unsigned long: Kiu unsigned long lu cc s nguyn dng t 0 n 4294967295

    Kiu s thc Kiu s thc dng lu cc s thc hay cc s c du chm thp phn gm c 3 kiu sau:

    STT Kiu d liu Kch thc (Size) Min gi tr (Domain) 1 float 4 bytes T 3.4 * 10-38 n 3.4 * 1038

    2 double 8 bytes T 1.7 * 10-308 n 1.7 * 10308

    3 long double 10 bytes T 3.4 *10-4932 n 1.1 *104932

    Mi kiu s thc trn u c min gi tr v chnh xc (s s l) khc nhau. Ty vo nhu cu s dng m ta c th khai bo bin thuc 1 trong 3 kiu trn. Ngoi ra ta cn c kiu d liu void, kiu ny mang ngha l kiu rng khng cha gi tr g c.

    4. Tn, Bin, hng

    Tn Tn hay cn gi l danh biu (identifier) c dng t cho chng trnh, hng, kiu, bin, chng trnh con... Tn c hai loi l tn chun v tn do ngi lp trnh t.

    - Tn chun l tn do C t sn nh tn kiu: int, char, float,; tn hm: sin, cos... - Tn do ngi lp trnh t t dng trong chng trnh ca mnh.

    S dng b ch ci, ch s v du gch di (_) t tn, nhng phi tun th quy tc: - Bt u bng mt ch ci hoc du gch di; - Khng c khong trng gia tn; - Khng c trng vi t kha; - di ti a ca tn l khng gii hn, tuy nhin ch c 31 k t u tin l c ngha; - Khng cm vic t tn trng vi tn chun nhng khi ngha ca tn chun khng

    cn gi tr na. V d: tn do ngi lp trnh t:

    Chieu_dai, Chieu_Rong, Chu_Vi, Dien_Tich Tn khng hp l: Do Dai, 12A2,

    Bin

  • 18

    Bin l mt i lng c ngi lp trnh nh ngha v c t tn thng qua vic khai bo bin. Bin dng cha d liu trong qu trnh thc hin chng trnh v gi tr ca bin c th b thay i trong qu trnh ny. Mi bin phi thuc v mt kiu d liu xc nh v c min gi tr thuc kiu . C php khai bo bin:

    Danh sch cc tn bin cch nhau bi du phy; V d:

    int a, b, c; /*Ba bin a, b,c c kiu int*/ long int chu_vi; /*Bin chu_vi c kiu long*/ float nua_chu_vi; /*Bin nua_chu_vi c kiu float*/ double dien_tich; /*Bin dien_tich c kiu double*/

    Lu : kt thc 1 lnh phi c du chm phy (;) cui lnh. V tr khai bo bin trong C Trong ngn ng lp trnh C, ta phi khai bo bin ng v tr. Nu khai bo (t cc bin) khng ng v tr s dn n nhng sai st ngoi mun m ngi lp trnh khng lng trc (hiu ng l). Chng ta c 2 cch t v tr ca bin nh sau:

    - Khai bo bin ngoi: Cc bin ny c t bn ngoi tt c cc hm v n c tc dng hay nh hng n ton b chng trnh (cn gi l bin ton cc), v d : int i; /*Bien ben ngoai */ float pi; /*Bien ben ngoai*/ int main() { }

    - Khai bo bin trong: Cc bin c t bn trong hm, chng trnh chnh hay mt khi lnh. Cc bin ny ch c tc dng hay nh hng n hm, chng trnh hay khi lnh cha n. Khi khai bo bin, phi t cc bin ny u ca khi lnh, trc cc lnh gn,

    V d 1: #include #include int bienngoai; /*khai bao bien ngoai*/ int main () {

    int j,i; /*khai bao bien ben trong chuong trinh chinh*/ i=1; j=2; bienngoai=3; printf("\n Gia tri cua i la %d",i);

    /*%d l s nguyn, s bit sau */ printf("\n Gia tri cua j la %d",j); printf("\n Gia tri cua bienngoai la %d",bienngoai); getch(); return 0;

    } V d 2: #include #include int main () {

    int i, j; /*Bien ben trong*/

  • 19

    i=4; j=5; printf("\n Gia tri cua i la %d",i); printf("\n Gia tri cua j la %d",j); if(j>i) {

    int hieu=j-i; /*Bien ben trong */ printf("\n Hieu so cua j tru i la %d",hieu);

    } else {

    int hieu=i-j ; /*Bien ben trong*/ printf("\n Gia tri cua i tru j la %d",hieu);

    } getch(); return 0;

    } Hng L i lng khng i trong sut qu trnh thc thi ca chng trnh.

    C php: const = Gi_tr;

    V d: const int heso=10;

    Hng s thc S thc bao gm cc gi tr kiu float, double, long double c th hin theo 2 cch sau:

    - Cch 1: S dng cch vit thng thng m chng ta s dng trong cc mn Ton, L, iu cn lu l s dng du thp phn l du chm (.); V d: 123.34 -223.333 3.00 -56.0

    - Cch 2: S dng cch vit theo s m hay s khoa hc. Mt s thc c tch lm 2 phn, cch nhau bng k t e hay E

    Phn gi tr: l mt s nguyn hay s thc c vit theo cch 1. Phn m: l mt s nguyn

    Gi tr ca s thc l: Phn gi tr nhn vi 10 m phn m. V d: 1234.56e-3 = 1.23456 (l s 1234.56 * 10-3)

    -123.45E4 = -1234500 ( l -123.45 *104) Hng s nguyn

    S nguyn gm cc kiu int (2 bytes) , long (4 bytes) c th hin theo nhng cch sau : - Hng s nguyn 2 bytes (int) h thp phn: L kiu s m chng ta s dng thng

    thng, h thp phn s dng cc k s t 0 n 9 biu din mt gi tr nguyn. V d: 123, -242

    - Hng s nguyn 2 byte (int) h bt phn: L kiu s nguyn s dng 8 k s t 0 n 7 biu din mt s nguyn.

  • 20

    Cch biu din: 0 V d : 0345, -020 (s 345, -20 trong h bt phn)

    - Hng s nguyn 2 byte (int) h thp lc phn: L kiu s nguyn s dng 10 k s t 0 n 9 v 6 k t A, B, C, D, E ,F biu din mt s nguyn. Cch biu din: 0x

    - Hng s nguyn 4 byte (long): S long (s nguyn di) c biu din nh s int trong h thp phn v km theo k t l hoc L. Mt s nguyn nm ngoi min gi tr ca s int ( 2 bytes) l s long ( 4 bytes). V d: 45345L hay 45345l hay 45345

    - Cc hng s cn li: Vit nh cch vit thng thng (khng c du phn cch gia 3 s)

    Hng k t Hng k t l mt k t ring bit c vit trong cp du nhy n (). Mi mt k t tng ng vi mt gi tr trong bng m ASCII. Hng k t cng c xem nh tr s nguyn.

    V d: a, A, 0, 9 Chng ta c th thc hin cc php ton s hc trn 2 k t (thc cht l thc hin php ton trn gi tr ASCII ca chng)

    Hng chui k t Hng chui k t l mt chui hay mt xu k t c t trong cp du nhy kp (). V d: Ngon ngu lap trinh C, Khoa CNTT-HVKTQS.

    Lu : - Mt chui khng c ni dung c gi l chui rng; - Khi lu tr trong b nh, mt chui c kt thc bng k t NULL (\0: m

    Ascii l 0); - biu din k t c bit bn trong chui ta phi thm du \ pha trc. V d:

    Im a student phi vit I\m a student; Day la ky tu dac biet phi vit Day la ky tu \dac biet\.

    5. Biu thc Biu thc l mt s kt hp gia cc ton t (operator) v cc ton hng (operand) theo ng mt trt t nht nh. Mi ton hng c th l mt hng, mt bin hoc mt biu thc khc. Trong trng hp, biu thc c nhiu ton t, ta dng cp du ngoc n () ch nh ton t no c thc hin trc. V d: Biu thc nghim ca phng trnh bc hai:

    (-b + sqrt(Delta))/(2*a) Trong 2 l hng; a, b, Delta l bin.

    Cc ton t s hc Trong ngn ng C, cc ton t +, -, *, / lm vic tng t nh khi chng lm vic trong cc ngn ng khc. Ta c th p dng chng cho a s kiu d liu c sn c cho php

  • 21

    bi C. Khi ta p dng php / cho mt s nguyn hay mt k t, bt k phn d no cng b ct b. Chng hn, 5/2 bng 2 trong php chia nguyn.

    Ton t ngha + Cng - Tr

    * Nhn / Chia

    % Chia ly phn d -- Gim 1 n v

    ++ Tng 1 n v

    Tng v gim (++ & --) Ton t ++ thm 1 vo ton hng ca n v - tr bt 1. Ni cch khc:

    x = x + 1 ging nh ++x x = x 1 ging nh x

    C 2 ton t tng v gim u c th tin t (t trc) hay hu t (t sau) ton hng. V d: x = x + 1 c th vit x++ (hay ++x) Tuy nhin gia tin t v hu t c s khc bit khi s dng trong 1 biu thc. Khi 1 ton t tng hay gim ng trc ton hng ca n, C thc hin vic tng hay gim trc khi ly gi tr dng trong biu thc. Nu ton t i sau ton hng, C ly gi tr ton hng trc khi tng hay gim n. Tm li:

    x = 10 y = ++x //y = 11

    Tuy nhin: x = 10 y = x++ //y = 10

    Th t u tin ca cc ton t s hc: ++ -- sau l * / % ri mi n + -

    Cc ton t quan h v cc ton t Logic tng chnh ca ton t quan h v ton t Logic l ng hoc sai. Trong C mi gi tr khc 0 c gi l ng, cn sai l 0. Cc biu thc s dng cc ton t quan h v Logic tr v 0 nu sai v tr v 1 nu ng.

    Ton t ngha

    Cc ton t quan h > Ln hn

    >= Ln hn hoc bng

  • 22

    < Nh hn 1+ 12 s c xem l 10 > (1 + 12) v kt qu l sai (0). Ta c th kt hp vi ton t li vi nhau thnh biu thc nh sau:

    10>5&&!(10 = <

  • 23

    >> Dch phi 9 ? 100 : 200 Th Y c gn gi tr 100, nu X nh hn 9 th Y s nhn gi tr l 200. on m ny tng ng cu trc if nh sau: X = 10 if (X < 9) Y = 100 else Y = 200

    Ton t con tr & v * Mt con tr l a ch trong b nh ca mt bin. Mt bin con tr l mt bin c khai bo ring cha mt con tr n mt i tng ca kiu ch ra n. Ta s tm hiu k hn v con tr trong chng v con tr. y, chng ta s cp ngn gn n hai ton t c s dng thao tc vi cc con tr. Ton t th nht l &, l mt ton t quy c tr v a ch b nh ca h s ca n.

    V d: m = &count t vo bin m a ch b nh ca bin count. Chng hn, bin count v tr b nh 2000, gi s count c gi tr l 100. Sau cu lnh trn m s nhn gi tr 2000. Ton t th hai l *, l mt b sung cho &; y l mt ton t quy c tr v gi tr ca bin c cp pht ti a ch theo sau . V d: q = *m S t gi tr ca count vo q. By gi q s c gi tr l 100 v 100 c lu tr ti a ch 2000.

  • 24

    Ton t du phy , Ton t du , c s dng kt hp cc biu thc li vi nhau. Bn tri ca ton t du , lun c xem l kiu void. iu c ngha l biu thc bn phi tr thnh gi tr ca tng cc biu thc c phn cch bi du phy. V d: x = (y=3,y+1); Trc ht gn 3 cho y ri gn 4 cho x. Cp du ngoc n l cn thit v ton t du , c u tin thp hn ton t gn. Du ngoc n v du ngoc vung Trong C, cp du ngoc n l ton t tng u tin ca cc biu thc bn trong n. Cc cp du ngoc vung thc hin thao tc truy xut phn t trong mng. Cch vit tt trong C C nhiu php gn khc nhau, i khi ta c th s dng vit tt trong C na. Chng hn:

    x = x + 10 c vit thnh x +=10 Ton t += bo cho chng trnh dch bit tng gi tr ca x ln 10. Cch vit ny lm vic trn tt c cc ton t nh phn (php ton hai ngi) ca C. Tng qut:

    (Bin) = (Bin) (Ton t) (Biu thc) c th c vit:

    (Bin) (Ton t)= (Biu thc) Tng kt v u tin

    Cao nht () [] ! ~ ++ -- (Kiu) * &

    * / % + -

    > < >=

    &

    ^ |

    && ||

    ?:

    = += -= *= /=

    Thp nht ,

  • 25

    III. Cu trc mt chng trnh n gin

    1. Cu trc chung Chng trnh sau c vit bng C, cho php ngi s dng nhp vo 2 s ri in ra kt qu l tng 2 s . Xt chng trnh sau: /* 1. Khai bao su dung thu vien*/ #include #include #include /* 2. Khai bao Kieu du lieu*/ // se de cap o bai sau /* 3. Khai bao hang */ #define heso 10 /* 4. Khai bao bien */ int a, b; /* 5. Chuong trinh chinh */ int main() { /* Chuong trinh cho phep nhap vao hai so a v b, Tinh va in ra tong hai so do */ float ketqua; // Khai bao bien ketqua system("cls"); // Xoa man hinh printf("Nhap vao A va B:"); // Hien thi thong bao huong dan nhap lieu scanf("%d %d",&a,&b); // Nhap cac gia tri cho a va b tu ban phim ketqua =float((a+b))/heso; printf("Tong %d va %d la %0.1f\n",a,b,ketqua); // Hien thi ket qua ra man hinh printf("Nhan phim bat ky de ket thuc!"); getch(); // Doi nhan phim bat ky de tiep tuc return 0; }

    Kt qu thc hin chng trnh c nh hnh sau:

    .

  • 26

    V c bn C khng qui nh 1 cch cht ch cu trc ca mt chng trnh; C ch qui nh mt chng trnh phi c hm main, v ng thi l chng trnh chnh ca chng trnh. Thng thng mt chng trnh C gm cc phn:

    - Khai bo th vin; - Khai bo bin; hng; - Chng trnh chnh;

    2. Khai bo s dng th vin Phn khai bo s dng th vin: C php:

    #include -> Hoc #include tn th vin ->

    V d: #include #include #include

    Xem Help bit danh sch cc include file

    3. Khai bo hng, bin, kiu Khai bo (nh ngha) Hng C ph:

    #define Tn_Hng Gi_tri V d:

    #define heso 10 Khai bo (nh ngha) Bin C ph:

    Kiu_D_liu Danh_sch_Tn_Bin; V d: int a, b;

    4. Mt s lnh n - Lnh gn - Lnh xa mn hnh - Lnh dng chng trnh

    5. Ch thch Tt c cc dng bt u bng hai du s (//) c coi l cht thch m chng khng c bt k mt nh hng no n hot ng ca chng trnh. Chng c th c cc lp trnh vin dng gii thch hay bnh phm bn trong m ngun ca chng trnh. Trong trng hp ny, dng ch thch l mt gii thch ngn gn nhng g m chng trnh chng ta lm.

  • 27

    Trong ngn ng lp trnh C, ni dung ch thch phi c vit trong cp du /* v */.

    6. Chng trnh chnh int main () Dng ny tng ng vi phn bt u khai bo hm main. Hm main l im m tt c cc chng trnh C++ bt u thc hin. N khng ph thuc vo v tr ca hm ny ( u, cui hay gia ca m ngun) m ni dung ca n lun c thc hin u tin khi chng trnh bt u. Thm vo , do nguyn nhn ni trn, mi chng trnh C++ u phi tn ti mt hm main.

    int main() { .

    return 0. }

    Theo sau main l mt cp ngoc n bi v n l mt hm. Trong C++, tt c cc hm m sau l mt cp ngoc n () th c ngha l n c th c hoc khng c tham s (khng bt buc). Ni dung ca hm main tip ngay sau phn khai bo chnh thc c bao trong cc ngoc nhn ( { } ) nh trong v d.

    return 0;

    Lnh return kt thc hm main v tr v m i sau n, trong trng hp ny l 0. y l mt kt thc bnh thng ca mt chng trnh khng c mt li no trong qu trnh thc hin. Nh bn s thy trong cc v d tip theo, y l mt cch ph bin nht kt thc mt chng trnh C++.

    IV. Nhp/Xut d liu

    1. Nhp d liu t bn phm Hm scanf() L hm cho php c d liu t bn phm v gn cho cc bin trong chng trnh khi chng trnh thc thi. Trong ngn ng C, l hm scanf nm trong th vin stdio.h. C php:

    scanf(Chui nh dng, a ch ca cc bin); Gii thch:

    - Chui nh dng: dng qui nh kiu d liu, cch biu din, rng, s ch s thp phn... Mt s nh dng khi nhp kiu s nguyn, s thc, k t.

    nh dng ngha %[s ch s]d Nhp s nguyn c ti a

    %[s ch s] f Nhp s thc c ti a tnh c du chm

    %c Nhp mt k t V d:

    %d Nhp s nguyn

  • 28

    %4d Nhp s nguyn ti a 4 k s, nu nhp nhiu hn 4 k s th ch nhn c 4 k s u tin

    %f Nhp s thc %6f Nhp s thc ti a 6 k s (tnh lun du chm), nu nhp nhiu hn

    6 k s th ch nhn c 6 k s u tin (hoc 5 k s vi du chm)

    - a ch ca cc bin: l a ch (&) ca cc bin m chng ta cn nhp gi tr cho n. c vit nh sau: &.

    V d: scanf(%d,&bien1);/*Doc gia tri cho bien1 co kieu nguyen*/ scanf(%f,&bien2); /*Doc gia tri cho bien2 co kieu thc*/ scanf(%d%f,&bien1,&bien2); /*Doc gia tri cho bien1 co kieu nguyen, bien2 co kieu thuc*/ scanf(%d%f%c,&bien1,&bien2,&bien3);

    /*bien3 co kieu char*/ Lu :

    - Chui nh dng phi t trong cp du nhy kp (). - Cc bin (a ch bin) phi cch nhau bi du phy (,). - C bao nhiu bin th phi c by nhiu nh dng ; - Th t ca cc nh dng phi ph hp vi th t ca cc bin ; - nhp gi tr kiu char c chnh xc, nn dng hm fflush(stdin) loi b

    cc k t cn nm trong vng m bn phm trc hm scanf() ; - nhp vo mt chui k t (khng cha khong trng hay kt thc bng khong

    trng), chng ta phi khai bo kiu mng k t hay con tr k t, s dng nh dng %s v tn bin thay cho a ch bin. ;

    - c vo mt chui k t c cha khong trng (kt thc bng phm Enter) th phi dng hm gets().

    Mt s v d khc: int biennguyen; float bienthuc; char bienchar; char chuoi1[20], *chuoi2;

    1. Lnh: scanf(%3d,&biennguyen); Nu ta nhp 1234455 th gi tr ca biennguyen l 3 k s u tin (123). Cc k s cn li s cn nm li trong vng m.

    2. Lnh: scanf(%5f,&bienthuc); Nu ta nhp 123.446 th gi tr ca bienthuc l 123.4, cc k s cn li s cn nm trong vng m.

    3. Lnh: scanf(%2d%5f,&biennguyen, &bienthuc); Nu ta nhp lin tip 2 s cch nhau bi khong trng: 1223 3.142325 th :

    a. 2 k s u tin (12) s c c vo cho biennguyen ; b. 2 k s tip theo trc khong trng (23) s c c vo cho bienthuc.

  • 29

    4. Lnh:scanf(%2d%5f%c,&biennguyen,&bienthuc,&bienchar); Nu ta nhp lin tip 2 s cch nhau bi khong trng: 12345 3.142325 th :

    a. 2 k s u tin (12) s c c vo cho biennguyen ; b. 3 k s tip theo trc khong trng (345) s c c vo cho bienthuc ; c. Khong trng s c c cho bienchar.

    Nu ta ch nhp 1 s gm nhiu k s nh sau: 123456789: d. 2 k s u tin (12) s c c vo cho biennguyen ; e. 5 k s tip theo (34567) s c c vo cho bienthuc ; f. bienchar s c gi tr l k s tip theo 8.

    5. Lnh: scanf(%s,chuoi1); hoc scanf(%s,chuoi2); Nu ta nhp chui nh sau: Nguyen Van Huynh th gi tr ca bin chuoi1 hay chuoi2 ch l Nguyen .

    6. Lnh: scanf(%s%s,chuoi1, chuoi2); Nu ta nhp chui nh sau: Duong Van Hieu th gi tr ca bin chuoi1 l Duong v gi tr ca bin chuoi2 l Van.

    V sao nh vy? C s c t u n khi gp khong trng v gn gi tr cho bin u tin, phn cn li sau khong trng l gi tr ca cc bin tip theo.

    gets(chuoi1);

    Nu nhp chui : Nguyen Van Lai th gi tr ca bin chuoi1 l Nguyen Van Lai

    2. Xut d liu ra mn hnh - Hm printf() Hm printf (nm trong th vin stdio.h) dng xut gi tr ca cc biu thc ln mn hnh. C php:

    printf(Chui nh dng [, Cc biu thc]); Gii thch: - Chui nh dng: dng qui nh kiu d liu, cch biu din, rng, s ch s

    thp phn... Mt s nh dng khi i vi s nguyn, s thc, k t.

    nh dng ngha %d Xut s nguyn %[.s ch s thp phn] f Xut s thc c theo quy tc lm

    trn s.

    %o Xut s nguyn h bt phn

    %x Xut s nguyn h thp lc phn

    %c Xut mt k t %s Xut chui k t %e hoc %E hoc %g hoc %G

    Xut s nguyn dng khoa hc (nhn 10 m x)

  • 30

    V d %d In ra s nguyn

    %4d In s nguyn ti a 4 k s, nu s cn in nhiu hn 4 k s th in ht

    %f In s thc %6f In s thc ti a 6 k s (tnh lun du chm), nu s

    cn in nhiu hn 6 k s th in ht %.3f In s thc c 3 s l, nu s cn in c nhiu hn 3 s l

    th lm trn. - Cc biu thc: l cc biu thc m chng ta cn xut gi tr ca n ln mn hnh, mi

    biu thc phn cch nhau bi du phy (,). V d 1: #include #include int main() {

    int bien_nguyen=1234, i=65; float bien_thuc=123.456703; printf("Gia tri nguyen cua bien nguyen =%d\n",bien_nguyen); printf("Gia tri thuc cua bien thuc =%f\n",bien_thuc); printf("Truoc khi lam tron=%f \n Sau khi lam tron=%.2f",bien_thuc, bien_thuc); getch(); return 0;

    }

    Kt qu in ra mn hnh nh sau:

    Lu : i vi cc k t iu khin, ta khng th s dng cch vit thng thng hin th chng. K t iu khin l cc k t dng iu khin cc thao tc xut, nhp d liu; mt s k t iu khin c m t trong bng sau:

  • 31

    K t iu khin

    Gi tr thp lc phn

    K t c hin th ngha

    \a 0x07 BEL Pht ra ting chung

    \b 0x08 BS Di chuyn con tr sang tri 1 k t v xa k t bn tri (backspace)

    \f 0x0C FF Sang trang \n 0x0A LF Xung dng

    \r 0x0D CR Tr v u dng

    \t 0x09 HT Tab theo ct (ging g phm Tab) \\ 0x5C \ Du \

    \ 0x2C Du nhy n () \ 0x22 Du nhy kp ()

    \? 0x3F ? u chm hi (?)

    \ddd ddd K t c m ACSII trong h bt phn l s ddd \xHHH oxHHH K t c m ACSII trong h thp lc phn l HHH

    V d 2: #include #include int main () {

    printf("\n Tieng Beep \a"); printf("\n Doi con tro sang trai 1 ky tu\b"); printf("\n Dau Tab \tva dau backslash \\"); printf("\n Dau nhay don \' va dau nhay kep \""); printf("\n Dau cham hoi \?"); printf("\n Ky tu co ma bat phan 101 la \101"); printf("\n Ky tu co ma thap luc phan 41 la \x041"); printf("\n Dong hien tai, xin go enter"); getch(); printf("\rVe dau dong"); getch(); return 0;

    }

    3. V d V d 1: Vit chng trnh cho php nhp vo 2 s a v b, trnh by kt qu v phng php cng 2 s theo hnh thc sau (vi a=876 v b=7655):

    876

  • 32

    + 7655 ----------------------------- = 8531

    #include #include #include // Chuong trinh chinh int main() {

    int a,b,tong; system("cls"); printf("Nhap vao a va b:"); scanf("%d %d",&a,&b); printf("Ket qua theo phuong phap cong \n\n"); tong=a+b; printf("%20d\n",a); printf("%10s\n","+"); printf("%20d\n",b); printf("%20s\n","--------------------"); printf("%20d\n\n",tong); printf("Nhan phim bat ky de ket thuc!"); getch(); return 0;

    } Kt qu thc hin

    V. Tm tt ni dung bi hc I. Gii thiu II. Mt s khi nim c bn

    1. B k t 2. T kha 3. Kiu d liu 4. Tn, Bin, hng

  • 33

    5. Biu thc III. Cu trc chng trnh n gin trong C

    1. Cu trc chung 2. Khai bo s dng th vin 3. Khai bo hng, bin, kiu 4. Mt s lnh n 5. Ch thch 6. Chng trnh chnh

    IV. Nhp/Xut d liu 1. Nhp d liu t bn phm Hm scanf() 2. Xut d liu ra mn hnh Hm printf() 3. v d

    VI. Bi tp Xem Bi 3 - Bi tp thc hnh Mi trng lp trnh Dev-C++ v cc lnh vo/ra c bn.

  • 34

    Bi 3 - Bi thc hnh: MI TRNG LP TRNH V CC LNH VO/RA

    I. Lm quen mi trng Dev-C++

    1. Khi ng Dev-C++

    Kch p vo biu tng trn mn hnh.

    2. Giao din chnh

    II. Bi tp lm theo yu cu

    1. Tnh din tch mt tam gic

    Yu cu: Cho cnh y a mt hnh tam gic v ng cao tng ng l h, hy tnh din tch hnh tam gic .

    Son tho vn bn chng trnh nh sau:

    /* Vi du 1 - Tinh dien tich tam giac khi biet chieu cao va canh day */ #include #include #include

  • 35

    // Chuong trinh chinh int main() { int a,h; // a - chieu dai day, h - chieu cao float s; // Dien tich tam gia system("cls"); // Xoa man hinh printf("Nhap vao a va h:"); scanf("%d %d",&a,&h); s=a*h; printf("Dien tich bang ", s); printf("Nhan phim bat ky de ket thuc!"); getch(); // Dung doi nhan phim bat ky return 0; } Th nghim 1:

    1. Nhn F9, giao din xut hin nh sau:

    2. Nhp vo cc gi tr: 4 5 Enter, khi kt qu nhn c nh sau:

    3. Nhn xt v kt qu nhn c

    Th nghim 2: 1. Thay dng printf("Dien tich bang ", s);

    Bng dng printf("Dien tich bang %f", s);

  • 36

    2. Nhn xt v kt qu nhn c so vi th nghim 1. Th nghim 3:

    1. Thay dng printf("Dien tich bang %f", s); Bng dng printf("Dien tich bang %10.2f", s);

    2. Nhn xt v kt qu nhn c so vi th nghim 2.

    2. Tnh tng, hiu, tch, thng ca 2 s Yu cu: Vit chng trnh cho php nhp vo 2 s, tnh v in ra mn hnh tng, hiu, tch v thng ca 2 s . Son tho vn bn chng trnh nh sau /* Chuong trinh tinh TONG, HIEU, TICH, THUONG 2 so*/ #include #include #include /* Chuong trinh chinh */ int main() { /* 1. Khai bao bien va chuan bi*/ int a,b; float tong, hieu,tich, thuong; system("cls"); /* 2. Huong dan nhap va Nhap du lieu vao*/ printf("Nhap vao A va B:"); scanf("%d %d",&a,&b); /* 3. Tinh toan TONG, HIEU, TICH, THUONG*/ tong=a+b; hieu=a-b; tich=a*b; thuong=a/b; /* 4. Trinh bay ket qua r*/ printf("Tong %d + %d = %10.2f\n", a,b,tong); printf("Hieu %d - %d = %10.2f\n", a,b,hieu); printf("Tich %d * %d = %10.2f\n", a,b,tich); printf("Thuong %d / %d = %10.2f\n", a,b,thuong); printf("Nhan phim bat ky de ket thuc!"); /* 5. Doi nhan phim bat ky de ket thuc*/ getch(); return 0; } Th nghim 1:

    1. Nhn F9, giao din xut hin nh hnh sau:

  • 37

    2. Nhp vo cc gi tr: 4 5 Enter, khi kt qu nhn c nh hnh sau.

    3. Nhn xt v kt qu nhn c.

    Th nghim 2: Cho A=6, B=4 nhn xt v kt qu nhn c; Th nghim 3: Cho A=6, B=0 nhn xt v kt qu nhn c;

    III. Bi tp t lm T thc hin cc bi tp sau

    2. Vit chng trnh in ln mn hnh mt thip mi d sinh nht c dng:

    *******************************************

    THIEP MOI

    Than moi ban : Nguyen Van Manh

    Toi du le sinh nhat cua minh

    Vao luc 19h ngay 12/10/2008

    Tai 100 Hoang Quoc Viet Ha noi

    Rat mong uoc don tiep !

    Ho Thu Huong

  • 38

    *******************************************

    3. Vit chng trnh nhp vo bn knh r ca mt hnh trn. Tnh chu vi v din tch ca

    hnh trn theo cng thc :

    Chu vi CV = 2*Pi*r

    Din tch S = Pi*r*r

    In cc kt qu ln mn hnh

    4. Vit chng trnh nhp vo di 3 cnh a, b, c ca mt tam gic. Tnh chu vi v

    din tch ca tam gic theo cng thc:

    Chu vi CV = a+b+c

    Din tch S = sqrt(p*(p-a)*(p-b)*(p-c))

    Trong : p=CV/2

    In cc kt qu ln mn hnh

    5. Vit chng trnh tnh logax vi a, x l cc s thc nhp vo t bn phm, v x>0,

    a>0, a 1.( dng logax=lnx/lna) .

    6. Vit chng trnh nhp vo ta ca hai im (x1, y1) v (x2, y2)

    a) Tnh h s gc ca ng thng i qua hai im theo cng thc:

    H s gc = (y2 - y1) /(x2 - x1)

    b) Tnh khong cch gia hai im theo cng thc:

    Khong cch = 212212 )()( xxyy

    7. Vit chng trnh nhp vo mt k t:

    a) In ra m Ascii ca k t .

    b) In ra k t k tip ca n.

    8. Vit chng trnh nhp vo cc gi tr in tr R1, R2, R3 ca mt mch in :

    Tnh tng tr theo cng thc: 321

    1111RRRR

    9. Vit chng trnh nhp vo im ba mn Ton, L, Ha ca mt hc sinh. In ra im

    trung bnh ca hc sinh vi hai s l thp phn.

    10. Vit chng trnh nhp vo ngy, thng, nm. In ra ngy thng nm theo dng

    dd/mm/yy. (dd: ngy, mm: thng, yy: nm. V d: 20/11/99).

  • 39

    11. Vit chng trnh o ngc mt s nguyn dng c ng 3 ch s.

    12. Cho hai s x= 100; y = 200; Hy in ra mn hnh cc kt qu ca cc biu thc:

    x&y; x&x; !x&y; x^y^y;

    13. Biu din cc hng s nguyn 2 byte sau y di dng s nh phn, bt phn, thp

    lc phn :

    a)12 b) 255 c) 31000 d) 32767 e) -32768

    14. Biu din cc hng k t sau y di dng s nh phn, bt phn.

    a) A b) a c) Z d) z

    15. Cho h s k v s x (c biu din h c s k), s k1 c nhp vo t bn phm.

    Hy i s x t h c s k sang h c s k1, bit k, k1 c th nhn cc s: 2, 8, 10, 16.

  • 40

    Bi 4 - IU KHIN CHN

    Ni dung bi hc I.Khi lnh II. Lnh IF III. Lnh SWITCH IV. V d V. Bi tp

    I. Khi lnh Mt dy cc khai bo cng vi cc cu lnh nm trong cp du ngoc mc { v } c gi l mt khi lnh. V d 1:

    { char ten[30]; printf(\n Nhap vao ten cua ban:); scanf(%s, ten); printf(\n Chao Ban %s,ten);

    } V d 2:

    #include #include int main () {

    char ten[50]; printf("Xin cho biet ten cua ban !"); scanf("%s",ten); getch(); return 0;

    } Mt khi lnh c th cha bn trong n nhiu khi lnh khc gi l khi lnh lng nhau. S lng nhau ca cc khi lnh l khng hn ch. Minh ha:

    { lnh; {

    lnh; {

    lnh; } lnh; } lnh;

    } Lu v phm vi tc ng ca bin trong khi lnh lng nhau: Trong cc khi lnh khc nhau hay cc khi lnh lng nhau c th khai bo cc bin cng tn.

  • 41

    V d 3: {

    lnh; { int a,b; /*bin a, b trong khi lnh th nht*/ lnh; } lnh; { int a,b; /*bin a,b trong khi lnh th hai*/ lnh; }

    } V d 4: { int a, b; /*bin a,b trong khi lnh bn ngoi*/ lnh; { int a,b; /*bin a,b bn trong khi lnh con*/ } }

    - Nu mt bin c khai bo bn ngoi khi lnh v khng trng tn vi bin bn trong khi lnh th n cng c s dng bn trong khi lnh.

    - Mt khi lnh con c th s dng cc bin bn ngoi, cc lnh bn ngoi khng th s dng cc bin bn trong khi lnh con.

    II. Lnh IF C php

    if () {

    }

    [else {

    }] Lu c php:

  • 42

    Gii thch:

    - Cng vic 1, cng vic 2 c th hin l 1 cu lnh hay 1 khi lnh. - u tin Biu thc iu kin c kim tra trc. - Nu iu kin ng th thc hin cng vic 1. - Nu iu kin sai th thc hin cng vic 2. - Vic c thc hin cng vic 2 hay khng l mt la chn, c th c hoc khng.

    V d 1: Yu cu ngi thc hin chng trnh nhp vo mt s thc a. In ra mn hnh kt qu nghch o ca a khi a 0, khi a =0 in ra thng bo Khong the tim duoc nghich dao cua a #include #include int main () {

    float a; printf("Nhap a = "); scanf("%f",&a); if (a !=0 )

    printf("Nghich dao cua %f la %f",a,1/a); else

    printf(Khong the tim duoc nghich dao cua a); getch(); return 0;

    } Gii thch:

    - Nu chng ta nhp vo a 0 th cu lnh printf("Nghich dao cua %f la %f",a,1/a)c thc hin, ngc li cu lnh printf(Khong the tim duoc nghich dao cua a) c thc hin.

    - Lnh getch() lun lun c thc hin. - Chy tng bc dng Debug, view cc bin a, b v biu thc a>b

    V d 2: Yu cu ngi chy chng trnh nhp vo gi tr ca 2 s a v b, nu a ln hn b th in ra thng bo Gia tr ca a ln hn gi tr ca b, gi tr ca 2 s, ngc li th in ra mn hnh cu thng bo Gi tr ca a nh hn hoc bng gi tr ca b, gi tr ca 2 s. #include

    BT iu kin

    Cng vic 1

    Sai ng

    Cng vic 2

  • 43

    #include int main () {

    int a, b; printf("Nhap vao gia tri cua 2 so a va b !"); scanf("%d%d",&a,&b); if (a>b) {

    printf("\n a lon hon b); printf("\n a=%d b=%d ",a,b);

    } else {

    printf("\n a nho hon hoac bang b"); printf("\n a=%d b=%d",a,b);

    } printf("\n Thuc hien xong lenh if"); getch(); return 0;

    } V d 3: Yu cu ngi thc hin chng trnh nhp vo mt s nguyn dng l thng trong nm v in ra s ngy ca thng .

    - Thng c 31 ngy: 1, 3, 5, 7, 8, 10, 12; - Thng c 30 ngy: 4, 6, 9, 10 ; - Thng c 28 hoc 29 ngy : 2

    #include #include int main () {

    int thg; printf("Nhap vao thang trong nam !"); scanf("%d",&thg); if(thg==1||thg==3||thg==5||thg==7||thg==8||thg==10||thg==12) {

    printf("\n Thang %d co 31 ngay ",thg); }

    else {

    if (thg==4||thg==6||thg==9||thg==11) printf("\n Thang %d co 30 ngay",thg);

    else if (thg==2) printf("\n Thang %d co 28 hoac 29 ngay",thg);

    else printf("Khong co thang %d",thg); printf("\n Thuc hien xong lenh if");

    } getch(); return 0;

    }

  • 44

    Lu : - Ta c th s dng cc cu lnh ifelse lng nhau. Trong trng hp ifelse lng

    nhau th else s kt hp vi if gn nht cha c else; - Trong trng hp cu lnh if bn trong khng c else th phi vit n trong cp

    du {} (coi nh l khi lnh) trnh s kt hp else if sai; V d: if ( so1>0) if (so2 > so3) a=so2; else /*else ca if (so2>so3) */ a=so3;

    Hoc: if (so1>0) { if (so2>so3) /*lnh if ny khng c else*/ a=so2;

    } else /*else ca if (so1>0)*/ a=so3;

    - Nu sau biu thc logic ca if ta c du chn phy, v d: if (a==0); {

    printf("Nghich dao cua %f la %f",a,1/a); }

    Th v c php trnh bin dch s khng bo sai, nhng xt v ngha l sai.

    III. Lnh SWITCH Cu trc la chn cho php la chn mt trong nhiu trng hp. Trong C, l cu lnh switch.

    C php:

    switch () { case gi_tr_1: { Cng vic 1; break; } case gi_tr_n: {

    Cng vic N; break; }

    [default : { Cng vic N+1;

  • 45

    break; } ]

    }

    Lu :

    Gii thch:

    - Tnh gi tr ca Biu thc; - Nu gi tr ca biu thc bng Gi tr 1 th thc hin Cng vic 1 ri thot; - Nu gi tr ca biu thc khc Gi tr 1 th so snh vi Gi tr 2, nu bng th

    thc hin Cng vic 2 ri thot; - Tip tc so snh vi Gi tr N nu n-1 gi tr trc khng bng gi tr ca Biu

    thc. - Nu tt c cc php so snh trn u sai th c th chn thc hin (hay khng)

    Cng vic N+1 (Cng vic mc nh). Lu :

    - Biu thc trong switch() phi c kt qu l gi tr kiu s nguyn (int, char, long,);

    - Cc gi tr sau case cng phi l kiu s nguyn; - Khng bt buc phi c default;

    V d 1: Nhp vo mt s nguyn, chia s nguyn ny cho 2 ly phn d. Kim tra nu phn d bng 0 th in ra thng bo s chn, nu s d bng 1 th in thng bo s l. #include #include

    ng Sai

    Tnh gi tr

    =Gi tr 1

    =Gi tr 2

    =Gi tr N

    Cng vic 1 Cng vic 2 Cng vic n Cng vic n+1

    Sai

    ng

    Sai

    ng

  • 46

    int main () {

    int songuyen, phandu; printf("\n Nhap vao so nguyen "); scanf("%d",&songuyen); phandu=(songuyen % 2); switch(phandu) {

    case 0: printf("%d la so chan ",songuyen); break;

    case 1: printf("%d la so le ",songuyen); break;

    } getch(); return 0;

    }

    V d 2: Nhp vo 2 s nguyn v 1 php ton. Nu php ton l +, -, * th in ra kt qua l tng, hiu, tch ca 2 s; Nu php ton l / th kim tra xem s th 2 c khc khng hay khng? Nu khc khng th in ra thng ca chng, ngc li th in ra thng bo khong chia cho 0. #include #include int main () { int so1, so2; float thuong; char pheptoan; printf("\n Nhap vao 2 so nguyen "); scanf("%d%d",&so1,&so2);

    fflush(stdin); //Xoa ky tu enter trong vung dem truoc khi nhap phep toan printf("\n Nhap vao phep toan "); scanf("%c",&pheptoan); switch(pheptoan) { case '+': printf("\n %d + %d =%d",so1, so2, so1+so2); break; case '-': printf("\n %d - %d =%d",so1, so2, so1-so2); break; case '*': printf("\n %d * %d =%d",so1, so2, so1*so2); break;

  • 47

    case '/': if (so2!=0){ thuong=float(so1)/float(so2); printf("\n %d / %d =%f", so1, so2, thuong); }

    else printf("Khong chia duoc cho 0"); break;

    default : printf("\n Chua ho tro phep toan %c", pheptoan);

    break; } getch(); return 0;

    } Trong v d trn, ti sao phi xa k t trong vng m trc khi nhp php ton? V d 3: Yu cu ngi thc hin chng trnh nhp vo mt s nguyn dng l thng trong nm v in ra s ngy ca thng .

    - Thng c 31 ngy: 1, 3, 5, 7, 8, 10, 12 ; - Thng c 30 ngy: 4, 6, 9, 10; - Thng c 28 hoc 29 ngy : 2 - Nu nhp vo s 12 th in ra cu thng bo khng c thng ny .

    #include #include int main () { int thang; printf("\n Nhap vao thangs trong nam "); scanf("%d",&thang); switch(thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("\n Thang %d co 31 ngay ",thang); break; case 4:

  • 48

    case 6: case 9: case 11: printf("\n Thang %d co 30 ngay ",thang); break; case 2: printf ("\ Thang 2 co 28 hoac 29 ngay"); break; default : printf("\n Khong co thang %d", thang); break; } getch(); return 0; }

    IV. Tm tt I. Khi lnh II. Lnh IF III. Lnh SWITCH

    V. Bi tp Xem Bi 5 - Bi thc hnh iu khin chn

  • 49

    Bi 5 - Bi thc hnh: IU KHIN CHN

    I. Bi tp lm theo yu cu

    1. Gii phng trnh bc 2

    Yu cu: Vit chng trnh cho php bin lun v nghim ca phng trnh bc 2 a*x2+b*x+c = 0.

    Son tho vn bn chng trnh nh sau:

    #include #include #include #include int main() { int a,b,c; float d; float x1,x2; system("cls"); printf("Nhap vao cac he so a,b va c:"); scanf("%d %d %d",&a,&b,&c); d=b*b-4*a*c; if (d

  • 50

    getch(); return 0; }

    Th nghim 1:

    1. Nhn F9, khi giao din nhp liu xut hin nh hnh sau:

    2. Nhp cc gi tr cho a,b, c tng ng l 2 4 2 Enter , khi kt qu nhn c nh hnh sau:

    3. Nhn xt v kt qu t c.

    Th nghim 2: Nhp cc gi tr cho a,b, c tng ng l -3 1 2 nhn xt v kt qu nhn c. Th nghim 3: Nhp cc gi tr cho a,b, c bt k, nhn xt v kt qu nhn c.

    2. To mt menu n gin Son tho vn bn chng trnh nh sau

    #include #include int main() { char c; while (1= =1)

  • 51

    { c= getch();

    if (c = = 'Q') break; else printf("%c\n",c); } return 0; }

    Th nghim 1: - Trc khi chy chng trnh hy nhn xt xem chng trnh thc hin lm vic g? Nu

    khi chng trnh ng chy ngi s dng nhn phm Q (ch Q hoa) th chng trnh s lm g?

    - Chy th chng trnh. Th nghim 2:

    - Sa li chng trnh trn thnh nh sau: #include #include #include int main() { char c; while (1==1) { system("cls"); printf("Nhan V de tinh dien tich hinh VUONG\n"); printf("Nhan C de tinh dien tich hinh CHUNHAT\n"); printf("Nhan T de tinh dien tich hinh TRON\n"); printf("-------------------------------------\n"); printf("Nhan Q de tinh ket thuc chuong trinh (QUIT)"); c= getch(); if (c=='Q') break; else { switch (c) { case 'V': { // Viet doan tinh dien tich hinh VUONG o day } break; case 'C': { // Viet doan tinh dien tich hinh CHUNHAT o day } break; case 'T': { // Viet doan tinh dien tich hinh TRON o day } break; } } } return 0; }

    - Chy v nhn xt v chng trnh

  • 52

    Th nghim 3: - Gi s sau dong ghi ch // Viet doan tinh dien tich hinh VUONG o day thm vo on

    chng trnh sau: float a, s; system("cls"); printf("Tinh dien tich hinh VUONG\n"); printf("-------------------------\n"); printf("Nhap vao do dai canh: "); scanf("%f",&a); s= a*a; printf("Dein tich hinh VUONG canh = %3.1f la: %3.1f \n",a,s); printf("Nhap phim bat ky de tro lai menu chinh"); getch();

    - Chy v nhn xt v kt qu thc hin chng trnh - Trong on chng trnh trn ti sao phi thm vo lnh system("cls"); ? - Trong on chng trnh trn nu khng c lnh getch(); th vn g s xy ra, gii

    thch.

    II. Bi tp t lm 1. Vit chng trnh nhp 3 s t bn phm, tm s ln nht trong 3 s , in kt qu ln mn

    hnh.

    2. Vit chng trnh tnh chu vi, din tch ca tam gic vi yu cu sau khi nhp 3 s a, b, c phi kim tra li xem a, b, c c to thnh mt tam gic khng? Nu c th tnh chu vi v din tch. Nu khng th in ra cu " Khng to thnh tam gic".

    3. Vit chng trnh gii phng trnh bc nht ax+b=0 vi a, b nhp t bn phm.

    4. Vit chng trnh gii phng trnh bc hai ax2+bx + c = 0 vi a, b, c nhp t bn phm.

    5. Vit chng trnh nhp t bn phm 2 s a, b v mt k t ch. Nu: ch l + th thc hin php tnh a + b v in kt qu ln mn hnh. ch l th thc hin php tnh a - b v in kt qu ln mn hnh. ch l * th thc hin php tnh a * b v in kt qu ln mn hnh. ch l / th thc hin php tnh a / b v in kt qu ln mn hnh.

    6. Vit chng trnh nhp vo 2 s l thng v nm ca mt nm. Xt xem thng c bao nhiu ngy? Bit rng: Nu thng l 4, 6, 9, 11 th s ngy l 30. Nu thng l 1, 3, 5, 7, 8, 10, 12 th s ngy l 31. Nu thng l 2 v nm nhun th s ngy 29, ngc li th s ngy l 28.

    7. C hai phng thc gi tin tit kim: gi khng k hn li sut 2.4%/thng, mi thng tnh li mt ln, gi c k hn 3 thng li sut 4%/thng, 3 thng tnh li mt ln.Vit chng trnh tnh tng cng s tin c vn ln li sau mt thi gian gi nhp t bn phm.

  • 53

    `Bi 6 - IU KHIN LP

    I. Lnh FOR Lnh for cho php lp li cng vic cho n khi iu kin sai. C php:

    for (Biu thc 1; biu thc 2; biu thc 3) {

    }

    Lu :

    Gii thch: : c th hin l 1 cu lnh hay 1 khi lnh. Th t thc hin ca cu lnh for nh sau:

    B1: Tnh gi tr ca biu thc 1. B2: Tnh gi tr ca biu thc 2.

    - Nu gi tr ca biu thc 2 l sai (=0): thot khi cu lnh for. - Nu gi tr ca biu thc 2 l ng (!=0): c thc hin.

    B3: Tnh gi tr ca biu thc 3 v quay li B2.

    Lu :

    - Khi biu thc 2 vng mt th n c coi l lun lun ng; - Biu thc 1: thng thng l mt php gn khi to gi tr ban u cho bin

    iu kin;

    - Biu thc 2: l mt biu thc kim tra iu kin ng sai dng vng lp; - Biu thc 3: thng thng l mt php gn thay i gi tr ca bin iu kin,

    bin iu kin ny thng (phi c) trong Biu thc 2;

    Tnh gi tr BT 1

    Biu thc 2

    Tnh gi tr BT 3

    Thc hin CV

    T

    F

  • 54

    - Trong mi biu thc c th c nhiu biu thc con. Cc biu thc con c phn bit bi du phy.

    V d 1: Vit on chng trnh in dy s nguyn t 1 n 10. #include #include int main () {

    int i; printf("\n Day so tu 1 den 10 :"); for (i=1; i

  • 55

    unsigned int dong, cot, n, m; printf("\n Nhap vao so dong va so cot :"); scanf("%d%d",&n,&m); for (dong=0;dong

  • 56

    - Vng lp dng li khi no iu kin sai; - Khi lnh thc hin cng vic c th rng, c th lm thay i iu kin.

    V d 1: Vit on chng trnh in dy s nguyn t 1 n 10. #include #include int main () {

    int i; printf("\n Day so tu 1 den 10 :"); i=1; while (i

  • 57

    1 2 3 4 5 6 7 2 3 4 5 6 7 8 3 4 5 6 7 8 9 #include #include int main () { unsigned int dong, cot, n, m; printf("\n Nhap vao so dong va so cot :"); scanf("%d%d",&n,&m); dong=0; while (dong

  • 58

    Gii thch:

    - : c th hin bng 1 cu lnh hay 1 khi lnh; - Trc tin cng vic c thc hin trc, sau mi kim tra Biu thc iu

    kin; - Nu iu kin sai th thot khi lnh do while; - Nu iu kin cn ng th thc hin cng vic ri quay li kim tra iu kin

    tip; Lu :

    - Lnh dowhile thc hin cng vic t nht 1 ln; - Vng lp dng li khi iu kin sai; - Khi lnh thc hin cng vic c th rng, c th lm thay i iu kin.

    V d 1: Vit on chng trnh in dy s nguyn t 1 n 10. #include #include int main () { int i; printf("\n Day so tu 1 den 10 :"); i=1; do printf("%d ",i++); while (i

  • 59

    { unsigned int n,i,tong; printf("\n Nhap vao so nguyen duong n:"); scanf("%d",&n); tong=0; i=1; do { tong+=i; i++; } while (i=1): 1 2 3 4 5 6 7 2 3 4 5 6 7 8 3 4 5 6 7 8 9 #include #include int main () { unsigned int dong, cot, n, m; printf("\n Nhap vao so dong va so cot :"); scanf("%d%d",&n,&m); dong=0; do { printf("\n"); cot=1; do { printf("%d\t",dong+cot); cot++; } while (cot

  • 60

    So snh cc vng lp Vng lp for, while:

    - Kim tra iu kin trc thc hin cng vic sau nn on lnh thc hin cng vic c th khng c thc hin;

    - Vng lp kt thc khi no iu kin sai. Vng lp dowhile:

    - Thc hin cng vic trc kim tra iu kin sau nn on lnh thc hin cng vic c thc hin t nht 1 ln.;

    - Vng lp kt thc khi no iu kin sai.

    IV. Lnh break v continue

    Lnh break

    C php: break;

    ngha: Dng thot khi vng lp. Khi gp cu lnh ny trong vng lp, chng trnh s thot ra khi vng lp v ch n cu lnh lin sau n. Nu nhiu vng lp --> break s thot ra khi vng lp gn nht. Ngoi ra, break cn c dng trong cu trc la chn switch.

    Lnh continue C php:

    continue; ngha : Khi gp lnh ny trong cc vng lp, chng trnh s b qua phn cn li trong vng lp v tip tc thc hin ln lp tip theo. i vi lnh for, biu thc 3 s c tnh tr v quay li bc 2. i vi lnh while, do while; biu thc iu kin s c tnh v xt xem c th tip tc thc hin na hay khng? (da vo kt qu ca biu thc iu kin).

    III. Tm tt ni dung bi hc I.Lnh FOR II. Lnh WHILE III. Lnh DO .. WHILE IV. Lnh BREAK v CONTINUE V. Bi tp

    IV. Bi tp Xem Bi 7 - Bi tp thc hnh Cc cu trc iu khin

  • 61

    Bi 7 - Bi thc hnh: IU KHIN LP

    I. Bi tp lm theo yu cu

    1. Tm USCNLN ca hai s

    Yu cu: Vit chng trnh cho php nhp vo 2 s nguyn v in ra c s chung ln nht ca 2 s . Son tho vn bn chng trnh nh sau: #include #include #include #include int main() { int a,b,t,u,v; system("cls"); printf("Nhap vao cac he so a va b:"); scanf("%d %d",&a,&b); u=a; v=b; while (a>0) { if (a

  • 62

    2. Nhp cc gi tr cho a v b tng ng l 12 18 Enter, khi kt qu nhn c nh sau:

    3. Nhn xt v kt qu t c

    Th nghim 2: Vit li chng trnh trn theo thut ton Euler m t nh sau: Input: a, b Output: d M t:

    1) x = a; y = b; 2) While y>0

    a) r = x mod y; b) x = y; c) y = r;

    End While 3) d = x;

    2. Tnh li sut tin gi Vn : Gi s tin gi tit kim c tnh vi li sut l m% mi thng, sau n thng th tin li c cng vo gc. Vit chng trnh cho php tnh v in ra mn hnh s tin c c sau K thng gi tit kim vi s tin gc ban u l T. Son tho vn bn chng trnh sau:

    #include #include int main() {

    float m,T,lai, Tco; int n, K; printf("Lai suat (Phan tram) : "); scanf("%f",&m); m=m/100; printf("So thang de lai vao goc: "); scanf("%d",&n); printf("So tien gui : "); scanf("%f",&T); printf("So thang gui : "); scanf("%d",&K); lai= 0; for (int i=1; i

  • 63

    T=T+lai; } } Tco = T + lai; printf("So tien: %0.5f",Tco); getch(); return 0;

    }

    Th nghim 1: - Chy chng trnh v cho bit kt qu khi nhp vo m=5, n=3, T=100, K=2. Nhn xt v

    kt qu nhn c - Chy chng trnh v cho bit kt qu khi nhp vo m=5, n=3, T=100, K=3. Nhn xt v

    kt qu nhn c. Th nghim 2:

    - Trong khi lnh if (i%n==0)

    { T=T+lai; }

    Thm vo lnh lai =0; thnh nh sau: if (i%n==0)

    { T=T+lai; lai = 0 ; }

    - Chy chng trnh v cho bit kt qu khi nhp vo m=5, n=3, T=100, K=3. Nhn xt v kt qu nhn c. Gii thch.

    - Chy chng trnh v cho bit kt qu khi nhp vo m=5, n=3, T=100, K=20. Nhn xt v kt qu nhn c. Gii thch.

    Th nghim 3: - Gi s s thng gi l khng nguyn, ngha l s thng gi c th l 3.5 thng, 4.3 thng

    . Nu thay i kiu bin K l float thay v int bng cch thay dng lnh int n, K;

    thnh hai dng lnh sau: int n ; float K;

    - Chy chng trnh v cho bit kt qu khi nhp vo m=5, n=3, T=100, K=3. Nhn xt v kt qu nhn c.

    - Debug tng bc v gii thch v sao chng trnh sau khi sa nh trn cho kt qu khng ng.

    II. Bi tp t lm 1. Mt s nguyn dng chia ht cho 3 nu tng cc ch s ca n chia ht cho 3. Vit chng

    trnh nhp vo mt s c 3 ch s, kim tra s c chia ht cho 3 dng tnh cht trn.( if ) 2. Tr chi "On t t": tr chi c 2 ngi chi mi ngi s dng tay biu th mt trong 3

    cng c sau: Ko, Bao v Ba. Nguyn tc: Ko thng bao. Bao thng ba. Ba thng ko. Vit chng trnh m phng tr chi ny cho hai ngi chi v ngi chi vi my. (switch)

    3. Vit chng trnh tnh tin in gm cc khon sau: Tin thu bao in k : 1000 ng / thng. nh mc s dng in cho mi h l 50 Kw Phn nh mc tnh gi 450 ng /Kwh Nu phn vt nh mc

  • 64

    Nu phn vt nh mc ln hn hay bng 100 Kw tnh gi pht cho phn ny l 1200 ng/Kwh . Vi : ch s in k c v ch s in k mi nhp vo t bn phm. In ra mn hnh s tin tr trong nh mc, vt nh mc v tng ca chng. (if)

    4. Vit chng trnh nhn vo gi, pht, giy dng (hh:mm:ss ), t bn phm. Cng thm mt s giy vo v in ra kt qu di dng ( hh:mm:ss ).

    5. Vit chng trnh nhp vo ngy thng nm ca mt ngy, kim tra n c hp l khng.

    6. Kim tra mt k t nhp vo thuc tp hp no trong cc tp k t sau: Cc k t ch hoa: 'A' ...'Z' Cc k t ch thng: 'a' ... 'z' Cc k t ch s : '0' ... '9' Cc k t khc. 14. H thp lc phn dng 16 k s bao gm cc k t 0 .. 9 v A, B, C, D, E ,F. Cc k s A, B, C, D, E, F c gi tr tng ng trong h thp phn nh sau: A 10 B 11 C 12 D 13 E 14 F 15. Hy vit chng trnh cho nhp vo k t biu din mt k s ca h thp lc phn v cho bit gi tr thp phn tng ng. Trng hp k t nhp vo khng thuc cc k s trn, a ra thng bo li : "H thp lc phn khng dng k s ny"

    7. Vit chng trnh nhp vo ngy thng nm ca ngy hm nay, in ra ngy thng nm ca ngy mai.

    8. Vit chng trnh tnh cc tng sau: a) S=1 + 2 + ... + n b) S=1/2 + 2/3 + ... +n/(n+1) c) S= - 1 +2 - 3 +4 - ... + (-1)nn

    9. Vit chng trnh nhp vo mt dy n s, tm s ln nht ca dy v xc nh v tr ca s ln nht trong dy.

    10. Vit chng trnh m s ch s ca mt s nguyn n.

    11. Tm s nguyn dng k nh nht sao cho 2k > n vi n l mt s nguyn dng nhp t bn phm.

    12. Vit chng trnh in ra s o ngc ca mt s nguyn n, vi n nhp t bn phm.

    13. Tnh gi tr trung bnh ca mt dy s thc, kt thc dy vi -1.

    14. Vit chng trnh m phng php chia nguyn DIV 2 s nguyn a v b nh sau: chia nguyn a v b ta tnh tr a-b, sau ly hiu tm c li tr cho b... tip tc cho n khi hiu ca n nh hn b. S ln thc hin c cc php tr trn s bng tr ca php chia nguyn.

    15. Tm s nguyn dng N nh nht sao cho 1+1/2+ ...+1/N > S, vi S nhp t bn phm.

    16. Vit chng trnh tnh P=2*4*6*...*(2n), n nhp t bn phm.

    17. Vit chng trnh tm UCLN v BCNN ca hai s a v b theo thut ton sau (K hiu UCLN ca a, b l (a,b) cn BCNN l [a,b]) - Nu a chia ht cho b th (a,b) = b - Nu a = b*q + r th (a,b) = (b,r) - [a,b] = a*b/(b,r) .

    18. Vit chng trnh nhp vo mt s nguyn dng n, in ra mn hnh cc s nguyn t p

  • 65

    Bi 8 - MNG V CON TR

    Ni dung bi hc I. Mng

    1. Mng trong C 2. Mng mt chiu 3. Mng nhiu chiu

    II. Con tr 1. Khai bo v s dng bin con tr 2. Con tr v mng 3. Con tr v tham s hnh thc ca hm

    III. Tm tt ni dung bi hc

    I. Mng

    1. Mng trong C Mng l mt tp hp cc phn t c nh c cng mt kiu, gi l kiu phn t. Kiu

    phn t c th l: k t, s, chui k t;

    Ta c th chia mng lm 2 loi: mng 1 chiu v mng nhiu chiu.

    2. Mng mt chiu Mng 1 chiu l mt dy cc phn t c cng tn gi, c 1 ch s ch th t ca phn

    t trong dy. Mng mt chiu cn c th hiu nh mt Vector.

    Khai bo mng vi s phn t xc nh (khai bo tng minh)

    C php:

    [n]

    Trong :

    - Tn mng: y l mt ci tn t ng theo quy tc t tn ca danh biu; - n: l mt hng s nguyn, cho bit s lng phn t ti a trong mng l bao

    nhiu (hay ni khc i kch thc ca mng l g);

    - Kiu: mi phn t ca mng c d liu thuc kiu g; - y, ta khai bo mt bin mng gm c n phn t, phn t th nht l tn mng

    [0], phn t cui cng l tn mng[n -1];

    V d:

    int a[10];

    /* Khai bo bin mng tn a, phn t th nht l a[0], phn t cui cng l a[9].*/

    Ta c th coi mng a l mt dy lin tip cc phn t trong b nh nh sau:

  • 66

    V tr 0 1 2 3 4 5 6 7 8 9

    Tn phn t a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]

    Hnh 1: Hnh nh mng a trong b nh

    Khai bo mng vi s phn t khng xc nh (khai bo khng tng minh)

    C php:

    Khi khai bo, khng cho bit r s phn t ca mng, kiu khai bo ny thng c p

    dng trong cc trng hp: va khai bo va gn gi tr, khai bo mng l tham s hnh

    thc ca hm.

    Va khai bo va gn gi tr

    C php:

    []= {Cc gi tr cch nhau bi du phy}

    Nu va khai bo va gn gi tr th mc nhin C s hiu s phn t ca mng l s gi

    tr m chng ta gn cho mng trong cp du {}. Chng ta c th s dng hm sizeof()

    ly s phn t ca mng nh sau:

    S phn t=sizeof(tn mng)/ sizeof(kiu)

    Truy xut tng phn t ca mng

    Mi phn t ca mng c truy xut thng qua Tn bin mng theo sau l ch s nm

    trong cp du ngoc vung [ ]. Chng hn a[0] l phn t u tin ca mng a c khai

    bo trn. Ch s ca phn t mng l mt biu thc m gi tr l kiu s nguyn.

    V d 1:

    int a[10];

    Trong khai bo ny, vic truy xut cc phn t c ch ra trong hnh 1. Chng hn phn

    t th 2 (c v tr 1) l a[1]

    V d 2: Va khai bo va gn tr cho 1 mng 1 chiu cc s nguyn. In mng s nguyn

    ny ln mn hnh.

    #include #include int main() { int n,i,j,tam; int dayso[]={66,65,69,68,67,70}; n=sizeof(dayso)/sizeof(int); /*Lay so phan tu*/

  • 67

    printf("\n Noi dung cua mang "); for (i=0;i0); printf("Dang nhi phan la: "); for(i=K-1;i>=0;i--)