__baigiang tinhocdaicuong 37.pdf

Upload: quyen

Post on 11-Feb-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    1/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 1/92

    MC LC

    CHNG 1 TNG QUAN V MY TNH IN T............................................. 31.1. Thng tin .......................................................................................................................... 3

    1.1.1. Khi nim .................................................................................................................. 31.1.2. n v o thng tin ................................................................................................... 3

    1.1.3. M ha v x l thng tin ........................................................................................ 41.2. Tin hc v cng ngh thng tin ...................................................................................... 51.3. Lch s ra i v khuynh hng pht trin k thut my tnh.................................. 51.4. Tng quan v my tnh v cc thit b ngoi vi............................................................ 6

    1.4.1. n v x l trung tm (Central Processing Unit - CPU).................................... 61.4.2. B nh chnh (Memory)........................................................................................... 71.4.3. Cc thit b ngoi vi................................................................................................. 7

    1.5. Phn mm, phn cng .................................................................................................... 7CHNG 2 H M, BIU DIN THNG TIN ..................................................... 8

    2.1. Cc h m, cc php tnh c bn................................................................................. 8

    2.1.1. Khi nim h m..................................................................................................... 82.1.2. Cc php tnh trong h nh phn............................................................................ 82.2. Chuyn i gia cc h m ........................................................................................... 9

    CHNG 3 LP TRNH C BN ............................................................................ 123.1. Thut ton ...................................................................................................................... 12

    3.1.1. Khi nim ................................................................................................................ 123.1.2. Cc c trng ca thut ton ................................................................................ 123.1.3. Biu din thut ton ............................................................................................... 13

    3.2. Cc khi nim c bn .................................................................................................... 143.2.1. Tp cc k hiu ca ngn ng C ........................................................................... 143.2.2. Cc t kha ............................................................................................................. 14

    3.2.3. Tn gi ..................................................................................................................... 153.2.4. Ch thch ................................................................................................................. 153.2.5. Cu lnh .................................................................................................................. 16

    3.3. Cu trc tng qut mt chng trnh......................................................................... 163.4. Cc kiu d liu c s................................................................................................... 17

    3.4.1. Cc kiu s .............................................................................................................. 183.4.2. Cc kiu k t......................................................................................................... 19

    3.5. Bin ................................................................................................................................. 193.6. Hng ............................................................................................................................... 213.7. Ton t........................................................................................................................... 22

    3.7.1. Ton t s hc......................................................................................................... 22

    3.7.2. Ton t gn ............................................................................................................. 233.7.3. Ton t tng gim .................................................................................................. 233.7.4. Ton t quan h..................................................................................................... 233.7.5. Ton t logic ........................................................................................................... 24

    3.8. Biu thc ........................................................................................................................ 243.9. Cc lnh trong ngn ng C.......................................................................................... 26

    3.9.1. Lnh nhp/xut...................................................................................................... 263.9.2. Lnh phc (khi lnh) ............................................................................................ 283.9.3. Lnh r nhnh........................................................................................................ 293.9.4. Lnh lp.................................................................................................................. 37

    CHNG 4 LP TRNH VI D LIU C CU TRC ..................................... 494.1. Mng mt chiu ............................................................................................................. 49

    4.1.1. nh ngha v khai bo .......................................................................................... 494.1.2. Cc thao tc trn mng mt chiu........................................................................ 52

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    2/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 2/92

    4.2. Mng nhiu chiu .......................................................................................................... 544.2.1. nh ngha v khai bo .......................................................................................... 544.2.2. Cc thao tc trn mng nhiu chiu..................................................................... 55

    4.3. Chui k t.................................................................................................................... 564.3.1. nh ngha v khai bo .......................................................................................... 564.3.2. Cc thao tc trn chui k t................................................................................ 57

    CHNG 5 LP TRNH MODULE ......................................................................... 705.1. Phng php lp trnh module .................................................................................... 705.2. Xy dng hm............................................................................................................... 71

    5.2.1. Quy tc xy dng hm ........................................................................................... 715.2.1.2. Xc nh tn v trnh t cc i s.................................................................... 725.2.1.3. Tiu hm......................................................................................................... 725.2.2. Li gi hm ............................................................................................................. 735.2.3. Bin ton cc, bin cc b.................................................................................... 745.2.4. Truyn i s cho hm ........................................................................................... 775.2.5. Xc nh kiu tr v cho hm................................................................................ 78

    5.3. Phn tch mt s chng trnh v gii mt s bi ton bng phng php lp trnhmodule ................................................................................................................................... 80

    5.3.1 Xc nh s ngy ca mt thng trong nm......................................................... 805.3.2 Thc hin cc php tnh +, -, *, /............................................................................ 815.3.3. Gii phng trnh bc 1........................................................................................ 825.3.4. Xut ra mn hnh cc s trong on v 10 cu AAAAAAAAA.................... 835.3.5. Nhp vo N s nguyn, xc nh tng v s nh nht......................................... 845.3.6. V hnh ch nht c cc k t............................................................................. 855.3.7. Nhp vo mt dy cc s nguyn dng (kt thc khi nhp vo s m) v tnhtch ca chng ................................................................................................................... 865.3.8. Nhp vo dy cc s nguyn dng 3 ch s cho n khi tng ca chng lnhn M cho trc, xut ratng v s lng s nhp vo.............................................. 875.3.9 Tm bi s chung nh nht ca hai s nguyn dng.......................................... 875.3.10. i s t h 10 sang h b..................................................................................... 885.3.11 Tnh tng ................................................................................................................ 88

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    3/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 3/92

    CHNG 1TNG QUAN V MY TNH IN T

    1.1. Thng tin

    1.1.1. Khi nim

    Trong cuc sng, ngi ta c nhu cu c bo, xem truyn hinh, giao tip vi

    ngi khc c thng tin. Thng tin l s hiu bit ca con ngi v mt s kin, mthin tng no thu nhn qua nghin cu, trao i, nhn xt, hc tp, truyn th, cmnhn.

    Con ngi hiu c thng tin qua li ni, ch vit, qua cc dng biu dinthng tin khc v din t thng tin thnh ngn ng truyn t cho nhau. Thng tin

    c chuyn ti qua cc mi trng vt l khc nhau nh nh sng, sng m, sng int, Thng tin c ghi trn cc phng tin hu hnh nh cc vn bn trn giy,bng ghi m hay phim nh,..

    1.1.2. n v o thng tin

    Mi s vt, hin tng u hm cha mt lng thng tin. Mun bit mt itng no ta phi bit lng thng tin v n.

    n v o thng tin l bt. Mt bt tng ng vi mt ch th hoc mt thng bono v s kin, c mt trong hai trng thi c s o kh nng xut hin ng thi l

    Tt (Off)/m (On) hay ng (True) / Sai (False).V d: Mt mch n c 2 trng thi l: + Tt (Off) khi mch in qua cng tc l h. + M (On) khi mch in qua cng tc l ng.

    S hc nh phn s dng hai k s l 0 v 1 biu din cc s. V kh nng sdng hai s 0 v 1 l nh nhau nn mt ch th ch gm mt ch s nh phn c thxem nh l n v cha thng tin nh nht.

    Bit l ch vit tt ca Binary digiT. Trong tin hc, ngi ta thng s dng cc

    n v o thng tin ph bin ln hn nh sau:Tn gi K hiu Gi trByte B 8bit

    KiloByte KB 210

    B = 1024Byte

    MegaByte MB 220B

    GigaByte GB 230B

    TeraByte TB 240B

    Petabyte PB 250B

    Exabyte EB 260

    B

    Zettabyte ZB 270B

    Yottabyte YB 280B

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    4/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 4/92

    1.1.3. M ha v x l thng tin

    a. M ha thng tinM ha thng tin l qu trnh bin i thng tin t dng biu din thng tin thng

    sang mt dng khc theo quy c nht nh. Qu trnh bin i ngc li ca thng tin

    c gi l php gii m.V d: Ta c mt tp qun l h s sinh vin. Nu ta qun l bng tn th xy rart nhiu trng hp tn b trng nhau. Nu ta thm cc yu t km theo nh a ch,ngy sinh, qu qun .v.v.. th vic qun l tr nn rt rm r, phc tp m khng loi

    tr c kh nng trng nhau. Nu ta gn cho mi sinh vin mt m s ID, ta c th tmta s liu v sinh vin tng ng. Nh vy, qu trnh gn m s ID cho mi h s sinh

    vin gi l m ha, cn qu trnh da trn m s ID xc nh thng tin v sinh vingi l gii m.

    Trong my tnh in t(MTT), ngi ta m ha thng tin di dng nh phnda vo bng m ASCII (American Standard Code for Information Interchange) mrng 8 bt. Trong m ha c 256 k t c m t 0 n 255 v c chia thnh 2nhm:

    -Nhm 1: C m t 0 n 127 dng m ha cc k t, k hiu c s: az,AZ, 09, {, }, [, ], =, +,..v cc k t iu khin.

    -Nhm 2: C m t 128 n 255 dng m ha cc k t ha v cc k tc bit ca mi nc.

    b. X lthng tin

    - p ng cho cc cng vic hng ngy bao gm nhiu lnh vc nh nghin cu,kinh doanh sn xut, thng miCon ngi lun phi thu nhp v x l hng lot ccthng tin t nhiu ngun, cc hot ng x l bao gm cc qu trnh nh sau:

    + Thu thp thng tin: Ly thng tin t s vt, hin tng thng qua cc gicquan v cc thit b c kh nng thu nhn tin.

    + M tin: Biu din thng tin bng ch vit, ch s, ngn ng, ting ni, mthanh, hnh v, trng thi in...

    + Truyn tin: Gi tin t my ny sang my khc, t im ny sang im khc.Mi trng truyn tin gi l knh lin lc.

    + Tr tin: Ghi tn ln cc vt k tin.+ X l tin: Tc ng ln cc tin c. + Xut tin: a thng tin ra cho ngi dung di cc dng m con ngi c th

    nhn bit c.- Tin thng c nhiu cao. V vy x l tin l lm gim nhiu ca tin. Cht

    lng tin c nh gi cn c trn cc phng din sau: S cn thit, s chnh xc, stin cy v s kp thi.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    5/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 5/92

    1.2. Tin hc v cng ngh thng tin

    Tin hc l ngnh khoa hc nghin cu cc phng php v qu trnh x l thngtin mt cch t ng da trn cc phng tin k thut m hin nay phng tin l

    MTT.

    Cc thnh tu mi trong vin thng cho php kt ni cc my tnh thnh mngmy tnh. Do vy, vic phi hp gia cng c x l thng tin t ng, kt cu h tngvin thng, cc chun giao tip trong cc mi trng ca my vi my v gia ngivi my ngy mt pht trin.

    Khi nim Cng ngh Thng tin c mt ni dung y , bao hm c nhnglnh vc, nhng nn tng ch yu ca khoa hc v cng ngh x l thng tin da trnmy tnh. Khi ni n yu t cng ngh, ngi ta mun nhn mnh n tnh qu trnh,tnh t chc v phng php x l thng tin hng ti sn phm. nh ngha Cngngh Thng tin c cc chuyn gia Vit Nam nghin cu, tham kho t cc nhngha ca chuyn gia trn th gii v c a vo Ngh quyt 49/CP ca Chnh phv pht trin Cng ngh Thng tin ca Vit nam t 1996 nh sau:

    "Cng ngh Thng tin l tp hp cc phng php khoa hc, cc phng tin vcng c k thut hin i - ch yu l k thut my tnh v vin thng - nhm t chcv khai thc v s dng c hiu qu ngun ti nguyn thng tin rt phong ph v timtng trong mi lnh vc hot ng ca con ngi v x hi...Cng ngh thng tin c

    pht trin trn nn tng pht trin ca cc cng ngh Tin hc -in t -Vin thng vT ng ho".

    Cng ngh Thng tin mang mt ngha rng ri hn, n va l khoa hc, val

    cng ngh, va l k thut, bao trm c tin hc, vin thng v t ng ho. 1.3. Lch s ra i v khuynh hng pht trin k thut my tnh

    Th h th nht (1945 n 1955) my tnh dng n in t: Trong cc nm 40v u nhng nm 50 phn cng my tnh c pht trin trong cc d n nghincu, cc d n ny xy dng phn cng mi ci mt loi v nhn mnh vo snghin cu. Trong giai on ny cc my ch yu c xy dng da trn n int, chic my tnh in t u tin l my ENIAC (Elec tronic NumbericalIntergrator And Calculator) do John Mauchley v J.Presper Eckert thit k. N baogm 18.000 n in t, 1.500 r-le, nng 30 tn, tiu th cng sut l 140 KW, n

    c lp trnh bng cch thit t 6.000 switch.Th h th hai (1955 n1965) my tnh dng Transitor: Transitor c sngch ra ti phng th nghim Bell nm 1948. Cc my tnh dng n in t trongthi k ny tr nn li thi, my tnh Transitor ra i. My tnh xy dng datrn Transitor nn nh gn hn. Chic my tnh Transitor u tin l my TX- 0 .Th h th ba (1965 n 1980) my tnh dng Mch tch hp (IC): Cng nghvi in t pht trin to ra mch tch hp cho php t hng chc Transitor votrong mt v chung (chip) lm cho cc nh son xut c th ch to ra cc my tnhnh hn, nhanh hn v gi thnh h hn. Th h th t (t 1980) my tnh dng mch tch hp mc cao (VLSI):Nhng

    nm 80, cng ngh vi in t ch to ra cc vi mch in t c mc tch hp rtcao (VLSI Very Large Scale Integrator), trong mt chip c th tch hp hng triuTransitor, do cc my tnh ngy cng nh hn, chy nhanh hn, kh nng tnh

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    6/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 6/92

    ton ln hn, v gi thnh r hn. Nm 1980 my tnh c nhn PC (PersonalComputer) ra i.

    1.4. Tng quan v my tnh v cc thit b ngoi vi

    Bt k mt my tnh in t no cng gm 3 thnh phn chnh sau:

    n v x l trung tm. B nh.

    Cc thit b ngoi vi.

    Cu trc chung ca mt my tnh in t

    1.4.1. n v x l trung tm (Central Processing Unit - CPU)

    CPU c coi l b no ca my tnh, l thit b iu khin mi hot ng ca mytnh, iu khin vic thc thi thit b, iu khin vic tnh ton lu tr theo yu cu cachng trnh, c chia lm 3 thnh phn chnh sau:

    + Khi iu khin (Control Unit-CU): chu trch nhim iu khin ton b cc hotng ca h thng thng qua cc ch th trong chng trnh.+ Khi tnh ton s hc v logic (Arithmetic Logic Unit -ALU): Chu trch nhim

    thc hin cc php tnh s hc (Cng, tr, nhn, chia,..), cc php ton Logic (AND,OR, XOR, NOT) v cc php tnh quan h (so snh hn, nh hn, bng nhau,..).

    + Cc thanh ghi (Registers): Thit k bng cc mch in t lm nhim v b nhtrung gian, b nh tm lu tr m lnh, kt qu tnh ton theo yu cu ca khi iukhin. Cc thanh ghi mang chc nng chuyn dng gip tng tc trao i thng tin

    trong my tnh.

    B nh trong

    B s hc v Logic B iu khin

    Thit b raThit b vo B nh ngoi

    Cc thit b ngoi vi

    Khi trung tm

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    7/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 7/92

    1.4.2. B nh chnh (Memory)

    B nh l thit b lm nhim v lu tr tm thi hoc lu di thng tin, thng tin lutr bao gm: cc d liu t ngoi a vo, cc ch th chng trnh, cc kt qu sau xl. B nh chia lm hai loi:

    B nh trong: Chia lm 2 loi: RAM (Random Access Memory):L b nh truy cp ngu nhin, b nh ny chlu tr tm thi thng tin trong qu trnh x l. Khi tt my, mt in hoc khing li th thng tin trn RAM s mt i. Dung lng ca RAM cng ln thtc truy xut my tnh cng nhanh.

    ROM (Read Only Memory): L b nh ch c, do n ch c thng tin c sn

    c ghi bi nh sn xut, thng tin trn ROM s khng mt i khi mt inhoc tt my.

    B nh ngoi: L thit b lu tr thng tin vi dung lng ln, thng tin khng mt

    i khi khng c in. C th di chuyn b nh ngoi c lp vi my tnh nh acng, a mm, a quang, USB,..

    1.4.3. Cc thit b ngoi vi

    Thit b ngoi vi l thit b gip my tnh giao tip vi mi trng bn ngoi k cvi ngi s dng.

    Thit b nhp (Input): L thit b cho php thng tin hay d liu c nhp vo mytnh nh bn phm, chut, my qut,..Thit bxut (Output): L thit b cho php thng tin hay d liu c th c xut tmy tnh ra ngoi thng qua mn hnh, my in, my chiu, loa,..

    1.5. Phn mm, phn cng

    Phn cng (hardware)l ton b cc thit b vt l ca MTT. Nng cao tc xl, tng kh nng lu tr, tng tin cy, gim nng lng s dng, tng kh nngghp ni, ... l nhng mc tiu m k thut phn cng hng ti.

    Phn mm (software)nghin cu phng php s dng cng c x l thng tin tng trong cc tin trnh x l thng tin. Phn mm bao gm cc chng trnh cchc nng iu khin, khai thc phn cng v thc hin cc yu cu x l thngtin. Phn mm cng bao gm cc phng php t chc d liu tng ng vichng trnh x l thng tin. Tm ra cc phng phpx l thng tin c hiu qu, t

    chc d liu tt v lp trnh th hin cc phng php x l l vn ca phnmm.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    8/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 8/92

    CHNG 2H M, BIU DIN THNG TIN

    2.1. Cc h m, cc php tnh c bn

    2.1.1. Khi nim h m

    H m l mt tp hp k hiu (bng ch s) biu din s v xc nh gi tr cacc biu din s.

    H thp phn l h c s 10 c cc ch s c bn l 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. H nh phn l h c s 2 c cc ch s c bn l 0, 1. Mi ch s nh phn gi l BIT(Binary digiT). Vh nh phn ch c hai s nn ch c hai gi tr l 0 v 1, nn khi mundin t mt s ln hn hoc cc k t phc tp th cn kt hp nhiu BIT vi nhau. V d:

    0101 biu din s 5.H bt phn l h c s 8: Nu dng 3 bt c th biu din 8 tr khc n hau: 000, 001,010, 011, 100, 101, 110, 111. Cc tr ny tng ng vi 8 tr trong h thp phn l:0, 1, 2, 3, 4, 5, 6, 7. Tp hp cc ch s ny gi l h bt phn.H thp lc phn l h c s 16 c cc ch s c bn l 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,B, C, D, E, F tng ng vi cc s 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15trong h thp phn.

    2.1.2. Cc php tnh trong h nh phn

    Cng: Thc hin cng t phi sang tri (ging nh trong h thp phn) c nh theoquy tc.

    0 + 0 = 0 Khng nh

    0 + 1 = 1 Khng nh

    1 + 0 = 1 Khng nh

    1 + 1 = 0 Nh 1

    V d2.1: 1101 + 1000 = 10101Tr: Thc hin tr t phi sang tri (ging nh trong h thp phn) c n theo quytc.

    0 - 0 = 00 - 1 = 1 N 1

    1 - 0 = 1

    1 - 1 = 0

    V d2.2: 11011010 = 11Nhn: Thc hin nhn t phi sang tri ging nh trong h thp phn theo quy tc.

    0 0 = 0

    0 1 = 0

    1 0 = 0

    1 1 = 1

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    9/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 9/92

    V d2.3:1101

    111101

    +1101

    100111Chia: Thc hin php chia ging nh trong h thp phn.V d2.4: 1111 : 101 = 11

    2.2. Chuyn i gia cc h m

    Nguyn tc 1: i mt s thp phn sang h c s b i phn nguyn t mt s thp phn sang h c

    s b: chuyn i phn nguyn ca mt s thp phn

    sang h c s b (b10) ta lm nh sau: Ly phn nguyn s thp phn chia cho c s b cho n khi phn thngca php chia bng khng, s i c chnh l phn dca php chia vit theo th t ngc li:V du2.5:Cho X = 610ngha l X=6 trong h thp

    phn s c i thnh 1102trong h nh phn.

    i phn thp phn ca mt s thp phn sang h c s b: i phn thp phn ca h thp phn sang h c s b ta lm nh sau: Ly

    phn thp phn nhn vi c s b cho n khi phn thp phn ca tch s bng 0. Ktqu chuyn i c l cc s phn nguyn trong php nhn vit ra theo th t tnhton.V d2.6:

    Nguyn tc 2: i mt s t h c s b v h thp phn chuyn i mt s t h c s b v h thp phn ta s dng cng thc (*)

    Vi b l c s m;a0, a1, a2, , anl cc ch s c bn; X ls h m c s b.V d2.7:Vi X = 1102= 1*2

    2+ 1*21+ 0 = 6.Bng chuyn i gia h nh phn, thp lc phn v thp phn nh sau:

    Thp phn Nh Phn Thp lc phn

    0 0000 01 0001 1

    6 2

    0 3 2

    11 2

    1 0

    0.6875 * 2 = .375

    0.375 * 2 = .75

    0.75 * 2 = .5

    0.5 * 2 = .0

    1

    0

    1

    1

    Xb=anan-1a1a0= anbn+an-1b

    n-1+.+a1b1+a0b

    0 (*)

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    10/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 10/92

    2 0010 2

    3 0011 3

    4 0100 4

    5 0101 5

    6 0110 6

    7 0111 7

    8 1000 8

    9 1001 9

    10 1010 A

    11 1011 B

    12 1100 C

    13 1101 D

    14 1110 E

    15 1111 F

    Nguyn tc 3: i mt s t h nh phn sang h thp lc phn. i mt s t h nh phn sang h thp lc phn ta lm nh sau: Nhm ln lt 4

    bit t phi sang tri, sau thay th cc nhm 4 bt ny bng gi tr tng ng trong hthp lc phn.V d2.8: X = 1110112 = 3B16Nguyn tc 4: i mt s t h thp lc phn sang h nh phn.

    i mt s t h thp lc phn sang h nh phn ta lm nh sau: Mi ch strong h thp lc phn s c biu din di dng 4 bit.V d2.9: X = 3B16= 1110112

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    11/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 11/92

    BI TP CHNG 2

    Bi 1:Hy chuyn i cc s sau t h thp phn sang cc h nh phn, bt phn vthp lc phn.

    a. 1301 b.2105 c.67 d.612 e.75.75

    Bi 2:Hy i cc s sau t h nh phn sang h thp phn v bt phna.1010000 b.100110010 c.111011100

    Bi 3:Hy i cc s bt phn sau sang h nh phna.2351 b.1012 c.6610

    Bi 4: Hy i cc s thp lc phn sau sang h nh phna.1AFD8 b.54BCD c.A1902

    Bi 5:Hy thchin cc php tnh:

    a. 1111 + 1011 b. 1100-1011 c.1101 111 d. 1111:101

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    12/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 12/92

    CHNG 3

    LP TRNH C BN

    3.1. Thut ton3.1.1. Khi nim

    Thut ton hay gii thut l mt h thng chc ch v r rang cc quy tc nhmxc nh mt dy cc thao tc trn nhng i tng, sao cho sau mt s hu hn bcthc hin cc thao tc th cho kt qu.

    T thut ton (Algorithm)xut pht t tn mt nh ton hc ngi Trung l

    Abu Abd - Allah ibn Musa alKhwarizmi, thng gi l alKhwarizmi. ng l tcgi mt cun sch v s hc, trong ng dng phng php m t rt r rng,

    mch lc cch gii nhng bi ton. Sau ny, phng php m t cch gii ton ca ng c xem l mt chun mc v c nhiu nh ton hc khc tun theo. T

    algorithm ra i da theo cch phin m tn ca ng.

    3.1.2. Cc c trng ca thut ton

    Tnh xc nhGii thut bao gm cc bc r rang. Trong cng mt iu kin th kt qu ca mi

    bc l xc nh.

    Tnh hu hn dngGii thut sau mt s hu hn bc th cho kt qu.

    Tnh ng nSau khi thc hin cc bc ca gii thut phi cho c kt qu mong mun, kt

    qu c xc nh theo nh ngha c trc.

    Tnh tng qutThut ton c tnh tng qut l thut ton phi p dng c cho mi trng hpca bi ton ch khng phi ch p dng c cho mt s trng hp ring l no. Chng hn gii phng trnh bc hai sau y bng Delta m bo c tnh chtny v n lun gii c vi mi gi tr s thc a,b,c bt k. Tuy nhin, khng phi

    thut ton no cng m bo c tnh tng qut. Trong thc t, c lc ngi ta chxy dng thut ton cho mt dng c trng ca bi ton m thi.

    Tnh c i lng vo v raBt u mt gii thut l vic nhn d liu vo (Input) kt thc gii thut l mt s

    kt qu (d liu ra Output).

    Tnh hiu quTnh hiu qu ca mt gii thut c nh gi da trn cc tiu chun sau: Dung lng b cn thit

    S lng php tnh cn thc hin.

    Thi gian cn thit chy. D hiu v d ci t.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    13/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 13/92

    V d3.1: Thut ton gii phng trnh bc hai ax2+bx+c=01.Yu cu cho bit gi tr ca 3 h s a, b, c2.Nu a=0 th2.1. Yu cu u vo khng m bo.2.2. Kt thc thut ton.

    3.Trng hp a khc 0 th3.1. Tnh gi tr D = b2-4ac3.2. Nu D > 0 th3.2.1. Phng trnh c hai nghim phn bit x1v x23.2.2. Gi tr ca hai nghim c tnh theo cng thc sau:

    a

    bx

    21

    a

    bx

    22

    3.2.3. Kt thc thut ton.

    3.3. Nu D = 0 th3.3.1. Phng trnh c nghim kp x03.3.2. Gi tr ca nghim kp l

    a

    bx

    2

    3.3.3. Kt thc thut ton3.4. Nu D < 0 th3.4.1. Phng trnh v nghim.

    3.4.2. Kt thc thut ton.3.1.3. Biu din thut ton

    S dng cc k hiu hnhkhi c bn to thnh mt m t mang tnh hnhthc(cch ny rrng hn so vivic m t cc bc thc hin thut ton).

    Nhp, Xut

    Bt u

    Kt thc

    Cu lnh

    iu kin

    1

    2

    3

    4

    5

    ng

    Sai

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    14/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 14/92

    Khi 1:Khi bt u thut ton, ch c duy nht mt ng ra.

    Khi 2:Khi kt thc thut ton, c th c nhiu ng vo.Khi 3:Thc hin cu lnh (c th l mt hoc nhiu cu lnh) gm mt ng vo vmt ng ra.Khi 4: R nhnh, kim tra biu thc iu kin (biu thc Boolean), nu biu thc

    ng thut ton s i theo nhnh ng (True), nu biu thc sai thut ton s i theonhnh Sai (False).Khi 5:Cc cu lnh nhp vxut d liu.

    3.2. Cc khi nim c bn

    3.2.1. Tp cc k hiu ca ngn ng C

    Mi ngn ng lp trnh u c xy dng t mt b k t no . Cc k t

    c nhm li theo nhiu cch khc nhau to nn cc t. Cc t li c lin kt vi

    nhau theo mt qui tc no to nn cc cu lnh. Mt chng trnh(CT)bao gm

    nhiu cu lnh v th hin mt thut ton gii mt bi ton no . Ngn ng C

    c xy dng trn b k t sau:

    26 ch ci hoa: A B C .. Z

    26 ch ci thng: a b c .. z

    10 ch s: 0 1 2 ... 9

    Cc k hiu ton hc: + - * / = ( )K t gch ni: _

    Cc k t khc: . , : ; [ ] {} ! \ & % # $ ...

    Du cch (space) dng tch cc t. V d ch VIET NAM c 8 k t, cn

    VIETNAM ch c 7 k t.

    Ch :Khi vit chng trnh,ta khng c s dng bt k k t no khc ngoi cc k

    t trn.

    V d nh khi lp chng trnh gii phng trnh bc hai ax2 +bx+c=0, ta cntnh biu thc Delta = b2- 4ac, trong ngn ng C khng cho php dng k t , vvy ta phi dng k hiu khc thay th.

    3.2.2. Cc t khaT kho l nhng t c s dng khai bo cc kiu d liu, vit cc ton t

    v cc cu lnh. Bng di y lit k cc t kho ca TURBO C: asm break case cdeclchar const continue defaultdo double else enumextern far float forgoto huge if int

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    15/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 15/92

    interrupt long near pascalregister return short signedsizeof static struct switchtipedef union unsigned voidvolatile while

    ngha v cch s dng ca mi t kho s c cp sau ny, y ta cn ch

    :

    Khng c dng cc t kho t tn cho cc hng, bin, mng, hm ... T kho phi c vit bng ch thng. V d: vit t kho khai bo kiu

    s nguyn l int ch khng phi l INT.3.2.3. Tn gi

    Tn l mt khi nim rt quan trng, n dng xc nh cc i lng khc nhautrong mt chng trnh. Chng ta c tn hng, tn bin, tn mng, tn hm, tn con tr,tn tp, tn cu trc, tn nhn,...

    Tn c t theo qui tc sau: Tn l mt dy cc k t bao gm ch ci, s v gch ni. K t u tin ca tn phi l ch hoc gch ni; khng c bt u bi

    cc k t c bit hoc ch s. Tn khng c trng vi t kho. Khng c t tn vi k t space,cc php ton. di cc i ca tn theo mc nh l 32 v c th c t li l mt trong cc

    gi tr t 1 ti 32 nh chc nng: Option-Compiler-Source-Identifier length khidng TURBO C.

    V d 3.2: Cc tn ng : a_1 delta x1 _step GAMACc tn sai:3MN K t u tin l sm#2 S dng k t c bit #f(x) S dng cc du ( )do Trng vi t khote ta S dng du trngY-3 S dng du tr () l php ton

    Ch :Trong C c phn bit ch hoa v ch thng (v d tn AB khc vi ab); ta

    thng dng ch hoa t tn cho cc hng v dng ch thng t tn cho huht cho cc i lng khc nh bin, bin mng, hm, cu trc. Tuy nhin y khngphi l iu bt buc.

    3.2.4. Chthch

    Cc li bnh lun, cc li gii thch c th a vo bt k ch no ca chngtrnh cho chng trnh d hiu, d c hn m khng lm nh hng n cc phnkhc.

    Trong mt chng trnh cn (v lun lun cn) vit thm nhng li gii thch chng trnh thm r rng, thm d hiu.

    Ch thch c th c vit theo 2 cch sau: Ch thch trn mt dng c t sau // Ch thch trn nhiu dng c t gia /* v */

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    16/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 16/92

    V d3.3://Ni dung cn ghi ch

    /* Ghi ch loi ny c th vit trn nhiu dng */

    3.2.5. Cu lnh

    Mt biu thc kiu nh x=0 hoc ++i hoc scanf(...) tr thnh cu lnh khi c ikm theo du ; (chm phy).

    V d :x=0;++i;scanf(...);

    Trong chng trnh C, du ; l k hiu kt thc cu lnh.

    3.3. Cu trc tng qut mt chng trnh

    Mt chng trnh bao gm mt hoc nhiu hm. Hm main() l thnh phn btbuc ca chng trnh. Chng trnh bt u thc hin cc cu lnh u tin ca hmmain() v kt thc khi gp du } cui cng ca hm ny. Khi chng trnh lm vic,my c th chy t hm ny sang hm khc.

    Cc chng trnh C c t chc theo mu:.....hm 1.....hm 2.....

    .....hm n

    Bn ngoi cc hm cc v tr (.....) l ch t: cc ch th tin x l #include(dng khai bo s dng cc hm chun), #define (dng nh ngha cc hng),nh ngha kiu d liu bng typedef, cc khai bo ton cc

    Cu trc c bn ca chng trnh nh sau://Cc ch th tin x l#include#define

    // nh ngha kiu d liutypedef.....

    //Khai bo nguyn mu hm (cc i s);

    //khai bo bin ton cc

    //Chng trnh chnhmain()

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    17/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 17/92

    {khai bo bin v hng

    gi cc hm}

    //Chngtrnh con (cc i s){

    khai bo bin v hng

    gi cc hm khc}

    Hm main() c th t sau hoc xen vo gia cc hm khc.

    V d3.4: Chng trnh tnh x ly tha y ri in kt qura mn hnh:#include "stdio.h"#include "math.h"main(){

    double x,y,z;printf("\n Nhap x va y");scanf("%lf%lf",&x,&y);z=pow(x,y); /* hm tnhx lu tha y */

    printf("\n x= %8.2lf \n y=%8.2lf \n z=%8.2lf",x,y,z);}

    Mt s lu khi vit chng trnh: Trong C mi cu lnh c kt thc bng du chm phy (;). Du chm phy

    dng ngn cch cc cu lnh. Sau cc #include, #define khng c du chm phy. Bi C khng xem l

    lnh. Khi vit chng trnh thng thng ta nn b tr mi cu lnh chim mt dng.

    Cc lnh cng nhm thng theo chiu dc. Nn t tn trong chng trnh mt cch d hiu, mang tnh gi n i tng

    lin quan. Nn vit dng ch thch ngay u dng. Khi s dng cc hm chun th chng ta phi khai bo s dng th vin ca n

    ch th #include.

    3.4. Cc kiu d liu c sMt kiu d liu l mt quy nh chung v hnh dng, cu trc, gi tr cng nh

    cch biu din v x l. LTV phi chn cc kiu d liu thch hp c th gii tt biton t ra. Mt NNLT ch chp nhn cc kiu d liu tun theo (hc c xy dng

    trn) quy nh ca n. Trong C, cc kiu d liu c bn gm: s nguyn, s thc, k t,lit k,

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    18/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 18/92

    3.4.1. Cc kiu s

    Tn cc kiu s trong Cc trnh by trong bng sau:

    Kiu s nguynTn kiu

    trong C

    Dung

    lng

    (byte)

    Phm vi

    Nh

    Ngn

    Khngdu

    unsigned char1 0 ti 255

    C du char 1 -128 ti 127

    Di Khngdu unsigned int 2 0 ti 65,535

    C du int 2 -32,768 ti 32,767

    Ln

    Khngdu

    unsigned long 40 n4,294,967,295

    C du long 42,147,483,648 n

    2,147,483,647

    Kiu s thcTn kiu

    trong CNh float 4 3.4 * 1038 n 3.4 * 1038

    Ln double8 1.7 * 10

    308 n 1.7 *10308

    Rt ln long double10 3.4 * 10

    4932 n 1.1 *104932

    Cc php ton trn cc kiu s gm:o Cc php ton s hc: +, -, *, % (php chia gia hai s nguyn ly phn d,

    chng hn 5 % 3 = 2), / ((a) nu hai v ca php chia u l s nguyn th / l

    Cc kiu d liu c bn

    Cc kius

    Cc kiu snguyn

    Cc kius thc

    Cc kiuk t

    Kiu litk

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    19/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 19/92

    php chia ly phn nguyn (v d, 5 / 3 = 1), (b) ngc li, / l php chia c ktqu l s thc (v d, 5.0 / 3 = 1.66)).

    o Cc php ton so snh: =, = = (so snh bng), != (so snh khc).

    Trn s v biu din quay vngKhi gi tr ca mt s vt qu chn trn min xc nh ca kiu s (trn s) th

    xy ra tnh trng quay vng tnh t chn di ca min xc nh

    Gi s ta gn gi tr 32770 cho mt bin a kiu int c min xc nh [-32768..32767]. V 32770 vt qu chn trn min xc nh ca kiu int (32767) nnxy ra trn s. Lc ny, s din ra s quay vng: 32768 (= chn trn + 1) s tr thnh-32768 (chn di), 32769 (= chn trn + 2) tr thnh -32767 (= chn di + 1),32770tr thnh .32766 Do , a s c gi tr -32766.

    3.4.2. Cc kiu k t

    Nh bit, mt k t c biu din bng mt s nguyn c gi tr l mASCII ca k t. Tp m ASCII ca cc k t c nh s t 0 n 255 v c th lutr trong hai kiu s nguyn ngn: charv unsigned char cho trong bng sau:

    M ASCII

    Gi tr nguyn tng ng khi lu tr k t bng kiu:

    unsigned char

    (min xc nh: [0..255])

    char

    (min xc nh: [-128..127])

    0 0 0

    1 1 1

    .. .. ..

    127 127 127

    128 (=127+ 1) 128 -128 (= -128)

    129 (=127+ 2) 129 -127 (= -128+ 1)

    .. .. ..

    255 (=127+ 128) 255 -1 (-128 + 127)

    Cc php ton trn kiu k t c th xem l cc php ton trn m ASCII ca cc

    k t, hay l cc php ton trn kiu s nguyn.

    3.5. BinMt chng trnh ng dng c th qun l nhiu loi d liu. Trong trng hp

    ny, chng trnh phi ch nh b nh cho mi n v d liu. Khi ch nh b nh, chai im cn lu nh sau :1. Bao nhiu b nh s c gn2. Mi n v d liu c lu tr u trong b nh.

    Trc y, cc lp trnh vin(LTV)phi vit chng trnh theo ngn ng my

    gm cc m 1 v 0. Nu mun lu tr mt gi tr tm thi, v tr chnh xc ni m dliu c lu tr trong b nh my tnh phi c ch nh. V tr ny l mt con s cth, gi l a ch b nh.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    20/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 20/92

    Cc ngn ng lp trnh hin i cho php chng ta s dng cc tn tng trnggi l bin (variable), ch n mt vng b nh ni m cc gi tr c th c lu tr.

    Kiu d liu quyt nh tng s b nh c ch nh. Nhng tn c gn chobin gip chng ta s dng li d liu khi cn n.

    Chng ta quen vi cch s dng cc k t i din trong mt cng thc. V

    d, din tch hnh ch nht ctnh bi :Din tch = A = chiu di x chiu rng = L x B

    Cch tnh li sut n gin c cho nh sau:Tin li = I = S tin ban u x Thi gian x T l/100 = P x T x R /100

    Cc k t A, L, B, I, P, T, R l cc bin v l cc k t vit tt i din cho ccgi tr khc nhau.

    Xem v d sau y :Tnh tng im cho 5 sinh vin v hin th kt qu. Vic tnh tng c thc

    hin theo hng dn sau.

    Hin th gi tr tng ca 24, 56, 72, 36 v 82Khi gi tr tng c hin th, gi tr ny khng cn c lu trong b nh my

    tnh. Gi s, nu chng ta mun tnh im trung bnh, th gi tr tng phi c tnhmt ln na.

    Tt hn l chng ta s lu kt qu vo b nh my tnh, v s ly li n khi cnn.

    sum = 24 + 56 + 72 + 36 + 82

    y, suml binc dng cha tng ca 5 s. Khi cn tnh im trungbnh, c th thc hin nh sau:

    Avg = sum / 5Trong C, tt c bin cn phi c khai bo trc khi dng chng.

    V d3.5:Nhp hai s v hin th tng ca chng

    BEGINDISPLAY Enter 2 numbersINPUT A, BC = A + BDISPLAY C

    END

    A, B v C trong on m trn l cc bin. Tn bin gip chng ta trnh phi nha ch ca v tr b nh. Khi on m c vit v thc thi, h iu hnh m nhimvic cp khng gian nh cn trng cho nhng bin ny. H iu hnh nh x mt tn

    bin n mt v tr xc nh trong b nh ( nh). V tham chiu ti mt gi tr ringbit trong b nh, chng ta ch cn ch ra tn ca bin. Trong v d trn, gi tr ca haibin c nhp t ngi dng v chng c lu tr ni no trong b nh. Nhngv tr ny c th c truy cp thng qua cc tn bin A v B. Trong bc k tip, gitr ca hai bin c cng v kt qu c lu trong bin th 3 l bin C. Cui cng,gi tr bin C c hin th.

    C php khai bo bin(trc khi s dng):

    kiu_d_liu tn_bin_1 = gi_tr_ban_u_1,

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    21/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 21/92

    tn_bin_2 = gi_tr_ban_u_2,;

    Nu trong khai bo bin ta khng dng = gi_tr_ban_uth gi tr ban uca bin l mt gi tr ngu nhin (ty thuc vo gi tr hin ti ca nh c cp

    pht cho bin).

    V d3.6: Mt s khai bo binint tong_tien, to_trong_tui, to_vua_lay, uscln, a, b;float dtich_hcn, dtich_hvuong, tong_dtich, cdai, crong, canh;char xep_loai, chuc_vu;color mau_nen, mau_chu;cac_ngay ngay_lam_viec;

    Cc khai bo bin sai (tha, thiu du , hoc thiu du ;) thng gp:

    int tong_tien, ;float dtich_hcn dtich_hvuong;char xep_loai, chuc_vu

    3.6. HngTrong trng hp ta dng bin, gi tr c lu s thay i. Mt bin tn ti t

    lc khai bo n khithot khi phm vi dng n. Nhng cu lnh trong phm vi khim ny c th truy cp gi tr ca bin, v thm ch c th thay i gi tr ca bin.Trong thc t, i khi cn s dng mt vi khon mc m gi tr ca chng khng baogi b thay i.

    Mt hng l mt gi tr khng bao gi b thay i. V d, 5l mt hng, m gitr ton hc lun l 5 v khng th b thay i bi bt c ai. Tng t, Blackl mthng, n biu th cho mu en. Khi , 5 c gi l hng s (numeric constant),Black cgi l hng chui(string constant).

    Tn khai bo hng (thng c vit hoa) tun theo qui tc t tn bin. Cchng c khai bo trc khi s dng, theo hai cch sau:

    #define tn_hng gi_tr

    hoc const kiu_d_liu tn_hng = gi_tr;

    V d3.7: Mt s khai bo hng#define PI 3.1416#define EPSILON 0.000001#define GIAY_TREN_GIO 3600#define GIAY_TREN_PHT 60#define KY_TU a

    hoc:

    const float PI = 3.1416;const float EPSILON = 0.000001;

    const unsigned int GIAY_TREN_GIO = 3600;const unsigned int GIAY_TREN_PHT = 60;const char KY_TU = a;

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    22/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 22/92

    Cc khai bo hng sai:

    #define PI 3.1416;const float PI = 3.1416, EPSILON= 0.000001;

    do: a) khng c du ; sau khai bo hng bng t kha #define, b) khng th khai bo

    cng lc nhiu hng.

    Bngsau trnh by mt s hng s v hng k t:

    Cch vit Gi tr Cch vit Gi tr

    \' K t ' \0 K t \0 (null)

    \" K t " \t K t Tab

    \\ K t \ \b K t Backspace

    \n K t \n (xung dng) \141K t a: m ASCIIl 97 i sang h bt

    phn (h 8) l (141)8

    0345S 229 (biu din trong h 8l 345, 229 = 3*82+ 4*81 + 5)

    1234L S nguyn long 1234

    0xA5S 165 (biu din trong h 16l A5, 165 = A*161+ 5; vi Al 10, B l 11, .., F l 15)

    1.5e+23 1.5 * 1023

    3.7. Ton t

    3.7.1. Ton t s hcCc php ton s hc hai ngi l:Php ton ngha V d

    + Php cng a+b- Php tr a-b* Php nhn a*b

    / Php chia a/b( Chia s nguyn s cht phn thp phn ) % Php ly phn d a%b

    ( Cho phn d ca php chia a cho b )C php ton mt ngi -,v du -(a+b) s o gi tr ca php cng (a+b). V d 3.8:

    11/3 = 311%3 = 2-(2+6) = -8

    Cc php ton + v - c cng th t u tin, c th t u tin nh hn cc php * , / , %

    v c ba php ny li c th t u tin nh hn php tr mt ngi.Cc php ton shc c thc hin t tri sang phi.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    23/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 23/92

    3.7.2. Ton t gnTon t gn (=) l ton t thng dng nht cho mi ngn ng. Trong C, ton t gn cth c dng cho bt k biu thc C hp l. Dng thc chung cho ton t gn l:

    = ;Gn lin tip

    Nhiu bin c th c gn cng mt gi tr trong mt cu lnh n. Vic ny thc hinqua c php gn lin tip. V d:

    a = b = c =10;

    Dng m trn gn gi tr 10 cho a, b,v c. Tuy nhin, vic ny khng th thc hin lckhai bo bin. V d,

    int a = int b = int c= 0;

    Cu lnh trn pht sinh li v sai c php.

    3.7.3. Ton t tng gimC a ra hai php ton mt ngi tng v gim cc bin (nguyn v thc). Ton t

    tng l ++ s cng 1 vo ton hng ca n, ton t gim -- th s tr ton hng i 1.V d 3.9:n=5++n Cho ta n=6--n Cho ta n=4

    Ta c th vit php ton ++ v -- trc hoc sau ton hng nh sau : ++n, n++, --n, n--.S khc nhau ca ++n v n++ ch : trong php n++ th tng sau khi gi tr ca n c s dng, cn trong php ++n th n c tng trc khi s dng. S khc nhaugia n-- v --n cng nh vy.V d 3.10:

    n=5x=++n Cho ta x=6 v n=6x=n++ Cho ta x=5 v n=6

    3.7.4. Ton t quan h

    Trong C s dng cc php ton quan h:Php ton ngha V d

    > So snh ln hn a>b4>5 c gi tr 0

    >= So snh ln hn hoc bng a>=b6>=2 c gi tr 1

    < So snh nh hn a

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    24/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 24/92

    Cc php ton quan h c s th t u tin thp hn so vi cc php ton s hc,cho nn biu thc:

    i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    25/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 25/92

    4 + - Tri qua phi5 > Tri qua phi6 < >= Tri qua phi7 == != Tri qua phi8 & Tri qua phi9 ^ Tri qua phi10 | Tri qua phi11 && Tri qua phi12 || Tri qua phi13 ?: Phi qua tri14 = += -= *= /= %= = &= ^= |= Phi qua tri15 , Tri qua phi

    Ch thch

    Cc php ton tn mt dng c cng th t u tin, cc php ton hng trn cs u tin cao hn cc s hng di.

    i vi cc php ton cng mc u tin th trnh t tnh ton c th t tri quaphi hay ngc li c ch ra trong ct trnh t kt hp.Chuyn i kiu gi tr

    Vic chuyn i kiu gi tr thng din ra mt cch t ng trong hai trnghp sau :

    Khi gn biu thc gm cc ton hng khc kiu. Khi gn mt gi tr kiu ny cho mt bin ( hoc phn t mng ) kiu khc. iu

    ny xy ra trong ton t gn, trong vic truyn gi tr cc tham s thc s cho cc i.Ngoi ra, ta c th chuyn t mt kiu gi tr sang mt kiu bt k m ta mun

    bng php chuyn sau :(type)

    V d 3.11:(float) (a+b)

    Chuyn i kiu trong biu thc :

    Khi hai ton hng trong mt php ton c kiu khc nhau th kiu thp hn sc nng thnh kiu cao hn trc khi thc hin php ton. Kt qu thu cl mtgi tr kiu cao hn. Chng hn :

    Gia int v long th int chuyn thnh long.Gia int v float th int chuyn thnh float.

    Gia float v double th float chuyn thnh double.V d 3.12:1.5*(11/3) = 4.51.5*11/3 = 5.5(11/3)*1.5 = 4.5

    Chuyn i kiu thng qua php gn

    Gi tr ca v phi c chuyn sang kiu v tri l kiu ca kt qu. Kiu intc th c c chuyn thnh float. Kiu float c th chuyn thnh int do cht i phnthp phn. Kiu double chuyn thnh float bng cch lm trn. Kiu long c chuyn

    thnh int bng cch ct b mt vi ch s.V d 3.13:

    int n;

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    26/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 26/92

    n=15.6 gi tr ca n l 15i kiu dng (type)

    Theo cch ny, kiu ca biu thc c i thnh kiu type theo nguyn tctrn.V d 3.14: (int)a : cho mt gi tr kiu int. Nu a l float th y c s chuyn

    i t float sang int. Ch rng bn thn kiu ca a vn khng b thay i. Nicch khc, a vn c kiu float nhng (int)a c kiu int.

    i vi hm ton hc ca th vin chun, th gi tr ca i v gi tr ca hmu c kiu double, v vy tnh cn bc hai ca mt bin nguyn n ta phi dng phpp kiu chuyn kiu int sang double nh sau:

    sqrt((double)n)Php p kiu c cng s u tin nh cc ton t mt ngi.

    Ch :

    Mun c gi tr chnh xc trong php chia hai s nguyn cn dng php p kiu:((float)a)/b

    i gi tr thc r sang nguyn, ta dng :(int)(r+0.5)

    Ch th t u tin:(int)1.4*10=1*10=10(int)(1.4*10)=(int)14.0=14

    3.9. Cc lnh trong ngn ng C

    3.9.1. Lnh nhp/xutHu ht mi CT u cn d liu u vo v u ra. Thng thng d liu u voc nhp t bn phm v d liu u ra c xut ln mn hnh. Chng hn, trongCT gii phng trnh bc hai, gi tr cc h s a, b, c s c nhp vo t bn phmv kt qu nghim c xut ra mn hnh. Lnh nhp t bn phm l scanf, lnhxut ra mn hnh l printf, c c php nh sau:

    scanf (chui nh dng, danh sch a ch cc bin);

    printf (chui nh dng, danh sch cc biu thc);

    ly a ch ca bin, ta dng ton t & trc tn bin.

    Chui nh dng ca cu lnh nhp (khng cha khong trng v cc k t phn cch)c cu thnh t cc k t chuyn dng(mi k t chuyn dng lun c k hiu % trc)cho trongbng sau:

    K t Chuyn dng

    d S nguyn kiu int(s nguyn int)

    ld S nguyn long

    o S nguyn int h bt phn

    lo S nguyn long h bt phn

    c K t

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    27/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 27/92

    x S nguyn int h thp lc phn.

    lx S nguyn long h thp lc phn.

    f hoc e S thcfloat

    lf hoc le S thc double

    s Chui k t (khng cha: khong trng, tab, xung dng, )

    Cc k t chuyn dng trong bng sau v cc k t khc ( gip lm r ngha ca dliu xut) to ra chui nh dng cho cu lnh xut.

    K t Chuyn dng

    d S nguyn h thp phn c du

    u S nguyn h thp phn khng du

    o S nguyn h bt phn c du

    c K t

    x S nguyn h thp lc phn c du (cc k t trong h vit thng).

    X S nguyn h thp lc phn c du (cc k t trong h vit hoa).

    f S thc c du

    s Chui k t

    V d 3.15: on CT (a) nhp xut mt s nguyn, mt s thc v mt k t; (b)tnh tng v tch hai s thc a, b

    int i;

    float fp;

    char c;

    printf (\n\n Hay nhap mot: so nguyn, \t mot so

    thuc va \t mot ky tu. \n);

    scanf (%d%f%c", &i, &fp, &c);

    printf (Xuatra: so nguyen = %d \t, so thuc = %f

    \t, ky tu = %c, i, fp, c);

    int a, b;

    printf (a = ? ); scanf (%d, &a);

    printf (b = ? ); scanf (%d, &b);

    printf (%d + %d = %d.\n, a, b, a+b);

    printf (%d * %d = %d., a, b, a*b);

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    28/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 28/92

    3.9.2. Lnh phc(khi lnh)

    Lnh phc l tp cc cu lnh c nhm li thnh khi trong cp { v }.

    C php lnh phc:

    { cu_lnh_1;cu_lnh_N;

    }

    C th xem lnh phc l mt lnh duy nht. T y v sau khi vit lnh ta hiu

    l lnhn hay lnh phc; lnh gn, hay lnh iu khin.

    S lng nhau ca cc khi lnh v phm vi hot ng ca cc bin:

    Bn trong mt khi lnh li c th vit lng khi lnh khc. S lng nhau theocch nh vy l khng hn ch.

    Khi my bt u lm vic vi mtkhi lnh th cc bin khai bo bn trong nmi c hnh thnh v c cp pht b nh. Cc bin ny ch tn ti trong thi gianmy lm vic bn trong khi lnh v chng lp tc bin mt ngay sau khi my ra khikhi lnh. Vy:

    Gi tr ca mt bin khai bo bn trong mt khi lnh khng th a ra s dng bt k ch no bn ngoi khi lnh .

    bt k ch no bn ngoi mt khi lnh ta khng th can thip n cc bin vcc mng c khai bo bn trong khi lnh.

    Nu bn trong mt khi ta dng mt bin c tn l a th iu ny khng lm thayi gi tr ca mt bin khc cng c tn l a (nu c) c dng u bn ngoikhi lnh ny.

    Nu c mt bin c khai bo ngoi mt khi lnh v khng trng tn vicc bin khai bo bn trong khi lnh ny th bin cng c th s dng c bn trongcng nh bn ngoi khi lnh.V d 3.16:

    Xt on chng trnh sau:{

    Cc lnh iu khin

    Cu trctun t

    Lnhphc

    Lnh rnhnh

    Lnh lp

    if,if else

    switchcase

    for while dowhile

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    29/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 29/92

    int a=5, b=2;{

    int a=4;b = a+b;printf("\n a trong =%3d b=%3d",a,b);

    }printf("\n a ngoai =%3d b=%3d",a,b);

    }Khi on chng trnh s in kt qu nh sau :

    a trong =4 b=6a ngoi =5 b=6

    3.9.3. Lnh r nhnh

    3.9.3.1. Lnh r nhnh-n

    V d 3.17: Tm s ln nht trong hai s a, b

    Ta so snh hai on CT (A, B) tm s ln nht v nh nht trong ba s a, b, c.

    ng

    sai

    biu_thc Lnh

    C phpS

    if (biu_thc) Lnh;

    Nu biu_thc c gi tr ngth Lnh c thc hin.

    ngha

    ng

    sai

    so_lon < b so_lon = b;

    Cc cu lnhS

    so_lon = a;if (so_lon < b) so_lon = b;

    so_lon = a;

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    30/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 30/92

    Bi tp: Vit v so snh cc CT tm s ln nht v nh nht ca 4 s a, b, c, d theo haidng A, B.

    V d 3.18: CT tm im trung bnh ln nht ca hai hc sinh khi bit imTon, L ca tng hc sinh.Nhp im Ton, L ca hai hc sinh (Toan_1, Ly_1, Toan_2, Ly_2)

    Tnh im trung bnh ca hai hc sinh (TB_1, TB_2) [xem v d 2.8]

    Xc nh im trung bnh ln nht (TB_Lon_Nhat) ca TB_1, TB_2 [xem V d3.17]

    #include #define HESOTOAN 3#define HESOLY 2int main(int argc, char* argv[]) {

    float Toan_1, Ly_1, TB_1, Toan_2, Ly_2, TB_2, TB_Lon_Nhat;printf (Diem Toan, Ly cua cac hoc sinh);scanf (%f%f%f%f, &Toan_1, &Ly_1, &Toan_2, &Ly_2);

    TB_1 = (Toan_1*HESOTOAN+Ly_1*HESOLY) / (HESOTOAN + HESOLY);TB_2 = (Toan_2*HESOTOAN+Ly_2*HESOLY) / (HESOTOAN + HESOLY);

    TB_Lon_Nhat = TB_1;

    // A

    if (b

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    31/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 31/92

    if (TB_Lon_Nhat < TB_2) TB_Lon_Nhat = TB_2;printf( Diem trung binh lon nhat = %f, TB_Lon_Nhat);getch (); return 0;

    }

    T v d 3.17v 3.18, ta thy rng, gii quyt mt bi ton trong thc t (thngphc tp) cn phi p dng chin lc chia tr chia bi ton thnh cc bi toncon, gii cc bi ton con , ri tng hp chng li (xem chng 5).

    3.9.3.2. Lnh r nhnh-i

    V d 3.19: Kim tra 3 s a, b, c c phi l 3 cnh ca tam gic khng ?

    Bi tp: Cho a, b, c l 3 cnh ca mt tam gic. Hy cho bit l tam gic g (thng,vung, cn, vung cn hayu)?

    else mc nh c gn vi i f (cha c else) gn nht. Xt 3 on CT c vit bi

    3 LTV C, D, E:

    ng

    sai

    biu_thc Lnh_A

    C php S if (biu_thc) Lnh_A;else Lnh_B;

    Lnh_B

    nghaNu biu_thc c gi tr ngth Lnh_A c thc hin,ngc li (biu_thc c gi trsai) th Lnh_Bc thc hin.

    ng

    sai

    (a + b > c) && (a + c

    > b) && (c + b > a)printf (3 so %d,%d, %d la 3 canh

    tam giac., a, b, c);

    Cu lnh

    S

    if ((a + b > c) && (a + c > b) && (c + b > a))printf (3 so %d, %d, %d la 3 canh tam giac., a, b, c);

    else printf (3 so %d, %d, %d khong la 3 canh tam giac., a, b, c);

    printf (3 so %d, %d, %d khongla 3 canh tam giac., a, b, c);

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    32/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 32/92

    C C, D, E u mun lnh a = a + 1 thc hin khi a >= 5. on ca C thc hinkhng ng v else c hiu vi if gn nht, cn on ca D (dng lnh phc tch else ra khi i f gn vi n), v E l ng.

    Trong nhiu trng hp cc lnh if lng nhau c th c n gin ha bng phpton && (v). Chng hn, nn thay if (a < 5) if (a > 1)bng if ((a < 5) && (a > 1)).

    Khi phi xt nhiu trng hp c chung iu kin, nn dng cc lnh if lng nhau CT hiu qu v trong sng hn (thy r s phn cp cc trng hp).

    V d 3.20: So snh 3 on CT F, G,Hxc nh xp loi hc sinh (Loai) datrn im trung bnh (DTB)theo quy nh: G (gii) nu 8.0 DTB 10.0, K(kh) nu 6.5 DTB 8.0, T (trung bnh) nu 5.0 DTB 6.5, Y (yu) nu0.0 DTB 5.0.

    S php so snh caFln hn ca G: xc nh ln lt xp loi Y, T, K, G, Gcn 1, 2, 3, 3 php so

    snh. S php so snh trung bnh l 9/4. xc nh xp loi, Flun tin hnh 4 php so snh. S php so snh

    trung bnh l 4 (ln hn 9/4).

    H(hiu qu bng) nhng trong sng hn Gv ta thy r s phn cp cctrng hp.

    // C

    if(a < 5)if (b < 10 )

    a = b + 1;

    else

    a = a + 1;

    // D

    if (a < 5) {i f (b < 10 )

    a = b + 1;}

    else a = a + 1;

    // E

    if (a >= 5)a = a + 1;

    else // a < 5if (b < 10 )

    a = b + 1;

    // H

    if (DTB

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    33/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 33/92

    V d3.21: CT gii phng trnh bc hai ax2+ bx + c = 0, a, b, c l cc s thc. #include #include "math.h"int main(int argc, char* argv[]){

    float a, b, c, delta, x1, x2, so_nghiem;

    printf (Nhap cac he so a, b, c. \n);scanf ( %f%f%f, &a, &b, &c);delta = (b* b)4 * a * c;if (delta < 0)

    so_nghiem = 0;else {

    if (delta > 0) {x1 = (-b + sqrt(delta)) / (2 * a); // (1)x2 = (-bsqrt (delta)) / (2 * a); // (2)

    }else

    x1 = x2 = (-b) / (2 * a);so_nghiem = 2;

    }if (so_nghiem == 0) printf (Vo nghiem);else printf (Nghiem cua phuong trinh la: %f, %f., x1, x2);getch (); return 0;

    }

    3.9.3.3. Lnh tam phn:

    C php:

    (biu_thc ? biu_thc_1 : biu_thc_2);

    Hm sqrt tnh cn bc 2cha trong th

    vin math.h.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    34/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 34/92

    sai

    ng

    ng

    sai

    ng

    Gii phng trnh bc 2:aT2+ bT + c = 0

    so_nghiem

    = 0

    t1 0ng

    x1,2=

    1

    t

    c_x1,2= 1

    sai

    t2 0 ng x3, 4=2t

    c_x3, 4= 1

    c_x1, 2= 0

    sai

    c_x3, 4= 0

    t1 0 hoc t2 0

    t1 0

    sai

    Xut vnghim

    Xut cc nghim l

    Xut x1,2

    ngt2 0

    sai

    Xut x3, 4

    S thut ton gii phng trnh trng phng

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    35/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 35/92

    ngha: nu biu_thc ng kt qu ca lnh tam phn l gi tr ca biu_thc_1,ngc li kt qu ca lnh tam phn l gi tr ca biu_thc_2.

    Chng hn:

    1)so_lon = (a > b ? a : b);dng tm s ln nht trong hai s a, b

    2)

    Loi = (DTB < 5.0 ? Y : (DTB < 6.5 ? T : (DTB < 8.0 ? K : G))));dng tnh xp loi hc sinh da vo im trung bnh (xem v d 3.20).

    Lnh r nhiu nhnh:

    C phpswitch (biu_thc_nguyn){

    case gi_tr_1:Lnh_1;

    break;

    case gi_tr_N:

    Lnh_N;break;

    default:Lnh_N_1; // Lnh N + 1

    break;

    }

    ngha

    Thc thi Lnh_inubiu_thc_nguyn ckt qu l gi_tr_i (i =1.. N).

    Nu kt qu khngthuc {gi_tr_1, ..,gi_tr_N} thLnh_N_1 c thchin.

    Ch : cc gi tr

    quyt nh (gi_tr_1, ..,gi_tr_N) cng phi lgi tr nguyn.

    Lnh_N_1;

    S

    GTbiu_thc_nguyn

    GT =

    gi_tr_1

    saiGT =

    gi tr N

    sai

    ng

    Lnh_N;Lnh_1;

    ng

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    36/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 36/92

    V d3.22: Tnh lng nhn vin da vo chc v. Thut ton tnh lng nhnvin (Lng) da vo chc v cv theo bng dng cu trc r nhiu nhnh

    switch (cv){

    case G: luong = 3; break;case T: luong = 2; break;default: luong = 1; break;

    }

    Trong switch c th khng c default. V d, on CT i mt ch s (chu_so) rat ting Anh tng ng:

    switch (chu_so){

    case 0: printf (Zero); break;case 1: printf (One); break;case 2: printf (Two); break;case 3: printf (Three); break;case 4: printf (Four); break;

    case 5: printf (Five); break;case 6: printf (Six); break;case 7: printf (Seven); break;case 8: printf (Eight); break;case 9: printf (Nine); break;

    }

    Bi tp: vit lnh tnh ton +, -, *, / ging my tnh b ti.

    Trong case c th khng c break. Chng hn, nu khng c break case 1, khi

    chy on CT vi chu_sobng 1ta c kt qu l One Two. L do l, sau khi thchin printf (One);my tnh chuyn xung thc hin printf (Two); tng ngvi case 2. Tn dng c im ny, ta c mt th hin khc ca lnh r nhiu nhnh.

    Khiu

    ngha Lng

    G Gim c 3

    TTrngphng

    2

    KhcChc v

    khc1

    SaiSai

    ng

    cv =G

    Lng3

    Sai

    ng

    cv =T

    Lng2 Lng1

    cv (Chc v ca nhn vin)

    Lng

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    37/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 37/92

    Chng hn ta c on lnh tnh s ngy ca mt thng trong nm:

    switch (thang) {case 1: case 3: case 5: case 7: case 8: case 10: case 12:so_ngay = 31; break;

    case 4: case 6: case 9: case 11:so_ngay = 30; break;

    case 2:if (((nam % 4 == 0) && (nam % 100 != 0)) || (nam % 400 == 0))

    so_ngay = 29; // nm nhunelse so_ngay = 28;

    break;

    }

    Bi tp: Vit CT kim tra ba s a, b, c c phi l ngy thng nm ca mt ngy no trong nm hay khng?

    3.9.4. Lnh lp

    C cung cp ba lnh lp for, while v do while biu din cc cu trc lp xc nh vkhng xc nh.

    C php

    for (bthc_khi_u; bthc_iu_kin; bthc_bc_nhy)Lnh;

    while (bthc_iu_kin)Lnh;

    doLnh;

    while (bthc_iu_kin);

    C phpswitch (biu_thc_nguyn){

    case gt_i1: case gt_ij: case gt_imi:

    Lnh_i;break;default:

    Lnh_N_1; // Lnh N + 1break;

    }

    nghaThc thi Lnh_inubiu_thc_nguync kt qu l gt_ij (j= 1.. mi).

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    38/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 38/92

    Lu hot ng

    Lu hot ng ca for

    Bt u

    Tnh bthc_khi_u

    Tnh bthc_iu_kin

    bthc_iu_kin

    Kt thc

    Tnh bthc_bc_nhy

    Thc hinLnhng

    Sai

    Bt u

    Tnh bthc_iu_kin

    bthc_iu_kin

    Kt thc

    Thc hinLnhng

    Lu hot ng ca dowhile

    Bt u

    bthc_iu_kinTnh bthc_iu_kin

    ngThc hinLnh

    Kt thc

    Sai

    Lu hot ng ca while

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    39/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 39/92

    Biu din cc cu trc lp bng cc lnh lp for, while, do while:

    Gi Lnh l dy thao tc cn lp, ta c th biu din cc cu trc lp (xc nh vkhng xc nh) bng cc lnh lp for, while, do .. while.

    Lp xc nh: bit trc s ln lp.

    Lp khng xc nh: khng bit (kh tnh) s ln lp.

    Hot ng ca cu trc lp xc-nh

    (trong : N l s ln lp, i l ch s ca bc lp hin ti).

    Hot ng ca cu trc lp khng xc nh.

    Th hin cu trc lp xc nh N (N > 1) ln:

    for( i =1; i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    40/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 40/92

    V d3.23: Tnh tng gi tr 10 t tin

    V d 3.24: Tnh tng S = 1 + 3 + 5 + .. + (2M 1) vi M > 1 cho trc

    Trong v d 3.24ta thy lnh i++. l cch vit gn ca lnh i = i + 1.

    S = 0;for( i =1; i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    41/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 41/92

    C cho php ta vit tt cc lnh gn c dng

    tn_bin=tn_binton_tbiu_thc;

    thnh

    tn_bin ton_t=biu_thc;

    Bngsau trnh by mt s kiu vit tt cc lnh gn

    Lnh gn Vit tt Lnh gn Vit tt Lnh gn Vit tt

    x = x + y; x += y; x = xy; x -= y; x = x * y; x *= y;

    x = x / y; x /= y; x = x% y; x %= y; i = i-1; i--;

    V d 3.25: Xut ra cc s t 5 n 20 v 10 cu C++

    Th hin cu trc lp khng xcnh

    n mt thi im hu hn, Lnhphi lm cho iu_kin_dngc tha mn.Nu khng vng lp s n v hn.

    for ( ; ! iu_kin_dng ; )

    Lnh; do { Lnh;} while (! iu_kin_dng);

    while(! iu_kin_dng)Lnh;

    for( i =5; i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    42/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 42/92

    V d 3.26: Tm c s chung ln nht ca hai s a, bThut ton tm c s chung ln nht (USCLN) ca hai s nguyn a, b dng cu

    trc lp khng-xc-nh.

    Khi s dng lnh lp do..while, ta phi ch : do..while thc hin ln lp u tintrc khi kim tra iu kin dng. Chng hn, on CT vit bng do..while trong vd trn l sai khi a bng b. V sao?, hy sa li cho ng, bi tp.

    V d 3.27: Thc hin php chia nguyn a cho b bng cc php trThut ton chia a cho b ly thng bng cc php tr dng cu trc lp khng

    xc nh

    a bng

    Sai a abThuongThuong + 1

    Thuong0a, b

    Thuong

    a = bSai

    ng

    b ba

    a, b

    USCLN

    USCLNa

    a > b

    ng

    Sai

    a ab

    Sai

    for( ; a != b ; )if (a > b) a = ab;else b = ba;

    USCLN = a;

    do {if (a > b) a = ab;else b = ba;

    } while (!(a == b));

    USCLN = a;

    // on CT ny sai ? V sao ?

    while(a != b)

    if (a > b) a = ab;else b = ba;

    USCLN = a;

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    43/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 43/92

    Cu lnh break v continue

    Lnh break v continue thngc lng trong mt lnh if bn trong thn ca vng

    lp nhm lm tng tnh linh hot ca n: a) break: ngt vng lp gia chng.; b)continue: b qua cc lnh (trong thn vng lp) cn li bn di, tnhbthc_bc_nhy ch khi lnh lp l for, chuyn sang bc lp k tip nubthc_iu_kin ng.

    V d3.28: Tnh tng cc s dng trong N s nguyn nhp vo

    S = 0; i = 1;while (i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    44/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 44/92

    Trong hai on CT trn

    V sao?

    V d3.29:Kim tra tnh nguyn t ca s nguyn p > 1. Thut ton kim tra tnh nguyn t ca s nguyn p dng cu trc lp khng-xc-nh

    sai

    ng

    S = 0; i= 1;

    Ni

    S += so

    scanf (%d, &so);i++;

    saing

    0so

    sai

    ng

    S = 0

    i = 1Ni

    S += so

    scanf (%d, &so);

    sai ng

    0so

    i ++

    ng

    ng

    Sai

    Sai

    ng

    chia_het = sai v i < p

    p

    p khng nguyn t

    chia_hetsai

    i 2

    chia_het = sai

    p nguyn t

    DS d caphp chia p chia i

    D = 0

    chia_hetng

    Sai

    ii + 1

    if (so

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    45/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 45/92

    Nu thay if (i = = p) printf (Nguyen to);else printf (Khong nguyen to);

    trong on CT trn thnh if (!chia_het) printf (Nguyen to);else printf (Khong nguyen to);

    th kt qu cn ng khng? Ti sao ?

    Bi tp: dng lnh for, while vit li on CT trn v so snh chng.

    chia_het = 0; i = 2;do {

    if (p % i == 0) {chia_het = 1; break;

    }

    i++; // Thay i++ bng else i++c khng? tisao?} while(i < p);

    if (i = = p) printf (Nguyen to);else printf (Khong nguyen to);

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    46/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 46/92

    BI TP CHNG 3

    I. V LU

    1) Nhp vo hai s x, y. Xut ra mn hnh tng, hiu, tch, thng ca hai s trn.

    2)

    Nhp vo s nguyn n, kim tra xem n chn hay l v xut ra mn hnh.3) Nhp vo ba cnh a, b, c ca tam gic. Xut ra mn hnh tam gic thuc loi

    tam gic g (Thng, cn, vung, u hay vung cn).4)

    Nhp vo s nguyn n. Xut ra n mn hnh (Nu n chn th gp i gi tr).5) Nhp vo s nguyn n. Nu n>5 th tng n ln 2 n v v tr v gi tr n, ngc

    li tr v gi tr 0.6) Tnh n!, vi n 0.7)

    m s lng c s chn ca s nguyn dng n.8) In ra ch s u tin ca s nguyn dng n gm k ch s.9) Cho 2 s nguyn dng a, b. T m USCLN ca a v b.

    10)

    Cho 2 s nguyn dng a, b. T m BSCNN ca a v b.11) Cho s nguyn dng x. Kim tra xem x c phi l s nguyn t khng?12) Cho s nguyn dng x. Kim tra x c phi l s chnh phng khng?13)

    Cho s nguyn dng x. Kim tra xem x c phi l s hon thin khng?

    II. CC KHI NIM C BN

    1) Vitchng trnh in ra mn hnh cu:Xin chao tat ca cac ban!

    Toi ten la Le Ngoc Mai

    2)

    Vit chng trnh nhp s liu t bn phm v hin kt qu trn mn hnh cho ccd liu kiu nguyn, thc v chui.

    3)

    Vit chng trnh nhp vo tn ca 5 ngi, sau xut ra mn hnh tn 5 ngi, mi tn nm trn 1 dng khc nhau.

    4) Vit chng trnh tnh ph cp cho nhn vin 1 cng ty theo yu cu sau:- Nhp tn ngi c tnh ph cp- Nhp s ngy lm vic trong thng, h s ph cp- Xut ra mn hnh nhng thng tin sau:Ong/Ba: ?So ngay lam viec trong thang: ?

    He so phu cap: ?So tien duoc nhan: ?Cng thc tnh s tin c nhn l:

    S ngy lm trong thng * 15000 + h s ph cp * 3000in y thng tin vo cc du ?

    5)

    Vit chng trnh i mt snguyn h10 sang h2.6) Vit chng trnh i mt snguyn h10 sang h16.7) Vit chng trnh c v2 snguyn vin ra kt quca php (+),php tr(-),

    php nhn (*), php chia (/).Nhn xt kt quchia 2 snguyn.8) Vit chng trnh nhp vo chiu di v chiu rng hnh ch nht . Tnh v

    in ra mn hnh chu vi,din tchhnh ch nht.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    47/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 47/92

    9) Vit chng trnh nhp vo bn knh hnh cu. Tnh v in ra mn hnh din tch,thtch ca hnh cu .

    Hng dn: S = 4R2 vV = (4/3) R3.10)

    Vit chng trnh nhp vo mt s a bt k v in ra gi trbnh phng (a2),lp phng (a3) ca a vgitra4.

    III. CU TRC R NHNH

    1) Nhp vo mt s nguyn dng, in ra thng bo l s chn hay l2)

    Nhp vo 4 s nguyn, in ra s nguyn ln nht.3) Vit chng trnh gii phng trnh bc 2: ax2 + bx + c = 0, vi a, b, c nhp vo

    t bn phm.Hng dn: Nhp vo 3 bin a, b, c. Tnh Delta = b*b - 4*a*c

    Nu Delta < 0 th

    Phng trnh v nghimNgc liNu Delta = 0 th

    x1 = x2 = - b/(2*a)Ngc li

    x1 = (- b - sqrt(Delta))/(2*a)x2 = (- b + sqrt(Delta))/(2*a)

    Ht NuHt Nu

    4)

    Vit chng trnh nhp vo gi pht giy (hh:mm:ss). Cng thm s giy nhp

    vo v in ra kt qu di dng hh:mm:ss.Hng dn: Nhp vo gi pht giy vo 3 bin gio, phut, giay v nhp v giycng thmvo bin them:

    Nu giay + them < 60 thgiay = giay + them

    Ngc ligiay = (giay + them) - 60

    phut = phut + 1Nu phut >= 60 th

    phut = phut - 60

    gio = gio + 1Ht nu

    Ht nu5) Vit chng trnh nhp vo thng, in ra thng c bao nhiu ngy.

    Hng dn: Nhp vo thngNu l thng 1, 3, 5, 7, 8, 10, 12 th c 30 ngyNu l thng 4, 6, 9, 11 th c 31 ngyNu l thng 2 v l nm nhun th c 29 ngy ngc li 28 ngy(Nm nhun l nm chia chn cho 4)

    6) Vit chng trnh nhp vo 2 s x, y v1 trong 4 ton t +, -, *, /. Nu l + th in

    ra kt qu x + y, nu l th in ra x y, nu l * th in ra x * y, nu l / th in ra x /y (nu y = 0 th thng bo khng chia c)

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    48/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 48/92

    7) Vit chng trnh nhp vo 3 gi tr nguyn dng a, b, c. Kim tra xem a, b, c cphi l 3 cnh ca tam gic khng? Nu l 3 cnh ca tam gic th tnh din tchca tam gic theo cng thc sau:

    S = p * (p a) * (p b) *(p c) , vi p l 1/2 chu vi ca tam gic.Hng dn: a, b, c l 3 cnh ca tam gic phi tha iu kin sau:

    (a + b) > c v (a + c) > b v (b + c) > a

    IV. CU TRC LP

    1)

    Vit chng trnh tnh tng bc 3 ca N s nguyn u tin.2) Vit chng trnh nhp vo mt s nguyn ri in ra tt c cc c s ca s . 3) Vit chng trnh tm USCLN, BSCNN ca 2 s.4)

    Vit chng trnh tnh tng nghch o ca N s nguyn u tin theo cng thcS = 1 + 1/2 + 1/3 + + 1/N

    5) Vit chng trnh tnh tng bnh phng cc s l t 1 n N.

    6)

    Vit chng trnh nhp vo N s nguyn, tm s ln nht, s nh nht.7)

    Vit chng trnh nhp vo N ri tnh giai tha ca N.8) Vit chng trnh v mt tam gic cn bng cc du *9)

    Vit chng trnh v mt tam gic cn rng bng cc du *.10) Vit chng trnh v hnh ch nht rng bng cc du *.11) Vit chng trnh nhp vo mt s v kim tra xem s c phi l s nguyn t

    hay khng? (S nguyn t l s ch c 2 c s: 1 v chnh n)12) Vit chng trnh tnh s hng th n ca dy Fibonaci.

    Dy Fibonaci l dy s gm cc s hng F(n) vi:F(n) = F(n-1) + F(n-2) vi n>2 v F(1) = F(2) = 1

    Dy Fibonaci s l: 1 1 2 3 5 8 13 21 34 55 89 14413) Vit chng trnh lp li nhiu ln cng vic nhp mt k t v in ra m ASCIIca k t , khi no nhp s 0 th dng.

    14) Vit chng trnh tm c s chung ln nht v bi s chung nh nht ca 2 snguyn.

    15)

    Vit chng trnh tnh dn s ca mt thnh ph sau 10 nm na, bit rng dn shin nay l 6.000.000, t l tng dn s hng nm l 1.8% .

    16) Vit chng trnh tm cc s nguyn gm 3 ch s sao cho tch ca 3 ch s bngtng 3 ch s. V d: 1*2*3 = 1+2+3.

    17)

    Vit chng trnh tm cc s nguyn a, b, c, d khc nhau trong khong t 0 ti 10

    tha mn iu kin a*d*d = b*c*c*c18) Vit chng trnh gii bi ton c in sau:Trm tru, trm cTru ng n nmTru nm n ba,

    Ba tru gi n mtHi mi loi tru c bao nhiu con.

    19)

    Vit chng trnh gii bi ton c in sau:Va g va ch 36 con

    B li cho trn, m 100 chn

    Hi c bao nhiu g, bao nhiu ch20)

    Vit chng trnh in ra bng cu chng21)

    Vit chng trnh tm cc s nguyn t t 2 n N, vi N c nhp vo.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    49/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 49/92

    CHNG 4LP TRNH VI D LIU C CU TRC

    4.1. Mng mt chiu

    4.1.1. nh ngha v khai boMng mt chiu l dy cc thnh phn (phn t) cng kiu d liu c quan h vi nhau,chng hn: mng s nguyn (thc, k t) cha cc thnh phn c kiu s nguyn (sthc, k t).

    C ch trang b php ton truy cp n tng thnh phn ca mng, LTV phi t thit kcc thao tc trn kiu d liu mng.

    nh ngha kiu mng mt chiu, ta dng t kha typedef:

    typedef kiu_phn_t tn_kiu_mng [kch_thc_kiu_mng];

    khai bo mt bin mng (bien_mang) c kiu mng (tn_kiu_mng):tn_kiu_mng bien_mang;

    Mi phn t ca mng l mt bin c kiu_phn_t. Cc phn t ca mng c nhs th t t 0 n kch_thc 1. truy cp n phn t th i (i phi c kiunguyn), ta dng c php:

    tn_bin_mng [i]

    Hnh 4.1 ch ra mng s nguyn c cha 12 phn t: c[0], c[1], .., c[11]. Gi tr cachng ln lt l: -45, 6, 0, 72, 1543, -89, 0, khai bo c, trc ht ta nh ngha

    kiu mng nguyn (mang_nguyen) c kch thc ln hn hoc bng 12, sau khaibo c thuc kiu mang_nguyen. typedef int mang_nguyen[100];

    mang_nguyen c;

    Mng c cha 99 phn t, nhng ta ch s dng 12 phn t u tin. Do , ta phi duytr thm bin n_c (c gi tr l 12) ch ra s phn t ang s dng: int n_c;

    Hnh 4.1 Mng s nguyn c cha 12 phn t

    Phn t th 4ca c

    S th t ca phnt tron c

    Gitr

    Mng c

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    50/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 50/92

    C th khai bo trc tip c nh sau:

    int c[12];

    V d 4.1: to mng d cha 10 s thc 0.0 v xut d ra mn hnh

    typedef float mang_thuc[100]; // (1)

    mang_thuc d; // (2)int n_d = 10; // s phn t d ang s dng (3)

    for (int i=0; i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    51/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 51/92

    #include #define KICH_THUOC 100typedef int mang_nguyen [KICH_THUOC];

    int main()

    mang_nguyen a; int n, n_y, tong = 0;

    //Nhp mngprintf (\n Nhap so phan tu cua mang : );scanf (%d, &n_y);for (int i=0 ; i < n_y; i++)

    printf (\n Nhap phan tu thu %d:, i);scanf (%d, &y[i]);

    //Xut mngfor (int i=0 ; i < n_y; i++)

    printf (\t%d, y[i]);

    //Tnh tngfor (int i=0 ; i < n_y; i++)

    tong = tong + y[i];printf (\n Tong cac phan tu trong mang la: %d, tong);getch (); return 0;

    tng cc phnt ca y (tong)

    s phnt ca y

    (n_y)

    Nhp mng

    Mng y vi ccgi tr ca cc

    phn t chac xc nh y vi cc gi tr

    ca cc phn tc nhp vot bn phm

    Xut mng

    Tnh tng ccphn t ca

    mng

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    52/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 52/92

    4.1.2. Cc thao tctrn mng mt chiu

    Cc thao tc thng gp trn mng l tm v tr ca phn t ln nht (nh nht),tm v tr xut hin ca phn t trong mng, sp xp mng (tng dn hoc gim dn).

    Trong mc ny, chng ta s phn tch v ci t chng thnh cc hm. Khng

    mt tng qut ta s thao tc trn mng s nguyn (mang_nguyen).4.1.2.1 Tm phn t ln nht trong mng

    u vo: Mng a0, a1, .., aN-1.

    u ra: LonNhat = max {a0, a1, .., aN-1}.

    Hnh4.2: Thut ton tm phn t ln nht trong mt mng.

    Gi tr l gi tr v hn khng th biu din trong my tnh (hu hn). Ta nhngha hng VoCung mang gi tr b nht m my tnh (NNLT) hiu c, chng hn: l-2,147,483,648 nu a1, a2, .., aN l cc s nguyn c lu tr bi kiu s nguyn ln cdu; l -1.7*10-308nu a1, a2, .., aN l cc s thc c lu tr bi kiu s thc ln.

    phm vi s dng ln hn, ta s tm v tr ca phn t ln nht trong mng con{a[dau], .., a[cuoi]} ca mng a. Ci t nh sau:

    mang_nguyen a; int vt_ln = dau;

    for (int j=dau+1; j a[vt_ln]) vt_ln = j;

    Bi tp: Vit chng trnh tm v tr ca phn t nh nht trong mng con {a[dau], ..,a[cuoi]} ca mng a.

    4.1.2.2 Sp xpmngtng

    u vo: Mng a0, a1, .., an-1.u ra: Mng c sp xp tng dn.

    a0, a1, .., aN-1

    LonNhat

    LonNhat

    i 0

    i < N

    ng

    LonNhat < ai

    ng

    LonNhat ai

    Sai

    Sai

    ii+ 1

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    53/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 53/92

    C nhiu thut ton sp xp mng, y ta ch tm hiu thut ton i ch trc tip(Interchange Sort).

    Khi nim nghch th

    Xt mt mng cc s a[0], a[1], a[n-1] Nu c i a[j], th ta gi l mt nghch th

    Mng cha sp xp s c nghch th Mng c th t s khng cha nghch tha[0] a[1] a[n -1]

    Nhn xt

    sp xp mt dy s, ta c th xt cc nghch th c trong dy v lmtrit tiudn chng i

    tng

    Xut pht t u dy, tm tt c nghch th cha phn t ny, trit tiuchng bng cch i ch phn t ny vi phn t tng ng trong cpnghch th

    Lp li x l trn vi cc phn t tip theo trong dyThut ton

    // input: mng(a, n)// output: mng(a, n) c sp xptng dnBc 1: i = 0; // bt u t u dyBc 2: j = i+1;Bc 3: Trong khi j < n thc hin:

    Nu a[i]>a[j] th i ch a[i], a[j] j = j+1;

    Bc 4: i = i+1;

    Nu (i < n-1): Lp li Bc 2 Ngc li: Dng

    Ci t

    for (int i=0 ; i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    54/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 54/92

    Hnh 4.3: Thut ton tm kim v tr ca phn t trong mng.Ci t:

    mang_nguyen a; int i = 0, vt, X;

    while (i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    55/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 55/92

    Khai bo mng hai chiu:

    TnKiuMngHaiChiu tn_bin;

    C th khai bo trc tip (v t gi tr ban u) mng hai chiu tng t trong trnghp mng mt chiu.

    V d 4.3:Mt s khai bo mt mng hai chiu v nghaint b[2][2] = { { 1, 2 }, { 3, 4 } };

    b c 2 dng v hai ct (dng 0 cha cc s nguyn 1, 2; dng 1 cha cc snguyn 3, 4).

    int b[2][2] = { { 1 }, { 3, 4 } };

    b[0][0] = 1, b[0][1] = 0, b[1][0] = 3 v b[1][1] = 4.

    int b[2][3] = { 1, 2, 3, 4, 5 };

    b[0][0] = 1, b[0][1] = 2, b[0][2] = 3, b[1][0] = 4, b[1][1] = 5, v b[1][2] = 0.

    Trong thc t, mng hai chiu c nhiu ng dng: ci t cc thao tc, php ton trnma trn; ci t cu trc bng dng trong quy hoch ng,

    4.2.2. Cc thao tc trn mng nhiu chiu

    V d 4.8: Mt s thao tc (c vit di dng m gi) trn ma trn thc nhp,xut, tnh tng v tch ca hai ma trn thc; kim tra ma trn tam gic trn.

    nh ngha kiu ma trn thc:typedef float ma_tran_thuc [100][100];

    Nhp ma trn a, s dng m, s ct nfor (i=0; i

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    56/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 56/92

    Mng 3 chiu l mng m mi phn t l mt mng 2 chiu. Trong thc t, mng bachiu t c s dng. V d 4.9 minh ha thao tc trn mng 3 chiu bng CT to sinhmt mng 3 chiu ngu nhin v xut ra mn hnh.

    V d 4.9:Mt phn CT sinh v xut ramt mng 3 chiu ngu nhin

    #include #include "stdlib.h" // Cha cc hm: srand, rand#include "time.h" // Ly thi gian h thng

    typedef int mang_2chieu[10][10];typedef mang_2chieu mang_3chieu[10];

    // hoc thay 2 dng typedef trn y bng typedef int mang_3chieu[10][10][10];

    int main(){

    mang_3chieu a; int m, n, o;// Khi to b sinh s ngu nhin (mi ln chy CT mi khc): ht ging ca// b sinh s ph thuc vo thi gian ca h thng.srand(time(0));

    //Sinh mng 3 chiu ngu nhinm = rand() % 10; n = rand() % 10; o = rand() % 10;for (int i = 0 ; i < m ; i++)

    for (int j = 0 ; j < n ; j++)for (int k = 0 ; k < o ; k++)

    a[i][j][k] = rand()%100;

    //Xut mng 3 chiufor (int i = 0 ; i < m ; i++) {

    printf ("\n\n[%d]", i);for (int j = 0 ; j < n ; j++) {

    printf("\n");for (int k = 0 ; k < o ; k++) printf ("%3d", a[i][j][k]);

    }}

    getch (); return 0;}

    4.3. Chui k t

    4.3.1. nh ngha vkhai bo

    Chui k t l mng mt chiu cc k t. qun l chui k t ta khng lu s kt c trong chui m dng k t null (\0: k t rng) nh du ht chui.Chng hn, vichui "Infoworld" th sc lu tr nh sau:

    I n f o w o r l d \0

    K t kt thc chui

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    57/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 57/92

    C php khai bo:

    char [Chiu di ti a];char [] = ;

    Ghi ch: Chiu di ti a ca bin chui l mt hng nguyn nm trong

    khong t 1 n 255 bytes.V d4.10:Mt s lnh nh ngha kiu chui, khai bo chui

    Khai bo ngha

    char s1[] = hello; Khai bo chui s1 cha 5 k t theo tht: h, e, l, l, o, \0.

    char s2[20]; Khai bo chui s2 c th cha 20 k t(tnh lun c k t \0). Cc k t hin ctrong s3 l cc k t ngu nhin, s2 chac k t \0 cui.

    char s3[] = {h, e, l, l, o, \0}; Khai bo chui s3 cha 5 k t theo tht: h, e, l, l, o, \0.

    typedef char chuoi[10]; nh ngha kiu chui c th cha 10 kt.

    chuoi s4; Khai bo chui s4 c th cha 10 k t.

    4.3.2. Cc thao tc trn chuik t

    Cc thao tc nhp/xut (I/O) chui trong C c thc hin bng cch gi cc hm. Cc

    hm ny l mt phn ca th vin nhp/xut chun tn stdio.h. Mt chng trnh muns dng cc hm nhp/xut chui phi c cu lnh khai bo sau u chng trnh:

    #include ;

    Khi chng trnh c cha cu lnh ny c bin dch, th ni dung ca tp tin stdio.hs tr thnh mt phn ca chng trnh.

    4.3.2.1. Thao tc nhp/xut chui

    Cc thao tc nhp/xut chui n gin

    S dng hm gets()l cch n gin nht nhp mt chui thng qua thit bnhp chun. Cc k t s c nhp vo cho n khi nhn phm Enter. Hm gets()thay

    th k t kt thc tr v u dng \n bng k t \0. C php hm ny nh sau:

    gets(str);

    Trong strlmt mng k t c khai bo.

    Tng t, hm puts()c s dng hin th mt chui ra thit b xut chun.K t xung dng s kt thc vic xut chui. C php hm nh sau:

    puts(str);

    Trong strl mt mng k t c khai bo v khi to. Chng trnh sauy nhn vo mt tn v hin th mt thng bo.

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    58/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 58/92

    V d 4.11: Chng trnh nhp v hin th mt tn

    #include

    #include

    int main()

    {

    char name[20];/* name is declared as a single dimensional character

    array */

    clrscr(); /* Clears the screen */

    puts("Enter your name:"); /* Displays a message */

    gets(name); /* Accepts the input */

    puts("Hi there: ");

    puts(name); /* Displays the input */

    getch();

    return 0;

    }

    Nu tn Lisa c nhp vo, chng trnh trn cho ra kt qu:

    Enter your name:

    Lisa

    Hi there:

    Lisa

    Cc thao tc nhp/xut chui c nh dng

    C th s ng cc hm scanf()v printf() nhp v hin th cc gi tr chui.Cc hm ny c dng nhp v hin th cc kiu d liu hn hp trong mt culnh duy nht. C php nhp mt chui nh sau:

    scanf(%s, str);

    Trong k hiu nh dng %s cho bit rng mt gi tr chui s c nhpvo. strl mt mng k t c khai bo. Tng t, hin th chui, c php s l:

    printf(%s, str);

    Trong k hiu nh dng %scho bit rng mt gi tr chui s c hin thv str l mt mng k t c khai bo v khi to. Hm printf() c th dng hin th ra cc thng bo m khng cn k t nh dng.

    C th sa i chng trnh v d 4.11 bn trn nhp vo v hin th mttn, s dng hm scanf() v printf().

    V d 4.12

    #include

    #include int main()

    {

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    59/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 59/92

    char name[20];

    clrscr();

    printf("Enter your name: ");

    scanf(%s, name);

    printf("Hi there: %s", name);

    getch();

    return 0;}

    Nu nhp vo tn Brendan, chng trnh trn cho ra kt qu:

    Enter your name: Brendan

    Hi there: Brendan

    Lu :

    Khng cn s dng ton t a ch & trong name trong lnh scanf("%s",name), v bn thn name l a ch.

    Dnghmscanf nhpchui chnchnhsau: Khi thli chng trnhtrn vi d liu nhp vo l Mai Lan, nhng khi in ra bn ch nhn cMai. Vhmscanf nhn vo dliu nkhi gp khong trng th kt thc.

    i vi hm puts k t kt thc chui null (\0) c thay th bng k tnewline (\n). Hm gets v puts ch c 1 i s v khng s dng dng thctrong nhp liu cng nh xut ra mn hnh.

    4.3.2.2. Cc hm vchui

    C h tr rt nhiu hm v chui. Cc hm ny c th tm thy trong tp tinstring.h. Mt s thao tc m cc hm ny thc hin l:

    Ni chui So snh chui nh v mt k t trong chui Sao chp mt chui sang chui khc Xc nh chiu di ca chui.

    Hm strcat()

    Hm strcat()c s dng ni hai chui vo nhau. C php hm l:

    strcat(str1, str2);

    trong str1v str2l hai chui c khai bo v khi to. Hm ny s thchin ni chui str2vo sau chui str1

    Chng trnh sau y nhn vo h v tn,ni chng vi nhau v hin th ra htn y .

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    60/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 60/92

    V d 4.13:

    #include

    #include

    #include

    int main(){

    char firstname[15];

    char lastname[15];

    clrscr();

    printf("Enter your first name: ");

    scanf("%s", firstname);

    printf("Enter your last name:");

    scanf("%s", lastname);

    strcat(firstname, lastname);

    /* Attaches the contents of lastname at the end of

    firstname */

    printf("%s", firstname);

    getch();

    return 0;

    }

    Kt qu ca chng trnh trn c minh ha nh sau:Mt mu xut ra mn hnh ca chng trnh trn s l:

    Enter your first name: Carla

    Enter your last name: Johnson

    CarlaJohnson

    Hm strcmp()

    Vic so snh hai chuis (bng nhau hay khng bng nhau) c th thc hinbng cch s dng cc ton t quan h. Tuy nhin, so snh hai chui k t, phi dngmt hm. Hm strcmp()so snh hai chui vi nhau v tr v mt s nguyn ph thucvo kt qu so snh. C php ca hm strcmp()nh sau:

    strcmp(str1, str2);

    trong str1v str2l hai chui c khai bo v khi to.Hm tr v gitr:

    Nh hn 0 nu str1str2

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    61/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 61/92

    Chng trnh sau y so snh bin name1 vi cc bin name2, name3, name4 vhin th kt qu ca php so snh:

    V d 4.14:

    #include

    #include

    #include

    int main()

    {

    char name1[15] = "Geena";

    char name2[15] = "Dorothy";

    char name3[15] = "Shania";

    char name4[15] = "Geena";

    int i;

    clrscr();

    i = strcmp(name1,name2);

    printf("%s compared with %s returned %d\n", name1,

    name2, i);

    i=strcmp(name1, name3);

    printf("%s compared with %s returned %d\n", name1,

    name3, i);

    i=strcmp(name1,name4);printf("%s compared with %s returned %d\n", name1,

    name4, i);

    getch();

    }

    Kt qu ca chng trnh trn c minh ha nh sau:

    Geena compared with Dorothy returned 3Geena compared with Shania returned -12

    Geena compared with Geena returned 0

    Lu :gi tr tr v trong mi php so snh v d trn. l s khc nhau v mASCII ca hai k t khc nhau u tin tm thy trong hai chui.

    Hm strchr()

    Hm strchr()xc nh v tr xut hin ca mt k t trong mt chui. C php

    hml:

    strchr(str, chr);

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    62/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 62/92

    trong str l mt mng k t hay chui. chr l mt bin k t cha gi tr cntm. Hm tr v con tr tr n gi tr tm c u tin trong chui, hoc NULL nukhng tm thy.

    Chng trnh sau y xc nh liu k t a c xut hin trong tn hai thnh ph

    hay khng.

    V d 4.15:

    #include

    #include

    #include

    int main()

    {

    char str1[15] = "New York";

    char str2[15] = "Washington";

    char chr = 'a', *loc;

    clrscr();

    loc = strchr(str1, chr);

    /* Checks for the occurrence of the character value

    held by chr in the first city name */

    if(loc != NULL)

    printf("%c occurs in %s\n", chr, str1);

    else

    printf("%c does not occur in %s\n", chr, str1);

    loc = strchr(str2, chr);

    /* Checks for the occurrence of the character in the

    second city name */

    if(loc != NULL)

    printf("%c occurs in %s\n", chr, str2);

    elseprintf("%c does not occur in %s\n", chr, str2);

    getch();

    return 0;

    }

    Kt qu ca chng trnh trn c minh ha nh sau:

    a does not occur in New York

    a occurs in Washington

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    63/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 63/92

    Hm strcpy()

    Trong C khng c ton t no x l mt chui nh l mt n v duy nht. Vvy, php gn mt gi tr chui ny cho mt chui khc i hi phi s dng hmstrcpy(). C php hm l:

    strcpy(str1, str2);

    trong str1v str2l hai mng k t c khai bo v khi to. Hm saochp gi tr str2vo str1v tr v chui str1.

    Chng trnh sau y minh ha vic s dng hm strcpy(). N thay i tn camt khch sn v hin th tn mi.

    V d 4.16:

    #include

    #include #include

    int main()

    {

    char hotelname1[15] = "Sea View";

    char hotelname2[15] = "Sea Breeze";

    clrscr();

    printf("The old name is %s\n", hotelname1);

    strcpy(hotelname1, hotelname2);

    /*Changes the hotel name*/

    printf("The new name is %s\n", hotelname1);

    /*Displays the new name*/

    getch();

    return 0;

    }

    Kt qu ca chng trnh trn c minh ha nh sau:

    The old name is Sea View

    The new name is Sea Breeze

    Hm strlen()

    Hm strlen() tr v chiu di ca chui. Chiu di ca chui rt hay c sdng trong cc vng lp truy cp tng k t ca chui. C php ca hm l:

    strlen(str);

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    64/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 64/92

    trong strl mng k t c khai bo v khi to. Hm tr v chiu dica chui str.

    Chng trnh sau y a ra v d n gin s dng hm strlen(). N tm chiudi ca tn mt cng ty v hin th tn cng ty vi cc k t c phn cch nhau

    bi k t *.

    V d 4.17:

    #include

    #include

    #include

    int main()

    {

    char compname[20] = "Microsoft";

    int len, ctr;

    clrscr();

    /* Determines the length of the string */

    len = strlen(compname);

    /* Accesses and displays each character of the

    string*/

    for(ctr = 0; ctr < len; ctr++)

    printf("%c * ", compname[ctr]);

    getch();

    return 0;

    }

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    65/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 65/92

    BI TP CHNG 4

    I. MNG MT CHIU

    a.Nhp xut mng mt chiu

    1.

    Vit chng trnh nhp xut mng mt chiu cc s thc.2.

    Vit chng trnh khi to gi tr cc phn t l 0 cho mng mt chiu cc s nguyngm n phn t.3.Vit chng trnh pht sinh ngu nhin mng mt chiu cc s nguyn m.4.

    Vit chng trnh pht sinh ngu nhin mng mt chiu cc s nguyn sao cho mngc th t tng dn (Khng sp xp).5.Vit chng trnh nhp mng cc s thc v xut cc phn t m trong mng.6.

    Vit chng trnh nhp mng cc s nguyn v xut cc phn t l c trong mng.7.Vit chng trnh nhp vo mng mt chiu cc s nguyn v xut ra cc phn t

    chn nh hn 20.8.

    Vit chng trnh nhp vo mng mt chiu cc s nguyn v xut ra mn hnh ccphn t

    l s nguyn t.9.

    Vit chng trnh nhp vo s nguyn n v lit k cc s nguyn t nh hn n, numng khng tn ti s nguyn t no nh hn n th phi xut ra mt cu thng bo.10.Vit chng trnh nhp vo mng mt chiu cc s nguyn v xut ra mn hnh cc

    phn t l schnh phng nm ti nhng v tr l trong mng.

    b.Tm kim trn mng mt chiu11.

    Vit hm tm v tr phn t c gi tr x xut hin cui cng trong mng.12.

    Vit hm tm v tr ca phn t nh nht trong mng cc s nguyn.13.Vit hm tm v tr ca phn t ln nht trong mng cc s nguyn.14.Vit hm in v tr cc phn t nguyn t trong mng cc s nguyn.15.

    Vit hm in v tr cc phn t nguyn t ln hn 23.16.Vit hm tm v tr phn t m u tin trong mng. Nu khng c phn t m trv 1.17.

    Vit hm tm v tr phn t m ln nht trong mng.18.Vit hm tm v tr phn t duong u tin trong mng. Nu khng c phn t mtr v 1.

    19.

    Vit hm tm v tr phn t duong b nht trong mng.20.

    Vit hm in cc phn t l bi ca 3 v 5.21.Vit hm tm s chn cui cng c trong mng, nu khng tn ti s chn hm trv -1 .22.Vit hm tm s l ln nht c trong mng, nu khng tn ti s l hm tr v -1.23.Vit hm tm v di ch phn t ln nht vi phn t nh nht trong mng.24.

    Nhp vo X. Vit hm in ra mn hnh nhng phn t c gi tr t 1 dn X c trongmng.25.Vit chng trnh nhp vo mt dy s a gm n s thc (n

  • 7/23/2019 __BaiGiang TinHocDaiCuong 37.pdf

    66/92

    Bi ging Tin hc i cng Khoa Cng ngh thng tin

    Trang 66/92

    c.m Tn sut26.

    Vit hm m cc phn t m, dng trong mng.27.Vit hm m cc phn t chn, l trong mng.28.Vit hm m s ln xut hin ca phn t x trong mng.29.Vit hm m cc phn t nh hn x trong mng.

    30.

    Vit hm m cc phn t l s nguyn t trong mng.31.

    Vit hm m cc phn t l s hon thin trong mng.32.Vit hm m cc phn t l bi ca 3 v 5 trong mng cc s nguyn.

    d.Tnh tng Trung bnh c diu kin33.

    Vit hm tnh tng cc phn t chn trong mng. 34.Vit hm tnh tng cc phn t l trong mng cc s nguyn. 35.Vit hm tnh tng cc phn t nguyn t trong mng.36.Vit hm tnh tng cc phn t nm v tr chn trong mngcc s nguyn.37.

    Vit hm tnh tng cc phn t nm v tr nguyn t trong mng.

    38.

    Vit hm tnh tng cc phn t chia ht cho 5 c trong mng. 39.Vit hm tnh tng cc phn t cc i trong mng cc s nguyn (phn t cc il phn t ln hn cc phn t xung quanh n).

    V d : 1 52 63 51 8640.Vit hm tnh tng cc phn t cc tiu trong mng cc s nguyn ( phn t cctiu l phn t nh hn cc phn t xung quanh n ).V d : 6 4 29 5 37 15 8

    41.Vit hm tnh tng cc phn tl bi ca 3 v 5 trong mng