__baigiang tinhocdaicuong 37.pdf
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