Unformatted Document Excerpt
Coursehero >>
Other International >>
Hanoi University of Technology >>
PFC 101
Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
trnh Gio Lp trnh C cn bn
Trang 1
MC LC
BI 1 : NGN NG LP TRNH & PHNG PHP LP TRNH............................................ 8 1.1 Mc tiu.................................................................................................................................. 8 1.2 L thuyt................................................................................................................................. 8 1.2.1 Ngn ng lp trnh (Programming Language)............................................................. 8 1.2.1.1 Thut gii (Algorithm)............................................................................................. 8 1.2.1.2 Chng trnh (Program).......................................................................................... 8 1.2.1.3 Ngn ng lp trnh (Programming language)........................................................ 9 1.2.2 Cc bc lp trnh.......................................................................................................... 9 1.2.3 K thut lp trnh........................................................................................................... 9 1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trnh nhp-x l-xut) ..........9 1.2.3.2 S dng lu (Flowchart).................................................................................. 10 BI 2 : LM QUEN LP TRNH C QUA CC V D N GIN............................................ 13 2.1 Mc tiu................................................................................................................................. 13 2.2 Ni dung................................................................................................................................ 13 2.2.1 Khi ng v thot BorlandC...................................................................................... 13 2.2.1.1 Khi ng................................................................................................................ 13 2.2.1.2 Thot......................................................................................................................... 14 2.2.2 Cc v d n gin........................................................................................................ 14 2.2.2.1 V d 1...................................................................................................................... 14 2.2.2.2 V d 2...................................................................................................................... 16 2.2.2.3 V d 3...................................................................................................................... 17 2.2.2.4 V d 4...................................................................................................................... 17 BI 3 : CC THNH PHN TRONG NGN NG C................................................................ 20 3.1 Mc tiu................................................................................................................................. 20 3.2 Ni dung................................................................................................................................ 20 3.2.1 T kha........................................................................................................................... 20 3.2.2 Tn................................................................................................................................... 20 3.2.3 Kiu d liu................................................................................................................... 21 3.2.4 Ghi ch............................................................................................................................ 21 3.2.5 Khai bo bin................................................................................................................. 21 3.2.5.1 Tn bin................................................................................................................... 21 3.2.5.2 Khai bo bin.......................................................................................................... 21 3.2.5.3 Va khai bo va khi gn.................................................................................... 22 3.2.5.4 Phm vi ca bin.................................................................................................... 22 BI 4 : NHP / XUT D LIU............................................................................................... 24
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 2
4.1 Mc tiu................................................................................................................................. 24 4.2 Ni dung................................................................................................................................ 24 4.2.1 Hm printf...................................................................................................................... 24 4.2.2 Hm scanf....................................................................................................................... 27 4.3 Bi tp................................................................................................................................... 28 BI 5 : CU TRC R NHNH C IU KIN...................................................................... 30 5.1 Mc tiu................................................................................................................................. 30 5.2 Ni dung................................................................................................................................ 30 5.2.1 Lnh v khi lnh......................................................................................................... 30 5.2.1.1 Lnh......................................................................................................................... 30 5.2.1.2 Khi lnh................................................................................................................. 30 5.2.2 Lnh if............................................................................................................................ 30 5.2.2.1 Dng 1 (if thiu)...................................................................................................... 30 5.2.2.2 Dng 2 (if )......................................................................................................... 34 5.2.2.3 Cu trc else if......................................................................................................... 37 5.2.2.4 Cu trc if lng....................................................................................................... 41 5.2.3 Lnh switch.................................................................................................................... 46 5.2.3.1 Cu trc switch...case (switch thiu).................................................................... 46 5.2.3.2 Cu trc switch...case...default (switch )......................................................... 48 5.2.3.3 Cu trc switch lng............................................................................................... 51 5.3 Bi tp................................................................................................................................... 52 5.3.1 S dng lnh if.............................................................................................................. 52 5.3.2 S dng lnh switch...................................................................................................... 53 5.4 Bi tp lm thm.................................................................................................................. 54 BI 6 : CU TRC VNG LP............................................................................................... 55 6.1 Mc tiu................................................................................................................................. 55 6.2 Ni dung................................................................................................................................ 55 6.2.1 Lnh for.......................................................................................................................... 55 6.2.2 Lnh break..................................................................................................................... 60 6.2.3 Lnh continue................................................................................................................ 61 6.2.4 Lnh while...................................................................................................................... 61 6.2.5 Lnh do...while.............................................................................................................. 63 6.2.6 Vng lp lng nhau....................................................................................................... 65 6.2.7 So snh s khc nhau ca cc vng lp....................................................................... 66 6.3 Bi tp................................................................................................................................... 66 BI 7 : HM
69
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 3
7.1 Mc tiu................................................................................................................................. 69 7.2 Ni dung................................................................................................................................ 69 7.2.1 Cc v d v hm........................................................................................................... 69 7.2.2 Tham s dng tham bin v tham tr......................................................................... 72 7.2.3 S dng bin ton cc.................................................................................................. 73 7.2.4 Dng dn hng #define.............................................................................................. 75 7.3 Bi tp................................................................................................................................... 76 BI 8 : MNG V CHUI........................................................................................................ 76 8.1 Mc tiu................................................................................................................................. 76 8.2 Ni dung................................................................................................................................ 76 8.2.1 Mng............................................................................................................................... 76 8.2.1.1 Cch khai bo mng................................................................................................ 76 8.2.1.2 Tham chiu n tng phn t mng.................................................................. 77 8.2.1.3 Nhp d liu cho mng......................................................................................... 77 8.2.1.4 c d liu t mng............................................................................................. 77 8.2.1.5 S dng bin kiu khc........................................................................................ 78 8.2.1.6 K thut Sentinal.................................................................................................... 78 8.2.1.7 Khi to mng........................................................................................................ 79 8.2.1.8 Khi to mng khng bao hm kch thc......................................................... 80 8.2.1.9 Mng nhiu chiu.................................................................................................. 81 8.2.1.10 Tham chiu n tng phn t mng 2 chiu.................................................. 81 8.2.1.11 Nhp d liu cho mng 2 chiu......................................................................... 81 8.2.1.12 c d liu t mng 2 chiu.............................................................................. 81 8.2.1.13 S dng bin kiu khc trong mng 2 chiu................................................... 83 8.2.1.14 Khi to mng 2 chiu........................................................................................ 83 8.2.1.15 Dng mng 1 chiu lm tham s cho hm......................................................... 84 8.2.1.16 Dng mng 2 chiu lm tham s cho hm......................................................... 87 8.2.2 Chui............................................................................................................................... 89 8.2.2.1 Cch khai bo chui............................................................................................... 90 8.2.2.2 Hm nhp (gets), xut (puts) chui...................................................................... 90 8.2.2.3 Khi to chui........................................................................................................ 91 8.2.2.4 Mng chui............................................................................................................. 91 8.3 Bi tp................................................................................................................................... 93 BI 9 : CON TR
96
9.1 Mc tiu................................................................................................................................. 96 9.2 Ni dung................................................................................................................................ 96 9.2.1 Con tr?.......................................................................................................................... 96 9.2.2 Khi bo bin con tr................................................................................................... 96 9.2.3 Truyn a ch sang hm.............................................................................................. 97 9.2.4 Con tr v mng............................................................................................................ 98
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 4
9.2.5 Con tr tr n mng trong hm............................................................................... 98 9.2.6 Con tr v chui............................................................................................................ 99 9.2.7 Khi to mng con tr tr n chui..................................................................... 100 9.2.8 X l con tr tr n chui....................................................................................... 102 9.2.9 Con tr tr n con tr............................................................................................. 103 9.3 Bi tp................................................................................................................................. 104 BI 10 : CC KIU D LIU T TO.................................................................................... 106 10.1 Mc tiu............................................................................................................................. 106 10.2 Ni dung............................................................................................................................ 106 10.2.1 Structure..................................................................................................................... 106 10.2.1.1 Khai bo kiu structure...................................................................................... 106 10.2.1.2 Cch khai bo bin c kiu structure............................................................... 106 10.2.1.3 Tham chiu cc phn t trong structure.......................................................... 106 10.2.1.4 Khi to structure............................................................................................... 108 10.2.1.5 Structure lng nhau............................................................................................ 109 10.2.1.6 Truyn structure sang hm................................................................................ 110 10.2.2 Enum........................................................................................................................... 112 10.2.2.1 nh ngha kiu enum........................................................................................ 113 10.2.2.2 Cch khai bo bin c kiu enum..................................................................... 113 10.2.2.3 S dng enum trong chng trnh................................................................... 113 10.3 Bi tp............................................................................................................................... 115 BI 11 : TP TIN
116
11.1 Mc tiu............................................................................................................................. 116 11.2 Ni dung............................................................................................................................ 116 11.2.1 V d ghi, c s nguyn.......................................................................................... 116 11.2.2 Ghi, c mng............................................................................................................ 117 11.2.3 Ghi, c structure...................................................................................................... 118 11.2.4 Cc mode khc m tp tin.................................................................................. 119 11.2.5 Mt s hm thao tc trn file khc.......................................................................... 120 11.3 Bi tp............................................................................................................................... 120 BI 12 : QUY
121
12.1 Mc tiu............................................................................................................................. 121 12.2 Ni dung............................................................................................................................ 121 12.3 Bi tp............................................................................................................................... 124
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 5
BI 13 : TRNH SON THO CA BORLAND C................................................................... 125 13.1 M tp tin son tho mi............................................................................................... 125 13.2 Lu tp tin........................................................................................................................ 125 13.2.1 Nu l tp tin son tho mi cha lu.................................................................. 125 13.2.2 Nu l tp tin lu t nht 1 ln hoc c m bng lnh Open:.................126 13.3 M tp tin......................................................................................................................... 126 13.4 Cc phm, t hp phm thng dng............................................................................ 126 13.4.1 Cc phm di chuyn con tr..................................................................................... 126 13.4.2 Cc phm thao tc trn khi...................................................................................... 127 13.4.3 Cc thao tc xa.......................................................................................................... 127 13.4.4 Cc thao tc copy, di chuyn..................................................................................... 127 13.4.5 Cc thao tc khc....................................................................................................... 128 13.5 Ghi mt khi ra a......................................................................................................... 128 13.6 Chn ni dung file t a vo v tr con tr................................................................... 128 13.7 Tm kim vn bn trong ni dung son tho............................................................... 128 13.8 Tm v thay th vn bn trong ni dung son tho.................................................... 129 13.9 Sa li c php................................................................................................................. 129 13.10 Chy tng bc............................................................................................................. 130 13.10.1 Mi ln 1 bc........................................................................................................ 130 13.10.2 Ti lp li qu trnh g ri.................................................................................... 130 13.10.3 Dng ca s Watch.................................................................................................. 130 13.11 S dng Help (Gip )................................................................................................ 130 BI 14 : CC H M 132 14.1 Khi nim.......................................................................................................................... 132 14.2 Quy tc.............................................................................................................................. 132 14.3 Chuyn i gia cc h.................................................................................................. 133 14.3.1 Chuyn i gia h 2 v h 10............................................................................... 133 14.3.2 Chuyn i gia h 8 v h 10............................................................................... 134 14.3.3 Chuyn i gia h 16 v h 10............................................................................. 134 14.3.4 Chuyn i gia h 2 v h 16............................................................................... 135 BI 15 : BIU THC V PHP TON..................................................................................... 137 15.1 Biu thc........................................................................................................................... 137
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 6
15.2 Php ton........................................................................................................................... 137 15.2.1 Php ton s hc........................................................................................................ 137 15.2.2 Php quan h.............................................................................................................. 137 15.2.3 Php ton lun l....................................................................................................... 138 15.2.4 Php ton trn bit (bitwise)........................................................................................ 138 15.2.5 Cc php ton khc.................................................................................................... 139 15.2.6 u tin ca cc php ton................................................................................... 139 15.3 Bi tp............................................................................................................................... 139 BI 16 : MT S HM CHUN THNG DNG.................................................................. 141 16.1 Cc hm chuyn i d liu.......................................................................................... 141 16.1.1 atof............................................................................................................................... 141 16.1.2 atoi............................................................................................................................... 141 16.1.3 itoa............................................................................................................................... 141 16.1.4 tolower......................................................................................................................... 141 16.1.5 toupper........................................................................................................................ 141 16.2 Cc hm x l chui k t.............................................................................................. 142 16.2.1 strcat............................................................................................................................ 142 16.2.2 strcpy........................................................................................................................... 142 16.2.3 strcmp.......................................................................................................................... 142 16.2.4 strcmpi......................................................................................................................... 142 16.2.5 strlwr........................................................................................................................... 142 16.2.6 strupr........................................................................................................................... 142 16.2.7 strlen............................................................................................................................ 143 16.3 Cc hm ton hc............................................................................................................. 143 16.3.1 abs................................................................................................................................ 143 16.3.2 labs............................................................................................................................... 143 16.3.3 rand............................................................................................................................. 143 16.3.4 random........................................................................................................................ 143 16.3.5 pow............................................................................................................................... 143 16.3.6 sqrt............................................................................................................................... 143 16.4 Cc hm x l file............................................................................................................. 144 16.4.1 rewind.......................................................................................................................... 144 16.4.2 ftell............................................................................................................................... 144 16.4.3 fseek............................................................................................................................. 144
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 7
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 8
Bi 1 : NGN NG LP TRNH & PHNG PHP LP TRNH
1.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha, cc bc lp trnh. - Xc nh d liu vo, ra. - Phn tch cc bi ton n gin. - Khi nim so snh, lp. - Th hin bi ton bng lu . 1.2 L thuyt 1.2.1 Ngn ng lp trnh (Programming Language) Phn ny chng ta s tm hiu mt s khi nim cn bn v thut ton, chng trnh, ngn ng lp trnh. Thut ng "thut gii" v "thut ton" d nhin c s khc nhau song trong nhiu trng hp chng c cng ngha. 1.2.1.1 Thut gii (Algorithm) L mt dy cc thao tc xc nh trn mt i tng, sao cho sau khi th c hin m t s hu hn cc bc th t c mc tiu. Theo R.A.Kowalski th bn ch t ca thut gii: Thut gii = Logic + iu khin * Logic: y l phn kh quan trng, n tr l i cu h i "Thut gi i lm g, gi i quy t vn g?", nhng yu t trong bi ton c quan h vi nhau nh th no v.v... y bao gm nhng kin thc chuyn mn m bn phi bit c th tin hnh gii bi ton. V d 1: gii mt bi ton tnh din tch hnh cu, m bn khng cn nh cng thc tnh hnh cu th bn khng th vit chng trnh cho my gii bi ton ny c. * iu khin: Thnh phn ny tr li cu hi: gii thut phi lm nh th no?. Chnh l cch thc tin hnh p dng thnh phn logic gii quy t vn . 1.2.1.2 Chng trnh (Program) L mt tp hp cc m t, cc pht biu, nm trong mt h th ng qui c v ngha v th t thc hin, nhm iu khin my tnh lm vic. Theo Niklaus Wirth th: Chng trnh = Thut ton + Cu trc d liu Cc thut ton v chng trnh u c cu trc da trn 3 cu trc iu khin c bn: * Tun t (Sequential): Cc bc thc hin tun t mt cch chnh xc t trn xung, mi bc ch thc hin ng mt ln. * Chn lc (Selection): Chn 1 trong 2 hay nhiu thao tc thc hin. * Lp li (Repetition): Mt hay nhiu bc c thc hin lp li mt s ln. Mun tr thnh lp trnh vin chuyn nghip bn hy lm ng trnh t c thi quen tt v thun li sau ny trn nhiu mt ca mt ngi lm my tnh. Bn hy lm theo cc bc sau: Tm, xy dng thut gii (trn giy) vit chng trnh trn my
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 9
dch chng trnh chy v th chng trnh 1.2.1.3 Ngn ng lp trnh (Programming language)
Ngn ng lp trnh l h thng cc k hiu tun theo cc qui c v ng php v ng ngha, dng xy dng thnh cc chng trnh cho my tnh. Mt chng trnh c vit bng mt ngn ng lp trnh c th (v d Pascal, C...) gi l chng trnh ngun, chng trnh dch lm nhim v dch chng trnh ngun thnh chng trnh thc thi c trn my tnh. 1.2.2 Cc bc lp trnh Bc 1: Phn tch vn v xc nh cc c im. (xc nh I-P-O) Bc 2: Lp ra gii php. (a ra thut gii) Bc 3: Ci t. (vit chng trnh) Bc 4: Chy th chng trnh. (dch chng trnh) Bc 5: Kim chng v hon thin chng trnh. (th nghim bng nhiu s liu v nh gi) 1.2.3 K thut lp trnh 1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trnh nhp-x l-xut) Input Output
Quy trnh x l c bn ca my tnh gm I-P-O. Process
V d 2: Xc nh Input, Process, Output ca vic lm 1 ly nc chanh nng Input : ly, ng, chanh, nc nng, mung. Process : - cho hn hp ng, chanh, nc nng vo ly. - dng mung khuy u. Output : ly chanh nng sn sng dng. V d 3: Xc nh Input, Process, Output ca chng trnh tnh tin lng cng nhn thng 10/2002 bit rng lng = lng cn bn * ngy cng Input : lng cn bn, ngy cng Process : nhn lng cn bn vi ngy cng Output : lng V d 4: Xc nh Input, Process, Output ca chng trnh gii ph ng trnh b c nh t ax + b = 0 Input : h s a, b Process : chia b cho a Output : nghim x V d 5: Xc nh Input, Process, Output ca chng trnh tm s ln nht ca 2 s a v b. Input : a, b Process : Nu a > b th Output = a ln nht Ngc li Output = b ln nht
Bi tp
Xc nh Input, Process, Output ca cc chng trnh sau: 1. i t tin VND sang tin USD. 2. Tnh im trung bnh ca hc sinh gm cc mn Ton, L, Ha. 3. Gii phng trnh bc 2: ax2 + bx + c = 0
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 10
4. i t sang radian v i t radian sang (cng thc / = a/180, vi : radian, a: ) 5. Kim tra 2 s a, b ging nhau hay khc nhau. 1.2.3.2 S dng lu (Flowchart) d hn v quy trnh x l, cc nh lp trnh a ra d ng l u minh h a t ng bc qu trnh x l mt vn (bi ton). Hnh dng (symbol) Hnh ng (Activity) D liu vo (Input) X l (Process) D liu ra (Output) Quyt nh (Decision), s dng iu kin Lung x l (Flow lines) Gi CT con, hm... (Procedure, Function...) Bt u, kt thc (Begin, End) im ghp ni (Connector) V d 6: Chun b c ph Bt u C ph, nc si Ha c ph vo nc si B ng vo Khuy u hn hp C ph sn sng
Tai lieu tham khao
V d 7: M t v d 3 Bt u LCB, ngy cng Nhn LCB vi ngy cng Kt qu lng Kt thc
V d 8: M t v d 4 Bt u Gi tr a, b Chia b cho a Nghim x Kt thc
Kt thc
Gio trnh Lp trnh C cn bn
Trang 11
V d 9: Cng 2 s Bt u a, b c=a+b c Kt thc V d 11: Kim tra tnh hp l ca im Bt u im
V d 10: so snh 2 s Bt u S a, S b
S a c bng S b khng? C S a bng S b Kt thc
Khng
S a khng bng S b
V d 12: Xp lon vo thng Bt u
im >=0 v im <=10 ? C im hp l Kt thc
Khng
Thng = 0 Lon 1 Lon
im khng hp l
Thm 1 Lon vo thng Cha
V d 13: Kim tra loi s Bt u S im
Thng = 24 Lon? Bng Kt thc
V d 14: Kim tra tnh hp l ca S > 0 ? Khng S < 0 ? Khng S khng C S m Sai im >=0 v im <=10 ? ng Kt thc C S dng Bt u im
Tai lieu tham khao
Kt thc
Gio trnh Lp trnh C cn bn
Trang 12
Bi tp
V lu cho cc chng trnh sau: 1. i t tin VND sang tin USD. 2. Tnh im trung bnh ca hc sinh gm cc mn Ton, L, Ha. 3. Gii phng trnh bc 2: ax2 + bx + c = 0 4. i t sang radian v i t radian sang (cng thc / = a/180, vi : radian, a: ) 5. Kim tra 2 s a, b ging nhau hay khc nhau.
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 13
Bi 2 : LM QUEN LP TRNH C QUA CC V D N GIN
2.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - Ngn ng C. - Mt s thao tc c bn ca trnh son tho C. - Cch lp trnh trn C. - Tip cn mt s lnh n gin thng qua cc v d. - Nm bt c mt s k nng n gin. 2.2 Ni dung 2.2.1 Khi ng v thot BorlandC 2.2.1.1 Khi ng
Nhp lnh ti du nhc DOS: g BC (Enter) (nu ng dn c ci t bng lnh path trong c cha ng dn n th mc ch a tp tin BC.EXE). N u ng dn cha c ci t ta tm xem th mc BORLANDC nm a no. Sau ta g l nh sau: < a>:\BORLANDC\BIN\BC (Enter) Nu bn mun va khi ng BC va son tho chng trnh vi m t t p tin c tn do chng ta t, th g lnh: BC [ng dn]<tn file cn son tho> , nu tn file cn son tho c th c np ln, nu cha c s c to mi. Khi ng ti Windows: Bn vo menu Start, ch n Run, bn g vo h p Open 1 trong cc dng lnh nh nhp ti DOS. Hoc bn vo Window Explorer, ch n a ch a th m c BORLANDC, vo th mc BORLANDC, vo th mc BIN, kh i ng tp tin BC.EXE. V d: Bn g D:\BORLANDC\BIN\BC E:\BAITAP_BC\VIDU1.CPP Cu lnh trn c ngha khi ng BC v np t p tin VIDU1.CPP ch a trong th m c BAITAP_BC trong a E. Nu tp tin ny khng c s c to mi. Mn hnh sau khi khi ng thnh cng File Edit Search Run Compile Debug Project Option Window Help
[]
NONAME00.CPP Thanh Menu Tn tp tin S ca ca s Hp ni rng ca s
1 []
Hp ng
y l vng son tho chng trnh Tp tin cha lu Ta hng:ct
* 1:1
Thanh trt ngang
Thanh trt dc Thanh chc nng
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 14
F1 Help 2.2.1.2
F2 Save Thot
F3 Open
Alt - F9 Compile
F9 Make
F10 Menu
n phm F10 (kch hot Menu), chn menu File, chn Quit; Hoc n t hp phm Alt X. 2.2.2 Cc v d n gin 2.2.2.1 1 2 3 4 5 6 7 V d 1
Dng File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh in ra cau bai hoc C dau tien */ #include <stdio.h> void main(void) { printf("Bai hoc C dau tien."); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Bai hoc C dau tien. _ Dng th 1: bt u bng /* v kt thc bng */ cho bit hng ny l hng din gii (ch thch). Khi dch v chy chng trnh, dng ny khng c dch v cng khng thi hnh lnh g c. Mc ch ca vic ghi ch ny gip chng trnh r rng hn. Sau ny bn c li chng trnh bit chng trnh lm g. Dng th 2: cha pht biu tin x l #include <stdio.h>. V trong chng trnh ny ta s dng hm th vin ca C l printf, do bn cn phi c khai bo ca hm th vin ny bo cho trnh bin dch C bit. Nu khng khai bo chng trnh s bo li. Dng th 3: hng trng vit ra vi lm cho bng chng trnh thong, d c. Dng th 4: void main(void) l thnh phn chnh ca mi chng trnh C (bn c th vit main() hoc void main() hoc main(void)). Tuy nhin, bn nn vit theo dng void main(void) chng trnh r rng hn. Mi chng trnh C u bt u thi hnh t hm main. Cp du ngoc () cho bit y l khi hm (function). Hm void main(void) c t kha void u tin cho bit hm ny khng tr v gi tr, t kha void trong ngoc n cho bit hm ny khng nhn vo i s. Dng th 5 v 7: cp du ngoc mc {} gii hn thn ca hm. Thn hm b t u bng du { v kt thc bng du }. Dng th 6: printf("Bai hoc C dau tien.");, ch th cho my in ra chui k t nm trong nhy kp (""). Hng ny c gi l mt cu l nh, kt thc mt cu lnh trong C phi l du chm phy (;).
Ch :
thng. Cc t include, stdio.h, void, main, printf phi vit b ng ch Chui trong nhy kp cn in ra "Bn c th vit ch HOA, thng ty, ".
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 15
Kt thc cu lnh phi c du chm phy. Kt thc tn hm khng c du chm phy hoc bt c du g. Ghi ch phi t trong cp /* .... */. Thn hm phi c bao bi cp { }. Cc cu lnh trong thn hm phi vit tht vo.
Bn nhp on chng trnh trn vo my. Dch, chy v quan st kt qu.
Ctrl F9: Dch v chy chng trnh. Alt F5: Xem mn hnh kt qu.
Sau khi bn nhp xong on chng trnh vo my. Bn n v gi phm Ctrl, g F9
dch v chy chng trnh. Khi bn thy chng trnh ch p r t nhanh v khng th y k t qu g c. Bn n v gi phm Alt, g F5 xem kt qu, khi xem xong, bn n phm bt k quay v mn hnh son tho chng trnh.
By gi bn sa li dng th 6 bng cu lnh printf("Bai hoc C dau tien.\n");, sau
dch v chy li chng trnh, quan st kt qu.
Kt qu in ra mn hnh
Bai hoc C dau tien. _ dng bn va sa c thm \n, \n l k hiu xung dng s dng trong l nh printf. Sau y l mt s k hiu khc. + Cc k t iu khin: \n \t \r \a : Nhy xung dng k tip canh v ct u tin. : Canh ct tab ngang. : Nhy v u hng, khng xung hng. : Ting ku bip.
+ Cc k t c bit: \\ : In ra du \ \" : In ra du " \' : In ra du '
By gi bn sa li dng th 6 bng cu lnh printf("\tBai hoc C dau tien.\a\n");, sau
dch v chy li chng trnh, quan st kt qu.
Kt qu in ra mn hnh
Bai hoc C dau tien. _ Khi chy chng trnh bn nghe ting bip pht ra t loa.
Mi khi chy chng trnh bn thy rt bt tin trong vic xem kt qu phi n t
hp phm Alt F5. khc phc tnh trng ny bn sa li chng trnh nh sau:
Dng File Edit Search Run Compile Debug Project Option Window Help
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 16
1 2 3 4 5 6 7 8 9
/* Chuong trinh in ra cau bai hoc C dau tien */ #include <stdio.h> #include <conio.h> void main(void) { printf("\t\tBai hoc C \rdau tien.\n"); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
dau tien. _ Bai hoc C
Dng th 3: cha pht biu tin x l #include <conio.h>. V trong chng trnh ny ta s dng hm th vin ca C l getch, do bn cn phi c khai bo ca hm th vin ny bo cho trnh bin dch C bit. Nu khng khai bo chng trnh s bo li. Dng th 8: getch();, ch nhn 1 k t bt k t bn phm, nhng khng in ra mn hnh. V th ta s dng hm ny khi chy chng trnh xong s dng l i mn hnh k t qu, sau ta n phm bt k s quay li mn hnh son tho.
Bn nhp on chng trnh trn vo my. Dch, chy v quan st kt qu.
2.2.2.2 1 2 3 4 5 6 7 8 9 10 11 12 V d 2
Dng File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap va in ra man hinh gia tri bien*/ #include <stdio.h> #include <conio.h> void main(void) { int i; printf("Nhap vao mot so: "); scanf("%d", &i); printf("So ban vua nhap la: %d.\n", i); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao mot so: 15 So ban vua nhap la: 15. _ Dng th 7: int i; l lnh khai bo, mu t i gi l tn bin. Bin l mt v tr trong b nh dng lu tr gi tr no m chng trnh s ly s dng. M i bi n ph i thu c m t kiu d liu. Trong trng hp ny ta s dng bin i kiu s nguyn (integer) vit tt l int.
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 17
Dng th 9: scanf("%d", &i). S dng hm scanf nhn t ngi s dng mt tr no . Hm scanf trn c 2 i mc. i mc "%d" c gi l chui nh dng, cho bit loi d kin m ngi s dng s nhp vo. Chng hn, y phi nhp vo l s nguyn. i mc th 2 &i c du & i u gi l address operator, du & ph i h p v i tn bi n cho hm scanf bin em tr g t bn phm lu vo bin i. Dng th 10: printf("So ban vua nhap la: %d.\n", i);. Hm ny c 2 i mc. i mc th nht l mt chui nh dng c cha chui vn bn So ban vua nhap la: v %d (k hiu khai bo chuyn i dng thc) cho bit s nguyn s c in ra. i mc th 2 l i cho bi t gi tr ly t bin i in ra mn hnh.
Bn nhp on chng trnh trn vo my. Dch, chy v quan st kt qu.
2.2.2.3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 V d 3
Dng File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap vao 2 so a, b in ra tong*/ #include <stdio.h> #include <conio.h> void main(void) { int a, b; printf("Nhap vao so a: "); scanf("%d", &a); printf("Nhap vao so b: "); scanf("%d", &b); printf("Tong cua 2 so %d va %d la %d.\n", a, b, a+b); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so a: 4 Nhap vao so b: 14 Tong cua 2 so 4 va 14 la 18. _ Dng th 12: printf("Tong cua 2 so %d va %d la %d.\n", a, b, a+b);
Bn nhp on chng trnh trn vo my. Dch, chy v quan st kt qu.
2.2.2.4 V d 4
Dng File Edit Search Run Compile Debug Project Option Window Help
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 18
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* Chuong trinh nhap vao ban kinh hinh tron. Tinh dien tich */ #include <stdio.h> #include <conio.h> #define PI 3.14
void main(void) { float fR; printf("Nhap vao ban kinh hinh tron: "); scanf("%f", &fR); printf("Dien tich hinh tron: %.2f.\n", 2*PI*fR); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao ban kinh hinh tron: 1 Dien tich hinh tron: 6.28 _ Dng th 5: #define PI 3.14, dng ch th define nh ngha hng s PI c gi tr 3.14. Trc define phi c du # v cui dng khng c du chm phy. Dng th 12: printf("Dien tich hinh tron: %.2f.\n", 2*PI*fR);. Hm ny c 2 i mc. i mc th nht l mt chui nh dng c cha chui vn bn Dien tich hinh tron: v %.2f (k hiu khai bo chuyn i dng thc) cho bit dng s ch m ng s c in ra, trong .2 ngha l in ra vi 2 s l. i mc th 2 l biu thc hng 2*PI*fR;
Bn nhp on chng trnh trn vo my. Dch, chy v quan st kt qu.
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 19
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 20
Bi 3 : CC THNH PHN TRONG NGN NG C
3.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - Khi nim t kha - Cc kiu d liu - Cch ghi ch - t tn bin - Khai bo bin. - Phm vi s dng bin. 3.2 Ni dung 3.2.1 T kha T kha l t c ngha xc cc t kha sau: asm const else break continue enum case default extern cdecl do far char double float 3.2.2 Tn Khi nim tn rt quan trng trong qu trnh l p trnh, n khng nh ng th hi n r ngha trong chng trnh m cn dng xc nh cc i l ng khc nhau khi th c hi n chng trnh. Tn thng c t cho hng, bin, mng, con tr , nhn... Chi u di t i a ca tn l 32 k t. Tn bin hp l l mt chui k t lin tc gm: K t ch, s v du gch di . K t u ca tn phi l ch hoc du gch di. Khi t tn khng c t trng vi cc t kha. V d 1 : Cc tn ng: delta, a_1, Num_ODD, Case Cc tn sai: 3a_1 (k t u l s) num-odd (s dng du gch ngang) int (t tn trng vi t kha) del ta (c khong trng) f(x) (c du ngoc trn) Lu : Trong C, tn phn bit ch hoa, ch thng V d 2 : number khc Number case khc Case (case l t kha, do bn t tn l Case vn ng)
Tai lieu tham khao
nh dng khai bo d liu, vi t cu l nh... Trong C c for goto huge if int interrupt long near pascal register return short static struct signed sizeof switch typedef union unsigned void volatile while
Cc t kha phi vit bng ch thng
Gio trnh Lp trnh C cn bn
Trang 21
3.2.3 Kiu d liu C 4 kiu d liu c bn trong C l: char, int, float, double. TT 1 2 3 4 5 6 7 8 9 10 11 Kiu d liu (Type) unsigned char char enum unsigned int short int int unsigned long long float double long double Kch thc (Length) 1 byte 1 byte 2 bytes 2 bytes 2 bytes 2 bytes 4 bytes 4 bytes 4 bytes 8 bytes 10 bytes Min gi tr (Range) 0 128 32,768 0 32,768 32,768 0 2,147,483,648 3.4 * 1038 1.7 * 10308 3.4 * 104932 n n n n n n n n n n n 255 127 32,767 65,535 32,767 32,767 4,294,967,295 2,147,483,647 3.4 * 1038 1.7 * 10308 1.1 * 104932
3.2.4 Ghi ch Trong khi lp trnh cn phi ghi ch gii thch cc bin, hng, thao tc x l gip cho chng trnh r rng d hiu, d nh, d sa ch a v ngi khc c vo d hi u. Trong C c cc ghi ch sau: // hoc /* ni dung ghi ch */ V d 3 : void main() { int a, b; //khai bao bien t kieu int a = 1; //gan 1 cho a b =3; //gan 3 cho b /* thuat toan tim so lon nhat la neu a lon hon b thi a lon nhat nguoc lai b lon nhat */ if (a > b) printf("max: %d", a); else printf("max: %d", b); } Khi bin dch chng trnh, C gp cp du ghi ch s khng dch ra ngn ng my. Tm li, i vi ghi ch dng // dng ghi ch mt hng v dng /* .... */ c th ghi ch mt hng hoc nhiu hng. 3.2.5 Khai bo bin 3.2.5.1 3.2.5.2 Tn bin Khai bo bin
Cch t tn bin nh mc 2. C php Kiu d liu Danh sch tn bin; Kiu d liu: 1 trong cc kiu mc 3 Danh sch tn bin: gm cc tn bin c cng ki u d li u, m i tn bi n cch nhau du phy (,), cui cng l du chm phy (;). Khi khai bo bin nn t tn bin theo quy tc Hungarian Notation
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 22
V d 4 : int ituoi; //khai bo bin ituoi c kiu int float fTrongluong; //khai bo bin fTrongluong c kiu long char ckitu1, ckitu2; //khai bo bin ckitu1, ckitu2 c kiu char Cc bin khai bo trn theo quy tc Hungarian Notation. Ngha l bi n ituoi l ki u int, bn thm ch i (k t u ca kiu) vo u tn bin tuoi trong qu trnh lp trnh hoc sau ny xem li, sa cha... bn d dng nhn ra bin ituoi c kiu int m khng cn phi di chuyn n phn khai bo mi bit ki.u ca bin ny. Tng t cho bin fTrongluong, bn nhn vo l bit ngay bin ny c kiu float. 3.2.5.3 bo. V d 5 : Khai bo trc, gn gi tr sau: void main() { int a, b, c; a = 1; b = 2; c = 5; ... } Va khai bo va gn gi tr: void main() { int a = 1, b = 2, c = 5; ... } 3.2.5.4 Phm vi ca bin Khi lp trnh, bn phi nm r phm vi ca bin. N u khai bo v s d ng khng ng, khng r rng s dn n sai st kh kim sot c, v vy bn cn phi xc nh ng v tr, phm vi s dng bin trc khi s dng bin. Khai bo bin ngoi (bin ton cc): V tr bi n t bn ngoi t t c cc hm, c u trc... Cc bin ny c nh hng n ton b chng trnh. Chu trnh s ng ca n l b t u chy chng trnh n lc kt thc chng trnh. Khai bo bin trong (bin cc b): V tr bin t bn trong hm, c u trc.... Ch nh hng ni b bn trong hm, cu trc .... Chu trnh s ng ca n b t u t lc hm, c u trc c gi thc hin n lc thc hin xong. Va khai bo va khi gn
C th kt hp vic khai bo vi ton t gn bin nh n ngay gi tr cng lc v i khai
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 23
Tai lieu tham khao
Gio trnh Lp trnh C cn bn
Trang 24
Bi 4 : NHP / XUT D LIU
4.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha, cch s dng hm printf, scanf - S dng khun dng, k t c bit, k t iu khin trong printf, scanf. 4.2 Ni dung 4.2.1 Hm printf Kt xut d liu c nh dng. C php
printf ("chui nh dng"[, i mc 1, i mc 2,...]);
Khi s dng hm phi khai bo tin x l #include <stdio.h> - printf: tn hm, phi vit bng ch thng. - i mc 1,...: l cc mc d kin cn in ra mn hnh. Cc i m c ny c th l bin, hng hoc biu thc phi c nh tr trc khi in ra. - chui nh dng: c t trong cp nhy kp (" "), gm 3 loi: + i vi chui k t ghi nh th no in ra ging nh vy. + i vi nhng k t chuyn i dng thc cho php kt xut gi tr ca cc i mc ra mn hnh tm gi l m nh dng. Sau y l cc du m t nh dng: %c : K t n %s : Chui %d : S nguyn thp phn c du %f : S chm ng (k hiu thp phn) %e : S chm ng (k hiu c s m) %g : S chm ng (%f hay %g) %x : S nguyn thp phn khng du %u : S nguyn hex khng du %o : S nguyn bt phn khng du l : Tin t dng km vi %d, %u, %x, %o ch s nguyn di (v d %ld) + Cc k t iu khin v k t c bit \n : Nhy xung dng k tip canh v ct u tin. \t : Canh ct tab ngang. \r : Nhy v u hng, khng xung hng. \a : Ting ku bip. \\ : In ra du \ \" : In ra du " \' : In ra du ' %%: In ra du % V d 1: printf("Bai hoc C dau tien. \n"); k t iu khin chui k t
Hanoi Aptech Computer Education Center
Gio trnh Lp trnh C cn bn
Trang 25
Kt qu in ra mn hnh
Bai hoc C dau tien. _ V d 2: printf("Ma dinh dang \\\" in ra dau \" . \n"); k t iu khin k t c bit chui k t
Kt qu in ra mn hnh
Ma dinh dang \" in ra dau ". _ V d 3: gi s bin i c gi tr = 5 xut gi tr bin i printf("So ban vua nhap la: %d . \n", i); i mc l bin (kiu int) k t iu khin chui k t m nh dng (kiu int)
Kt qu in ra mn hnh
So ban vua nhap la: 5. _ V d 4: gi s bin a c gi tr = 7 v b c gi tr = 4
xut gi tr biu thc a+b xut gi tr bin b xut gi tr bin a printf("Tong cua 2 so %d va %d la %d . \n", a, b, a+b); i mc 3 l biu thc c gi tr l kiu int i mc 1, 2 l bin (kiu int) k t iu khin chui k t m nh dng (kiu int)
Kt qu in ra mn hnh
Tong cua 2 so 7 va 4 la 11. _ V d 5: sa li v d 4 printf("Tong cua 2 so %5d va %3d la %1d . \n", a, b, a+b); B rng trng
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 26
Kt qu in ra mn hnh
Tong cua 2 so _ 7 va 4 la 11. 2 k t (mc d nh dng l 1) 3 k t 5 k t V d 6: sa li v d 5 printf("Tong cua 2 so %-5d va %-3d la %-1d . \n", a, b, a+b);
Kt qu in ra mn hnh
Tong cua 2 so 7 _ va 4 la 11. 2 k t (mc d nh dng l 1) 3 k t 5 k t
Du tr trc b rng trng s ko kt qu sang tri
V d 7: sa li v d 4 printf("Tong cua 2 so %02d va %02d la %04d . \n", a, b, a+b);
Kt qu in ra mn hnh
Tong cua 2 so 07 va 04 la 0011. _ thm 2 s 0 trc -> 4 k t thm 1 s 0 trc -> 2 k t thm 1 s 0 trc -> 2 k t V d 8: gi s int a = 6, b = 1234, c = 62 printf("%7d%7d%7d.\n", a, b, c); printf("%7d%7d%7d.\n", 165, 2, 965);
Kt qu in ra mn hnh
6 1234 62 165 2 965 _ S canh v bn phi b rng trng.
printf("%-7d%-7d%-7d.\n", a, b, c); printf("%-7d%-7d%-7d.\n", 165, 2, 965);
Kt qu in ra mn hnh
6 165 1234 2 62 965 S canh v bn tri b rng trng.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 27
_ V d 9: gi s float a = 6.4, b = 1234.56, c = 62.3 printf("%7.2d%7.2d%7.2d.\n", a, b, c); s s l
Kt qu in ra mn hnh
6.40 1234.56 62.30 _ 7 k t S canh v bn phi b rng trng.
B rng trng bao gm: phn nguyn, phn l v du chm ng
V d 10: gi s float a = 6.4, b = 1234.55, c = 62.34 printf("%10.1d%10.1d%10.1d.\n", a, b, c); printf("%10.1d%10.1d%10.1d.\n", 165, 2, 965);
Kt qu in ra mn hnh
6.4 1234.6 165.0 2.0 _ 62.3 965.0 S canh v bn phi b rng trng.
printf("%-10.2d%-10.2d%-10.2d.\n", a, b, c); printf("%-10.2d%-10.2d%-10.2d.\n", 165, 2, 965);
Kt qu in ra mn hnh
6.40 1234.55 165.00 2.00 _ 4.2.2 Hm scanf nh dng khi nhp liu. C php 62.34 965.00 S canh v bn tri b rng trng.
scanf ("chui nh dng"[, i mc 1, i mc 2,...]);
Khi s dng hm phi khai bo tin x l #include <stdio.h> - scanf: tn hm, phi vit bng ch thng. - khung nh dng: c t trong cp nhy kp (" ") l hnh nh dng d liu nhp vo. - i mc 1,...: l danh sch cc i mc cch nhau bi d u ph y, m i i m c s tip nhn gi tr nhp vo. V d 11: scanf("%d", &i);
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 28
i mc 1 m nh dng
Nhp vo 12abc, bin i ch nhn gi tr 12. Nhp 3.4 ch nhn gi tr 3.
V d 12: scanf("%d%d", &a, &b);
Nhp vo 2 s a, b phi cch nhau bng khong trng hoc enter.
V d 13: scanf("%d/%d/%d", &ngay, &thang, &nam);
Nhp vo ngy, thng, nm theo dng ngay/thang/nam (20/12/2002)
V d 14: scanf("%d%*c%d%*c%d", &ngay, &thang, &nam);
Nhp vo ngy, thng, nm vi du phn cch /, -,...; ngoi tr s.
V d 15: scanf("%2d%2d%4d", &ngay, &thang, &nam);
Nhp vo ngy, thng, nm theo dng dd/mm/yyyy.
4.3 Bi tp 1. Vit chng trnh i mt s nguyn h 10 sang h 2. 2. Vit chng trnh i mt s nguyn h 10 sang h 16. 3. Vit chng trnh c v 2 s nguyn v in ra kt qu ca php (+), php tr (-), php nhn (*), php chia (/). Nhn xt kt qu chia 2 s nguyn. 4. Vit chng trnh nhp vo bn knh hnh cu, tnh v in ra din tch, th tch ca hnh cu . Hng dn: S = 4R2 v V = (4/3)R3. phng (a3) ca a v gi tr a4.
5. Vit chng trnh nhp vo mt s a bt k v in ra gi tr bnh phng (a 2), lp
6. Vit chng trnh c t bn phm 3 s nguyn biu din ngy, thng, nm v xut ra mn hnh di dng "ngay/thang/nam" (ch ly 2 s cui ca nm). 7. Vit chng trnh nhp vo s giy t 0 n 86399, i s giy nhp vo thnh dng "gio:phut:giay", mi thnh phn l mt s nguyn c 2 ch s. V d: 02:11:05
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 29
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 30
Bi 5 : CU TRC R NHNH C IU KIN (Cu trc chn)
5.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha lnh, khi lnh. - C php, ngha, cch s dng lnh if, lnh switch. - Mt s bi ton s dng lnh if, switch thng qua cc v d. - So snh, nh gi mt s bi ton s dng lnh if hoc switch. - Cch s dng cc cu trc lng nhau. 5.2 Ni dung 5.2.1 Lnh v khi lnh 5.2.1.1 Lnh
L mt tc v, biu thc, hm, cu trc iu khin... V d 1: x = x + 2; printf("Day la mot lenh\n"); 5.2.1.2 Khi lnh L mt dy cc cu lnh c bc bi cp du { }, cc lnh trong kh i l nh ph i vit tht v 1 tab so vi cp du { } V d 2: { //dau khoi a = 5; b = 6; vit tht v 1 tab so vi cp { } printf("Tong %d + %d = %d", a, b, a+b); } //cuoi khoi ng du }
Qun dng cp du { } bao bc khi s dng khi lnh, hoc m du { v qun
5.2.2 Lnh if Cu lnh if cho php la chn mt trong hai nhnh ty thuc vo gi tr ca biu thc lun l l ng (true) hay sai (false) hoc khc khng hay bng khng. 5.2.2.1 Dng 1 (if thiu)
Quyt nh s thc hin hay khng mt khi lnh. C php lnh if (biu thc lun l) khi lnh;
Hanoi AptechComputerEducationCenter
t kha if phi vit bng ch thng kt qu ca biu thc lun l phi l ng ( 0) hoc sai (= 0)
Gio trnh Lp trnh C cn bn Lu Vo Sai
Trang 31
bthc lun l ng khi lnh Ra
nu biu thc lun l ng th thc hin khi lnh v thot khi if, ngc li khng lm g c v thot khi if.
Nu khi lnh bao gm t 2 lnh tr ln th phi t trong du { } Din gii: + Khi lnh l mt lnh ta vit lnh if nh sau: if (biu thc lun l) lnh; + Khi lnh bao gm nhiu lnh: lnh 1, lnh 2..., ta vit lnh if nh sau: if (biu thc lun l) { lnh 1; lnh 2; ... } V d: if(biu thc lun l); trnh bin dch khng bo li nhng khi lnh khng c thc hin cho d iu kin ng hay sai. V d 3: Vit chng trnh nhp vo 2 s nguyn a, b. Tm v in ra s ln nht. a. Phc ha li gii Trc tin ta cho gi tr a l gi tr ln nht bng cch gn a cho max (max l bin c khai bo cng kiu d liu vi a, b). Sau so snh b v i a, nu b ln hn a ta gn b cho max v cui cng ta c kt qu max l gi tr ln nht. b. M t quy trnh x l (gii thut) Ngn ng t nhin - Khai bo 3 bin a, b, max kiu s nguyn - Nhp vo gi tr a - Nhp vo gi tr b - Gn a cho max - Nu b > a th gn b cho max - In ra kt qu max
Hanoi AptechComputerEducationCenter
Khng t du chm phy sau cu lnh if.
Ngn ng C - int ia, ib, imax; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - imax = ia; - if (ib > ia) imax = ib; - printf("So lon nhat = %d.\n", imax);
Gio trnh Lp trnh C cn bn
Trang 32
Biu thc lun l phi t trong cp du ( ). if ib > ia bo li
c. M t bng lu
Bt u Nhp a, b max = a b>a ng max = b So lon nhat = max Kt thc Sai
d. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh tim so lon nhat tu 2 so nguyen a, b */ #include <stdio.h> #include <conio.h> void main(void) { int ia, ib, imax; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); imax = ia; if (ib>ia) imax = ib; printf("So lon nhat = %d.\n", imax); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so a : 10 Nhap vao so b : 8 So lon nhat = 10. _ Cho chy li chng trnh v th li vi: a = 7, b = 9 a = 5, b = 5 Quan st v nhn xt kt qu
V d 4: Vit chng trnh nhp vo 2 s nguyn a, b. Nu a ln hn b th hon i gi tr a v b, ngc li khng hon i. In ra gi tr a, b.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 33
a. Phc ha li gii Nu gi tr a ln hn gi tr b, bn phi hon chuy n 2 gi tr ny cho nhau (ngha l a s mang gi tr b v b mang gi tr a) bng cch em gi tr a gi (gn) cho bin tam (bin tam c khai bo theo kiu d liu ca a, b), k n bn gn gi tr b cho a v cui cng bn gn gi tr tam cho b, ri in ra a, b. b. M t quy trnh thc hin (gii thut) Ngn ng t nhin - Khai bo 3 bin a, b, tam kiu s nguyn - Nhp vo gi tr a - Nhp vo gi tr b - Nu a > b th tam = a; a = b; b = tam; - In ra a, b c. M t bng lu
B t u Nhp a, b a>b ng tam = a a=b b = tam Sai
Ngn ng C - int ia, ib, itam; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - if (ia > ib) { itam = ia; ia = ib; ib = itam; } - printf("%d, %d\n", ia, ib);
In a, b Kt thc
d. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh hoan vi 2 so a, b neu a > b */ #include <stdio.h> #include <conio.h> void main(void) { int ia, ib, itam;
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 34
printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); if (ia>ib) { itam = ia; //hoan vi a va b ia = ib; ib = itam; } printf("%d, %d.\n", ia, ib); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so a : 10 Nhap vao so b : 8 8, 10 _ 5.2.2.2 Dng 2 (if ) Cho chy li chng trnh v th li vi: a = 1, b = 8 a = 2, b = 2 Quan st v nhn kt qu
Quyt nh s thc hin 1 trong 2 khi lnh cho trc. C php lnh if (biu thc lun l) khi lnh 1; else khi lnh 2;
Lu Vo Sai
t kha if, else phi vit bng ch thng kt qu ca biu thc lun l phi l ng ( 0) hoc sai (= 0)
bthc lun l ng khi lnh 1 Ra
nu biu thc lun l ng th thc hin khi lnh 1 v thot khi if ngc li thc hin khi lnh 2 v thot khi if. Nu khi lnh 1, khi lnh 2 bao gm t 2 lnh tr ln th phi t trong du { }
khi lnh 2
V d 5: Vit chng trnh nhp vo 2 s nguyn a, b. In ra thng bo "a bng b" nu a = b, ngc li in ra thng bo "a khc b". a. Phc ha li gii So snh a vi b, nu a bng b th in ra cu thng bo "a b ng b", ng c l i in ra thng bo "a khc b". b. M t quy trnh x l (gii thut)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 35
Ngn ng t nhin - Khai bo 2 bin a, b kiu s nguyn - Nhp vo gi tr a - Nhp vo gi tr b - Nu a = b th in ra thng bo "a bng b" Ngc li (cn khng th) in ra thng bo "a khc b" c. M t bng lu
B t u Nhp a, b a= b
Ngn ng C - int ia, ib; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - if (ia == ib) printf("a bang b\n"); else printf("a khac b\n");
Sai
ng a bang b Kt thc a khac b
d. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh in ra thong bao "a bang b" neu a = b, nguoc li in ra "a khac b" */ #include <stdio.h> #include <conio.h> void main(void) { int ia, ib; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); if (ia == ib) printf("a bang b\n"); else printf("a khac b\n"); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so a : 10 Nhap vao so b : 8
Hanoi AptechComputerEducationCenter
Cho chy li chng trnh v th li vi: a = 6, b = 6
Gio trnh Lp trnh C cn bn
Trang 36
a khac b. _
a = 1, b = 5 Quan st v nhn xt kt qu V d: else; printf('a khac b\n"); trnh bin dch khng bo li, lnh printf("a khac b\n"); khng thuc else
Sau else khng c du chm phy.
V d 6: Vit chng trnh nhp vo k t c. Kim tra xem nu k t nhp vo l k t thng trong khong t 'a' n 'z' th i sang ch in hoa v in ra, ng c l i in ra thng bo "K t bn va nhp l: c". a. Phc ha li gii Trc tin bn phi kim tra xem nu k t c thuc khong 'a' v 'z' th i k t c thnh ch in hoa bng cch ly k t c 32 ri gn l i cho chnh n (c = c 32) (v gi a k t thng v in hoa trong bng m ASCII cch nhau 32, v d: A trong bng m ASCII l 65, B l 66..., cn a l 97, b l 98...), sau khi i xong bn in k t c ra. Ngc l i, in cu thng bo "K t bn va nhp l: c". b. M t quy trnh x l (gii thut) Ngn ng t nhin - Khai bo bin c kiu k t - Nhp vo k t c - Nu c >= a v c <= z th c = c 32 in c ra mn hnh Ngc li in ra thng bo " K t bn va nhp l: c " c. M t bng lu
B t u Nhp c c >= 'a' v c <= 'z' ng c = c 32 Ki tu hoa = c Ki tu vua nhap = c Sai
Ngn ng C - char c; - printf("Nhap vao 1 ki tu: "); scanf("%c", &c); - if (c >= 'a' && c <= 'z') { c = c 32; printf("Ki tu hoa la: %c.\n", c); }; else printf("Ki tu ban vua nhap la: %c.\n", c);
Kt thc
d. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 37
/* Chuong trinh nhap vao ky tu c, neu c la chu thuong in ra chu IN HOA */ #include <stdio.h> #include <conio.h> void main(void) { char c; printf("Nhap vao 1 ki tu: "); scanf("%c", &c); if (c >= 'a' && c <= 'z') //hoac if(c >= 97 && c <= 122) { c = c 32; //doi thanh chu in hoa printf("Ki tu hoa la: %c.\n", c); }; else printf("Ki tu ban vua nhap la: %c.\n", c); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao mot ki tu: g Ki tu hoa la: G. _ 5.2.2.3 Cu trc else if Cho chy li chng trnh v th li vi: c = '!', c = '2', c = 'A', c = 'u' Quan st v nhn xt kt qu
Quyt nh s thc hin 1 trong n khi lnh cho trc. C php lnh thng if (biu thc lun l 1) khi lnh 1; else if (biu thc lun l 2) khi lnh 2; ... else if (biu thc lun l n-1) khi lnh n-1; else Vo khi lnh n;
BTLL 1 ng Lu Sai BTLL 2 ng
t kha if, else if, else phi vit bng ch kt qu ca biu thc lun l 1, 2..n phi l ng ( 0) hoc sai (= 0) Nu khi lnh 1, 2...n bao gm t 2 lnh tr ln th phi t trong du { }
khi lnh 1 khi lnh 2 Hanoi AptechComputerEducationCenter Ra
Nu biu thc lun l 1 ng th thc hin khi lnh 1 v thot khi cu trc if Ngc li Nu biu thc lun l 2 ng th Sai thc hin khi lnh 2 v thot khi cu trc if ... Sai BTLL n-1 c li Nu biu thc lun l n-1 ng th Ng thc hin khi lnh n-1 v thot khi cu trc ng if Ng khi lnh n-1 c li th
khi lnh n
Gio trnh Lp trnh C cn bn
Trang 38
thc hin khi lnh n.
V d 7: Vit chng trnh nhp vo 2 s nguyn a, b. In ra thng bo "a ln hn b" nu a>b, in ra thng bo "a nh hn b" nu a<b, in ra thng bo "a bng b" nu a=b. a. Phc ha li gii Trc tin so snh a vi b. Nu a > b th in ra thng bo "a ln hn b", ngc li nu a < b th in ra thng bo "a nh hn b", ngc vi 2 trng hp trn th in ra thng bo "a bng b". b. M t quy trnh thc hin (gii thut) Ngn ng t nhin - Khai bo 2 bin a, b kiu s nguyn - Nhp vo gi tr a - Nhp vo gi tr b - Nu a > b th in ra thng bo "a ln hn b" Ngc li Nu a < b th in ra thng bo "a nh hn b" Ngc li th in ra thng bo "a bng b" c. M t bng lu
B t u Nhp a, b a>b ng "a lon hon b" Sai a<b ng "a nho hon b" "a bang b" Sai
Ngn ng C - int ia, ib; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - if (ia > ib) printf("a lon hon b.\n"); else if (ia < ib) printf("a nho hon b.\n"); else printf("a bang b.\n");
Kt thc
d. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 39
/* Chuong trinh nhap vao 2 so nguyen a, b. In ra thong bao a > b, a < b, a = b */ #include <stdio.h> #include <conio.h> void main(void) { int ia, ib; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); if (ia>ib) printf("a lon hon b.\n"); else if (ia<ib) printf("a nho hon b.\n"); else printf("a bang b.\n"); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so a : 5 Nhap vao so b : 7 a nho hon b _ Cho chy li chng trnh v th li vi: a = 8, b = 4 a = 2, b = 2 Quan st v nhn xt kt qu
V d 8: Vit chng trnh nhp vo k t c. Kim tra xem nu k t nhp vo l k t thng trong khong t 'a' n 'z' th i sang ch in hoa v in ra, n u k t in hoa trong khong A n Z th i sang ch thng v in ra, nu k t l s t 0 n 9 th in ra cu "K t bn va nhp l s ...(in ra k t c)", cn l i khng ph i 3 tr ng h p trn in ra thng bo "Bn nhp k t ...(in ra k t c)". a. Phc ha li gii Nhp k t c vo, kim tra xem nu k t c thuc khong 'a' v 'z' i k t c thnh ch in hoa bng cch ly k t c 32 ri gn li cho chnh n (c = c 32) (v gia k t thng v in hoa trong bng m ASCII cch nhau 32, v d: A trong bng m ASCII l 65, B l 66..., cn a l 97, b l 98...), sau khi i xong bn in k t c ra. Ngc li Nu k t c thuc khong 'A' v 'Z', i k t c thnh ch thng (theo cch ngc li) v in ra. Ngc li Nu k t c thuc khong '0' v '9' th in ra thng bo "K t bn va nhp l s...". Ngc li, in cu thng bo "Bn nhp k t...". b. M t quy trnh x l (gii thut) Ngn ng t nhin - Khai bo bin c kiu k t - Nhp vo k t c - Nu c >= a v c <= z th c = c 32 in c ra mn hnh
Hanoi AptechComputerEducationCenter
Ngn ng C - char c; - printf("Nhap vao 1 ki tu: "); scanf("%c", &c); - if (c >= 'a' && c <= 'z') { c = c 32;
Gio trnh Lp trnh C cn bn
Trang 40
Ngc li Nu c >= A v c <= Z th c = c + 32 in c ra mn hnh Ngc li Nu c >= 0 v c <= 9 th in thng bo "K t bn va nhp l s c" Ngc li th in thng bo "Bn nhp k t c"
printf("Ki tu hoa la: %c.\n", c); }; else if(c >= 'A' && c <= 'Z') { c = c + 32; printf("Ki tu thuong la: %c.\n", c); }; else if(c >= '0' && c <= '9') printf("Ki tu Ban vua nhap la so %c.\n", c); else printf("Ban da nhap ki tu %c.\n", c);
Cng nh if, khng t du chm phy sau cu lnh else if.
hin. c. M t bng lu
Bt u Nhp c Sai
V d: else if(c >= 'A' && c <= 'Z'); trnh bin dch khng bo li nhng khi lnh sau else if khng c thc
c >= 'a' v c <= 'z' ng c = c 32
c >= 'A' v c <= 'Z' ng c = c + 32 Ki tu thuong=c
Sai
Ki tu hoa = c
c >= '0' v c <= '9' ng Ktu nhap la so c
Sai
Ban da nhap ktu c
Kt thc
e. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap vao ki tu c. Doi ra hoa, thuong */ #include <stdio.h> #include <conio.h> void main(void) {
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 41
char c; printf("Nhap vao 1 ki tu: "); scanf("%c", &c); if (c >= 'a' && c <= 'z') //hoac if(c >= 97 && c <= 122) { c = c 32; //doi thanh chu in hoa printf("Ki tu hoa la: %c.\n", c); }; else if(c >= 'A' && c <= 'Z') //hoac if(c >= 65 && c <= 90) { c = c + 32; //doi thanh chu thuong printf("Ki tu thuong la: %c.\n", c); }; else if(c >= '0' && c <= '9') //hoac if(c >= 48 && c <= 57) printf("Ki tu Ban vua nhap la so %c.\n", c); else printf("Ban da nhap ki tu %c.\n", c); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao mot ki tu: g Ki tu hoa la: G. _ 5.2.2.4 Cu trc if lng Cho chy li chng trnh v th li vi: c = '!', c = '2', c = 'a', c = 'Z' Quan st v nhn xt kt qu
Quyt nh s thc hin 1 trong n khi lnh cho trc. C php lnh C php l mt trong 3 dng trn, nhng trong 1 hoc nhiu khi lnh bn trong phi cha t nht mt trong 3 dng trn gi l cu trc if lng nhau. Thng cu trc if lng nhau cng nhiu cp phc tp cng cao, chng trnh chy cng chm v trong lc lp trnh d b nhm ln. Lu : Cc lnh if...else lng nhau th else s lun lun kt hp vi if no cha c else gn nht. V vy khi gp nhng lnh if khng c else, B n ph i t chng trong nh ng khi lnh r rng trnh b hiu sai cu lnh. V d 9: Bn vit cc dng lnh sau: ... if (n > 0) if (a > b) x = a; else x = b; ... Mc d Bn vit lnh else thng hng vi if (n > 0), nhng lnh else y c hi u i km vi if (a > b), v n nm gn vi if (a > b) nh t v if (a > b) ch a c else. d nhn v d hiu hn Bn vit li nh sau:
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 42
... if (n > 0) if (a > b) x = a; else x = b; ... Cn nu Bn mun lnh else l ca if (n > 0) th B n ph i t if (a > b) x = a trong m t khi lnh. Bn vit li nh sau: ... if (n > 0) { if (a > b) x = a; } else x = b; ... Lu Tng t 3 dng trn. Nhng trong mi khi lnh c th c mt (nhiu) cu trc if 3 dng trn. V d 10: Vit chng trnh nhp vo im ca mt hc sinh. In ra xp loi hc tp ca hc sinh . (Cch xp loi. Nu im >= 9, Xut sc. Nu im t 8 n cn 9, Gii. Nu im t 7 n cn 8, Kh. Nu im t 6 n cn 7, TBKh. Nu im t 5 n cn 6, TBnh. Cn li l Yu). a. Phc ha li gii im s nhp vo nu hp l (0 <= im <= 10), bn ti p tc cng vi c x p lo i, ngc li thng bo "Nhp im khng hp l". Vic xp loi bn s dng cu trc else if. b. M t quy trnh x l (gii thut) Ngn ng t nhin - Khai bo bin diem kiu s thc - Nhp vo im s - Nu diem >= 0 v diem <= 10 th - Nu diem >= 9 th in ra xp loi = Xut sc Ngc li Nu diem >= 8 th in ra xp loi = Gii Ngc li Nu diem >= 7 th in ra xp loi = Kh Ngc li Nu diem >= 6 th in ra xp loi = TBKh Ngc li Nu diem >= 5 th in ra xp loi = TBnh Ngc li th in ra xp loi = Yu Ngc li th in ra "Bn nhp im khng hp l"
Hanoi AptechComputerEducationCenter
Ngn ng C - float fdiem; - printf("Nhap vao diem so: "); scanf("%f", &fdiem); - if (fdiem >= 0 && fdiem <= 10) - if (fdiem >= 9) printf("Xep loai = Xuat sac.\n"); else if (fdiem >= 8) printf("Xep loai = Gioi.\n"); else if (fdiem >= 7) printf("Xep loai = Kha.\n"); else if (fdiem >= 6) printf("Xep loai = TBKha.\n"); else if (fdiem >= 5) printf("Xep loai = TBinh.\n"); else printf("Xep loai = Yeu.\n"); else printf("Ban nhap diem khong hop le.\n");
Gio trnh Lp trnh C cn bn
Trang 43
c. M t bng lu
Bt u Nhp diem
diem >= 0 v diem <= 10 Sai
ng diem >=9 ng Sai diem >=8 ng Sai diem >=7 ng Sai diem >=6 ng Sai diem >=5 ng TBinh Sai Yeu
diem khong hop le
Xuat sac
Gioi
Kha
TBKha
Kt thc
d. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap vao 2 so nguyen a, b. In ra thong bao a > b, a < b, a = b */ #include <stdio.h> #include <conio.h> void main(void) { float fdiem; printf("Nhap vao diem so: "); scanf("%f", &fdiem); if (fdiem >=0 && fdiem <=10) if (fdiem >=9) printf("Xep loai = Xuat sac.\n"); else if (fdiem >=8) printf("Xep loai = Gioi.\n"); else if (fdiem >=7) printf("Xep loai = Kha.\n"); else if (fdiem >=6) printf("Xep loai = TBKha.\n"); else if (fdiem >=5) printf("Xep loai = TBinh.\n"); else printf("Xep loai = Yeu.\n"); else //if (fdiem>=0 && fdiem<=10)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 44
printf("Nhap diem khong hop le.\n"); getch(); }
F1 Help
Alt-F8 Next Msg
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
Nhap vao diem so: 6.5 Xep loai = TBKha. _ Cho chy li chng trnh v th li vi: diem = 4, diem = 9, diem = 7, diem = 12 Quan st v nhn xt kt qu
e. Bn thm v chng trnh Trong chng trnh trn cu trc else if c lng vo trong cu trc d ng 2 , trong cu trc else if ta khng cn t trong kh i v t t c cc if trong c u trc ny u c else, nn else printf("Nhap diem khong hop le.\n") ng nhin l thu c v if (fdiem >= 0 && fdiem <= 10). Gi s trong cu trc else if khng c dng else printf("Xep loai = Yeu.\n") th khi dng else printf("Nhap diem khong hop le.\n") s thu c v c u trc else if ch khng thu c v if (fdiem >=0 && fdiem <= 10). i v i tr ng h p b n c n ph i t c u trc else if vo trong {}, th khi dng else printf("Nhap diem khong hop le.\n) s thu c v if (fdiem >= 0 && fdiem <= 10). V d 11: Vit chng trnh nhp vo 3 s nguyn a, b, c. Tm v in ra s ln nht. a. Phc ha li gii Trc tin bn so nu a>b, m a>c th a ln nht, ngc li c ln nh t, cn nu a<=b, m c>b th b ln nht, ngc li c ln nht. b. M t quy trnh x l (gii thut) Ngn ng t nhin - Khai bo 3 bin a, b, c kiu s nguyn - Nhp vo s a - Nhp vo s b - Nhp vo s c - Nu a > b th - Nu a > c th a ln nht Ngc li th c ln nht Ngc li - Nu b > c th b ln nht Ngc li th Sai c ln nht
c ln nht
b>c
Ngn ng C - int ia, ib, ic; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - printf("Nhap vao so c: "); scanf("%d", &ic); - if (ia > ib) B t u - if (ia > ic) printf("%d lon nhat.\n", ia); Nhp a, b, c else printf("%d lon nhat.\n", ic); else ng Sai a > b - if (ib > ic) printf("%d lon nhat.\n", ib); else ng ng Sai a>c printf("%d lon nhat.\n", ic);
b ln nht c ln nht a ln nht
c. M t bng lu
Hanoi AptechComputerEducationCenter Kt thc
Gio trnh Lp trnh C cn bn
Trang 45
d. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap vao 2 so nguyen a, b, c. Tim, in ra so lon nhat */ #include <stdio.h> #include <conio.h> void main(void) { int ia, ib, ic; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); printf("Nhap vao so c: "); scanf("%d", &ic); if (ia > ib) if (ia > ic) printf("%d lon nhat.\n", ia); else printf("%d lon nhat.\n", ic); else if (ib > ic) printf("%d lon nhat.\n", ib); else printf("%d lon nhat.\n", ic); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so a: 4 Nhap vao so b: 5
Hanoi AptechComputerEducationCenter
Cho chy li chng trnh v th li vi: a = 5, b = 4, c = 2
Gio trnh Lp trnh C cn bn
Trang 46
Nhap vao so c: 3 5 lon nhat. _
a = 2, b = 1, c = 10 a = 5, b = 5, c = 5 Quan st v nhn xt kt qu
e. Bn thm v chng trnh Trong chng trnh trn cu trc dng 2 c lng vo trong cu trc dng 2. 5.2.3 Lnh switch Lnh switch cng ging cu trc else if, nhng n mm d o h n v linh ng h n nhiu so vi s dng if. Tuy nhin, n cng c mt h n ch l k t qu c a bi u th c ph i l gi tr hng nguyn (c gi tr c th). Mt bi ton s d ng l nh switch th cng c th s dng if, nhng ngc li cn ty thuc vo gii thut ca bi ton. 5.2.3.1 Cu trc switch...case (switch thiu) Chn thc hin 1 trong n lnh cho trc. C php lnh switch (biu thc) { case gi tr 1 : lnh 1; break; case gi tr 2 : lnh 2; break; ... case gi tr n : lnh n; [break;] }
Lu Vo Biu . th. c . = gi tr 1 ? ng lnh 1 break ? Khng = gi tr 2 ? ng lnh 2 break ? Khng = gi tr n ? ng lnh n break ? Khng Hanoi AptechComputerEducationCenter Ra C C C
t kha switch, case, break phi vit bng ch thng biu thc phi l c kt qu l gi tr hng nguyn (char, int, long,...) Lnh 1, 2...n c th gm nhiu lnh, nhng khng cn t trong cp du { }
Khi gi tr ca biu thc bng gi tr i th lnh i s c thc hin. Nu sau lnh i khng c lnh break th s tip tc thc hin lnh i + 1...Ngc li thot khi cu trc switch.
Gio trnh Lp trnh C cn bn
Trang 47
V d 12: Vit chng trnh nhp vo s 1, 2, 3. In ra tng ng 1, 2, 3 sao. a. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap vao so 1, 2, 3. In ra so sao tuong ung */ #include <stdio.h> #include <conio.h> void main(void) { int i; printf("Nhap vao so 1, 2 hoc 3: "); scanf("%d", &i); switch(i) { case 3: printf("*"); case 2: printf("*"); case 1: printf("*"); }; printf("An phim bat ky de ket thuc!\n"); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so 1, 2 hoc 3: 2 ** _ Cho chy li chng trnh v th li vi: i = 1, i = 3, i = 0, i = 4 Quan st v nhn xt kt qu
b. Bn thm v chng trnh Trong chng trnh trn khi nhp vo i = 2 lnh printf("*") dng case 2 c thi hnh, nhng do khng c lnh break sau nn lnh printf("*") dng case 1 tip tc c thi hnh. Kt qu in ra **.
Khng t du chm phy sau cu lnh switch.
hin. 4)
V d: switch(i); trnh bin dch khng bo li nhng cc lnh trong switch khng c thc
V d 13: Vit chng trnh nhp vo thng v in ra qu. (thng 1 -> qu 1, thng 10 -> qu
a. Phc ha li gii Nhp vo gi tr thng, kim tra xem thng c h p l (trong khong 1 n 12). N u hp l in ra qu tng ng (1->3: qu 1, 4->6: qu 2, 7->9: qu 3, 10->12: qu 4). b. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 48
/* Chuong trinh nhap vao thang. In ra quy tuong ung */ #include <stdio.h> #include <conio.h> void main(void) { int ithang; printf("Nhap vao thang: "); scanf("%d", &ithang); if (ithang > 0 && ithang <= 12) switch(ithang) { case 1: case 2: case 3: printf("Quy 1.\n"); break; case 4: case 5: case 6: printf("Quy 2.\n"); break; case 7: case 8: case 9: printf("Quy 3.\n"); break; case 10: case 11: case 12:printf("Quy 4.\n"); break; }; else printf("Thang khong hop le.\n"); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao thang: 4 Quy 2. _ Cho chy li chng trnh v th li vi: thang = 7, thang = 1, thang = 13, thang = -4 Quan st v nhn xt kt qu
c. Bn thm v chng trnh Trong chng trnh trn cu trc switch...case c lng vo trong cu trc if dng 2. 5.2.3.2 Cu trc switch...case...default (switch ) Chn thc hin 1 trong n + 1 lnh cho trc. C php lnh switch (biu thc)
Hanoi AptechComputerEducationCenter
t kha switch, case, break, default
Gio trnh Lp trnh C cn bn
Trang 49
{ case gi tr 1 : lnh 1; break; case gi tr 2 : lnh 2; break; ... case gi tr n : lnh n; break; default : lnh; [break;] }
Lu Vo Biu thc
phi vit bng ch thng biu thc phi l c kt qu l gi tr nguyn (char, int, long,...) Lnh 1, 2...n c th gm nhiu lnh, nhng khng cn t trong cp du { }
...
= gi tr 1 ?
ng
lnh 1 break ?
Khi gi tr ca biu thc bng gi tr i th lnh i s c thc hin. Nu sau lnh i khng c lnh break th s tip tc thc hin lnh i + 1...Ngc li thot khi cu trc switch. Nu gi tr biu thc khng trng vi bt k gi tr i no th l nh tng ng vi t kha default s c thc hin.
C
Khng = gi tr 2 ? ng lnh 2 break ? Khng = gi tr n ? ng lnh n break ? Khng gi tr 1, 2... n lnh n break ? C C C
Khng Ra
V d 14: Vit li chng trnh V d 12 a. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 50
/* Chuong trinh nhap vao so 1, 2, 3. In ra so sao tuong ung */ #include <stdio.h> #include <conio.h> void main(void) { int i; printf("Nhap vao so 1, 2 hoc 3: "); scanf("%d", &i); switch(i) { case 3: printf("*"); case 2: printf("*"); case 1: printf("*"); break; default: printf("Ban nhap phai nhap vao so 1, 2 hoac 3.\n"); }; getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so 1, 2 hoc 3: 3 *** _ Cho chy li chng trnh v th li vi: i = 1, i = 3, i = 0, i = 4 Quan st kt qu
b. Bn thm v chng trnh Trong chng trnh trn. Nu bn nhp vo 1, 2, 3 s in ra s sao tng ng. Ngoi cc s ny chng trnh s in ra cu thng bo "Bn phi nhp vo s 1, 2 hoc 3". V d 15: Vit li chng trnh V d 13 a. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap vao thang. In ra quy tuong ung */ #include <stdio.h> #include <conio.h> void main(void) { int ithang; printf("Nhap vao thang: "); scanf("%d", &ithang); switch(ithang) { case 1: case 2: case 3 : case 4: case 5: case 6:
printf("Quy 1.\n"); break; printf("Quy 2.\n");
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 51
break; case 7: case 8: case 9: printf("Quy 3.\n"); break; case 10: case 11: case 12: printf("Quy 4.\n"); break; default : printf("Ban phai nhap vao so trong khoang 1..12\n"); }; getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao thang: 4 Quy 2. _ Cho chy li chng trnh v th li vi: thang = 7, thang = 1, thang = 13, thang = -4 Quan st kt qu
c. Bn thm v chng trnh Trong chng trnh trn. Nu bn nhp vo 1 n 12 s in qu tng ng. Ngoi cc s ny chng trnh s in ra cu thng bo "Bn phi nhp vo s trong khong 1..12". 5.2.3.3 Cu trc switch lng Quyt nh s thc hin 1 trong n khi lnh cho trc. C php lnh C php l mt trong 2 dng trn, nhng trong 1 hoc nhiu lnh bn trong phi cha t nht mt trong 2 dng trn gi l cu trc switch lng nhau. Thng cu trc switch lng nhau cng nhiu cp phc tp cng cao, chng trnh chy cng chm v trong lc lp trnh d b nhm ln. Lu Tng t 2 dng trn. Nhng trong mi lnh c th c mt (nhiu) cu trc switch 2 dng trn. V d 16: Vit chng trnh menu 2 cp a. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh menu 2 cap */ #include <stdio.h> #include <conio.h> void main(void) { int imenu, isubmenu; printf("-------------------------\n"); printf(" MAIN MENU \n"); printf("-------------------------\n"); printf("1. File\n"); printf("2. Edit\n"); printf("3. Search\n"); printf("Chon muc tuong ung: ");
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 52
scanf("%d", &imenu); switch(imenu) { case 1: printf("-------------------------\n"); printf(" MENU FILE \n"); printf("-------------------------\n"); printf("1. New\n"); printf("2. Open\n"); printf("Chon muc tuong ung: "); scanf("%d", &isubmenu); switch(isubmenu) { case 1: printf("Ban da chon chuc nang New File\n"); break; case 2: printf("Ban da chon chuc nang Open File\n"); } break; //break cua case 1 switch(imenu) case 2: printf("Ban da chon chuc nang Edit\n"); break; case 3: printf("Ban da chon chuc nang Search\n"); }; getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
-------------------------MAIN MENU -------------------------1. File 2. Edit 3. Search Chon muc tuong ung: 1 -------------------------MENU FILE -------------------------1. New 2. Open Chon muc tuong ung: 2 Ban da chon chuc nang Open File _ 5.3 Bi tp 5.3.1 S dng lnh if 1. Vit li chng trnh v d 3, s dng cu trc if dng 2.
2. Vit li chng trnh v d 11, s dng cu trc if dng 1.
Cho chy li chng trnh v th li vi: mc chn chc nng khc Quan st kt qu. * Thm cc thnh phn sau vo chng trnh: - Thm mc Save vo menu File. - To menu Edit gm 4 chc nng: Copy, Cut, Paste, Clear. - To menu Search gm 2 chc nng: Find, Replace. Chy li chng trnh v th vi nhiu mc chn khc nhau. Quan st kt qu.
3. Vit li chng trnh v d 11, s dng cu trc if dng 2.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 53
4. Vit chng trnh nhp vo s nguyn dng, in ra thng bo s chn hay l. Hng dn: Nhp vo s nguyn dng x. Kim tra nu x chia chn cho hai th x l s chn (hoc chia cho 2 d 0) ngc li l s l. 5. Vit chng trnh nhp vo 4 s nguyn. Tm v in ra s ln nht. Hng dn: Ta c 4 s nguyn a, b, c, d. Tm 2 s nguyn ln nht x, y ca 2 cp (a, b) v (c, d). Sau so snh 2 s nguyn x, y tm ra s nguyn ln nht. 6. 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 nghim Ngc li Nu Delta = 0 th x1 = x2 = - b/(2*a) Ngc li x1 = (- b - sqrt(Delta))/(2*a) x2 = (- b + sqrt(Delta))/(2*a) Ht Nu Ht Nu 7. 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 giy cng thm vo bin them: Nu giay + them < 60 th giay = giay + them Ngc li giay = (giay + them) - 60 phut = phut + 1 Nu phut >= 60 th phut = phut - 60 gio = gio + 1 Ht nu Ht nu 5.3.2 S dng lnh switch 8. Vit chng trnh nhp vo thng, in ra thng c bao nhiu ngy. Hng dn: Nhp vo thng Nu l thng 1, 3, 5, 7, 8, 10, 12 th c 30 ngy Nu l thng 4, 6, 9, 11 th c 31 ngy Nu l thng 2 v l nm nhun th c 29 ngy ngc li 28 ngy (Nm nhun l nm chia chn cho 4) 9. Vit chng trnh tr chi One-Two-Three ra ci g ra ci ny theo iu kin: - Ba (B) thng Ko, thua Giy. - Ko (K) thng Giy, thua Ba. - Giy (G) thng Ba, thua Ko. Hng dn: Dng lnh switch lng nhau
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 54
10. Vit chng trnh xc nh bin k t color ri in ra thng bo - RED, nu color = 'R' hoc color = 'r' - GREEN, nu color = 'G' hoc color = 'g' - BLUE, nu color = 'B' hoc color = 'b' - BLACK, nu color c gi tr khc. 11. Vit chng trnh nhp vo 2 s x, y v 1 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) 5.4 Bi tp lm thm 12. Vit li bi tp 8, 9, 10, 11 s dng lnh if. tng im >= 15 v khng c mn no di 4 th in kt qu u. Nu u m cc mn u ln hn 5 th in ra li ph "Hc u cc mn", ngc li in ra "Hc cha u cc mn", cc trng hp khc l "Thi hng".
13. Vit chng trnh nhp vo im 3 mn thi: Ton, L, Ha ca hc sinh. N u
14. Vit chng trnh nhp vo ngy thng nm (dd:mm:yy), cho bit l th my trong tun. 15. Vit chng trnh nhp s gi lm v lng gi ri tnh s tin lng tng cng. Nu s gi lm ln hn 40 th nhng gi lm di ra c tnh 1,5 ln. 16. Vit chng trnh nhp vo 3 gi tr nguyn dng a, b, c. Kim tra xem a, b, c c phi l 3 cnh ca tam gic khng? Nu l 3 cnh ca tam gic th tnh di n tch c a tam gic theo cng thc sau:
17. S =
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 18. Vit chng trnh nhp vo 3 s nguyn ri in ra mn hnh theo th t tng dn. 19. Vit chng trnh tnh tin in gm cc khong sau: - Tin thu bao in k: 1000/thng - nh mc s dng in cho mi h l: 50 KW vi gi 230/KW - Nu phn vt nh mc <= 50KW th tnh gi 480/KW - Nu 50KW < phn vt nh mc < 100KW th tnh gi 700/KW - Nu phn vt nh mc <= 100KW th tnh gi 900/KW Ch s mi v c c nhp vo t bn phm - In ra mn hnh ch s c, ch s mi, tin tr nh mc, tin tr vt nh mc, tng tin phi tr.
p * ( p - a ) * ( p - b) * p - c) , vi p l 1/2 chu vi ca tam gic.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 55
Bi 6 : CU TRC VNG LP
6.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha, cch hot ng ca vng lp. - C php, ngha, cch s dng lnh for, while, do...while. - ngha v cch s dng lnh break, continue. - Mt s bi ton s dng lnh for, while, do...while thng qua cc v d. - So snh, nh gi mt s bi ton s dng lnh for, while hoc do...while. - Cu trc vng lp lng nhau. 6.2 Ni dung 6.2.1 Lnh for Vng lp xc nh thc hin lp li mt s ln xc nh ca mt (chui hnh ng) C php lnh for (biu thc 1; biu thc 2; biu thc 3) khi lnh; t kha for phi vit bng ch thng Nu khi lnh bao gm t 2 lnh tr ln th phi t trong du { }
Lu Vo
iu kin ng khi lnh Ra
Sai
kim tra iu kin nu ng ng th thc hin khi lnh; lp li kim tra iu kin nu sai thot khi vng lp.
Gii thch: + Biu thc 1: khi to gi tr ban u cho bin iu khin. + Biu thc 2: l quan h logic th hin iu kin tip tc vng lp. + Biu thc 3: php gn dng thay i gi tr bin iu khin. Nhn xt: + Biu thc 1 bao gi cng ch c tnh ton mt ln khi gi thc hin for. + Biu thc 2, 3 v thn for c th thc hin lp li nhiu ln. Lu : + Biu thc 1, 2, 3 phi phn cch bng du chm phy (;)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 56
+ Nu biu thc 2 khng c, vng for c xem l lun lun ng. Mun thot khi vng lp for phi dng mt trong 3 lnh break, goto hoc return. + Vi mi biu thc c th vit thnh mt dy biu thc con phn cch nhau b i d u phy. Khi cc biu thc con c xc nh t tri sang ph i. Tnh ng sai c a dy bi u thc con trong biu thc th 2 c xc nh bi biu thc con cui cng. + Trong thn for (khi lnh) c th cha mt hoc nhiu cu trc iu khin khc. + Khi gp lnh break, cu trc lp su nht s thot ra. + Trong thn for c th dng lnh goto thot khi vng lp n v tr mong mun. + Trong thn for c th s dng return tr v mt hm no . + Trong thn for c th s dng lnh continue chuyn n u vng lp (b qua cc cu lnh cn li trong thn). V d 1: Vit chng trnh in ra cu "Vi du su dung vong lap for" 3 ln.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* Chuong trinh in ra cau "Vi du su dung vong lap for" 3 lan */ #include <stdio.h> #include <conio.h> #define MSG "Vi du su dung vong lap for.\n" void main(void) { int i; for(i = 1; i<=3; i++) printf("%s", MSG); getch(); }
F1 Help Alt-F8 Next Msg
/hoac for(i = 1; i<=3; i+=1)
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
Vi du su dung vong lap for. Vi du su dung vong lap for. Vi du su dung vong lap for. _ khng c thc hin. Bn thay 2 dng 11 v 12 bng cu lnh for(i=1; i<=3; i++, printf("%s", MSG)); Chy li chng trnh, quan st v nhn xt kt qu.
C du chm phy sau lnh for(i=1; i<=3; i++); cc lnh thuc vng lp for s
V d 2: Vit chng trnh nhp vo 3 s nguyn. Tnh v in ra tng ca chng.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8
/* Chuong trinh nhap vao 3 so va tinh tong */ #include <stdio.h> #include <conio.h> void main(void) { int i, in, is;
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 57
9 10 11 12 13 14 15 16 17 18 }
is = 0; for(i = 1; i<=3; i++) { printf("Nhap vao so thu %d :", i); scanf("%d", &in); is = is + in; } printf("Tong: %d", is); getch();
Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
F1 Help
Kt qu in ra mn hnh
Nhap vao so thu 1: 5 Nhap vao so thu 2: 4 Nhap vao so thu 3: 2 Tong: 11. _ Bn thay cc dng t 9 n 15 bng cu lnh: for(is=0, i=1; i<=3; printf("Nhap vao so thu %d: ", i), scanf("%d", &in), i++, is=is+in); Chy li chng trnh, quan st v nhn xt kt qu.
bc cc lnh li. Dng 12, 13, 14 thuc vng for dng 10 do c bc bi cp ngoc { }. Nu 3 dng ny khng bc bi cp ngoc { }, th ch dng 12 thuc vng lp for, cn 2 dng cn li khng thuc vng lp for. V d 3: Vit chng trnh nhp vo s nguyn n. Tnh tng cc gi tr l t 0 n n.
Dng File Edit Search Run Compile Debug Project Option Window Help
Trong vng lp for c s dng t 2 lnh tr ln, nh s dng cp ngoc { }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* Chuong trinh nhap vao 3 so va tinh tong */ #include <stdio.h> #include <conio.h> void main(void) { int i, in, is = 0; printf("Nhap vao so n: "); scanf("%d", &in); is = 0; for(i = 0; i<=in; i++) { if (i % 2 != 0) //neu i la so le is = is + i; //hoac is += i; } printf("Tong: %d", is); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so n : 5 Bn thay cc dng t 11 n 16 bng cu lnh:
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 58
Tong: 9. _
for(is=0, i=1; i<=n; is=is+i, i+=2); Chy li chng trnh, quan st v nhn xt kt qu.
trnh bn nn vit lnh for c 3 biu thc n v cc lnh thc hin trong thn for mi lnh mt dng sau ny c th c li d hiu, d sa cha. V d 4: Mt vi v d thay i bin iu khin vng lp. - Thay i bin iu khin t 1 n 100, mi ln tng 1: for(i = 1; i <= 100; i++) - Thay i bin iu khin t 100 n 1, mi ln gim 1: for(i = 100; i >= 1; i--) - Thay i bin iu khin t 7 n 77, mi ln tng 7: for(i = 7; i <= 77; i += 7) - Thay i bin iu khin t 20 n 2, mi ln gim 2: for(i = 20; i >= 2; i = 2) V d 5: c vo mt lot k t trn bn phm. Kt thc khi gp du chm '.' .
Dng File Edit Search Run Compile Debug Project Option Window Help
Bn c th vit gp cc lnh trong thn for vo trong lnh for. Tuy nhin, khi lp
1 2 3 4 5 6 7 8 9 10 11 12
/* Doc vao 1 loat ktu tren ban phim. Ket thuc khi gap dau cham */ #include <stdio.h> #define DAU_CHAM '.'
void main(void) { char c; for(; (c = getchar()) != DAU_CHAM; ) putchar(c); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
a a 4 4 . _ Bn thay cc dng t 10 n 11 bng cu lnh: for(; (c = getchar()) != DAU_CHAM; putchar(c)); Chy li chng trnh, quan st v nhn xt kt qu.
Vng lp for vng mt biu thc 1 v 3.
V d 6: c vo mt lot k t trn bn phm, m s k t nhp vo. Kt thc khi gp du chm '.' .
Dng File Edit Search Run Cmpile Debug Project Option Window Help
1 /* Doc vao 1 loat ktu tren ban phim, dem so ktu nhap vao. Ket thuc khi gap dau cham */ 2
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 59
3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include <stdio.h> #include <conio.h> #define DAU_CHAM '.'
void main(void) { char c; int idem; for(idem = 0; (c = getchar()) != DAU_CHAM; ) idem++; printf("So ki tu: %d.\n", idem); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
afser. So ki tu: 5. _ Bn thay cc dng t 12 n 13 bng cu lnh: for(idem = 0; (c = getchar()) != DAU_CHAM; idem++); Chy li chng trnh, quan st v nhn xt kt qu.
Vng lp for vng mt biu thc 3.
V d 7: c vo mt lot k t trn bn phm, m s k t nh p vo. K t thc khi g p du chm '.' .
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/* Doc vao 1 loat ktu tren ban phim, dem so ktu nhap vao. Ket thuc khi gap dau cham */ #include <stdio.h> #include <conio.h> #define DAU_CHAM '.'
void main(void) { char c; int idem = 0; for(; ;) { c = getchar(); if (c == DAU_CHAM) //nhap vao dau cham break; //thoat vong lap idem++; } printf("So ki tu: %d.\n", idem); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 60
afser. So ki tu: 5. _
Chy li chng trnh, quan st v nhn xt kt qu.
Vng lp for vng mt c ba biu thc.
V d 8: Nhp vo 1 dy s nguyn t bn phm n khi g p s 0 th d ng. In ra t ng cc s nguyn dng.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* Nhap vao 1 day so nguyen tu ban phim den khi gap so 0 thi dung. In ra tong cac so nguyen duong */ #include <stdio.h> #include <conio.h> void main(void) { int in, itong = 0; for(; ;) { printf("Nhap vao 1 so nguyen: "); scanf("%d", &in); if (in < 0) continue; //in < 0 quay nguoc len dau vong lap if (in == 0) break; //in = 0 thoat vong lap itong += in; } printf("Tong: %d.\n", itong); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao 1 so nguyen: -8 Nhap vao 1 so nguyen: 9 Nhap vao 1 so nguyen: -7 Nhap vao 1 so nguyen: 3 Nhap vao 1 so nguyen: 0 Tong: 12 _ 6.2.2 Lnh break Thng thng lnh break dng thot khi vng lp khng xc nh iu kin dng hoc bn mun dng vng lp theo iu kin do bn ch nh. Vic dng lnh break thot khi vng lp thng s dng phi hp vi lnh if. Lnh break dng trong for, while, do...while, switch. Lnh break thot khi vng lp cha n. V d 9 : Nh v d 7, 8 S dng lnh break trong switch nhy b cc cu lnh k tip cn l i.
Hanoi AptechComputerEducationCenter
Chy li chng trnh vi s liu khc Quan st v nhn xt kt qu.
Gio trnh Lp trnh C cn bn
Trang 61
6.2.3 Lnh continue c dng trong vng lp for, while, do...while. Khi lnh continue thi hnh quyn iu khin s trao qua cho biu thc iu kin ca vng lp gn nht. Ngha l ln ngc ln u vng lp, tt c nhng lnh i sau trong vng lp cha continue s b b qua khng thi hnh. V d 10 : Nh v d 8 6.2.4 Lnh while Vng lp thc hin lp li trong khi biu thc cn ng. C php lnh while (biu thc) khi lnh; t kha while phi vit bng ch thng Nu khi lnh bao gm t 2 lnh tr ln th phi t trong du { }
Lu Vo
biu thc ng khi lnh Ra
Sai
Trc tin biu thc c kim tra nu sai th kt thc vng lp while (khi lnh khng c thi hnh 1 ln no) nu ng thc hin khi lnh; lp li kim tra biu thc
+ Biu thc: c th l mt biu thc hoc nhiu biu thc con. Nu l nhiu biu thc con th cch nhau bi du phy (,) v tnh ng sai ca biu th c c quy t nh b i biu thc con cui cng. + Trong thn while (khi lnh) c th cha mt hoc nhiu cu trc iu khin khc. + Trong thn while c th s dng lnh continue chuyn n u vng lp (b qua cc cu lnh cn li trong thn). + Mun thot khi vng lp while ty c th dng cc l nh break, goto, return nh lnh for. V d 11: Vit chng trnh in ra cu "Vi du su dung vong lap while" 3 ln.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8
/* Chuong trinh in ra cau "Vi du su dung vong lap while" 3 lan */ #include <stdio.h> #include <conio.h> #define MSG "Vi du su dung vong lap while.\n" void main(void)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 62
9 { 10 int i = 0; 11 while (i++ < 3) 12 printf("%s", MSG); 13 getch(); 14 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Vi du su dung vong lap while. Vi du su dung vong lap while. Vi du su dung vong lap while. _ phm.
Dng File Edit Search Run Compile Debug Project Option Window Help
Bn thay 2 dng 11 v 12 bng cu lnh while(printf("%s", MSG), ++i < 3); Chy li chng trnh v quan st kt qu.
V d 12: Vit chng trnh tnh tng cc s nguyn t 1 n n, vi n c nhp vo t bn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/* Chuong trinh tnh tong cac so nguyen tu 1 den n */ #include <stdio.h> #include <conio.h> void main(void) { int i = 0, in, is = 0; printf("Nhap vao so n: "); scanf("%d", &in); while (i++ < in) is = is + i; //hoac is += i; printf("Tong: %d", is); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so n : 5 Tong: 15. _ Bn thay cc dng t 11 n 12 bng cu lnh: while(is = is+i, i++ < in); Chy li chng trnh, quan st v nhn xt kt qu.
V d 13: Thay dng for(; (c = getchar()) != DAU_CHAM; ) v d 5 thnh dng while ((c = getchar()) != DAU_CHAM)
Chy li chng trnh, quan st v nhn xt kt qu.
V d 14: v d 6, thay dng int dem; thnh dng int dem = 0; , thay dng for(idem=0; (c = getchar()) != DAU_CHAM; ) thnh dng while ((c = getchar()) != DAU_CHAM)
Chy li chng trnh, quan st v nhn xt kt qu.
V d 15: v d 7 v 8, thay dng for( ; ; ) thnh dng while(1)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 63
Chy li chng trnh, quan st v nhn xt kt qu.
6.2.5 Lnh do...while Vng lp thc hin lp li cho n khi biu thc sai. C php lnh do khi lnh; while (biu thc); t kha do, while phi vit bng ch thng Nu khi lnh bao gm t 2 lnh tr ln th phi t trong du { }
Lu Vo
khi lnh ng biu thc Sai Ra
Thc hin khi lnh Kim tra biu thc Nu ng th lp li thc hin khi lnh Nu sai th kt thc vng lp (khi lnh c thi hnh 1 ln)
+ Biu thc: c th l mt biu thc hoc nhiu biu th c con. N u l nhi u bi u thc con th cch nhau bi du phy (,) v tnh ng sai c a bi u th c c quy t nh b i biu thc con cui cng. + Trong thn do...while (khi lnh) c th cha mt hoc nhiu cu trc iu khin khc. + Trong thn do...while c th s dng lnh continue chuyn n u vng l p (b qua cc cu lnh cn li trong thn). + Mun thot khi vng lp do...while ty c th dng cc lnh break, goto, return. V d 16: Vit chng trnh kim tra password.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* Chuong trinh kiem tra mat khau */ #include <stdio.h> # define PASSWORD 12345 void main(void) { int in; do { printf("Nhap vao password: "); scanf("%d", &in); } while (in != PASSWORD)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 64
15 }
F1 Help
Alt-F8 Next Msg
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
Nhap vao password: 1123 Nhap vao password: 12346 Nhap vao password: 12345 Bn thay cc dng t 10 n 14 bng cu lnh: do{}while(printf("Nhap vao password: "), scanf("%d", &in), in != PASSWORD); Chy li chng trnh v quan st kt qu.
V d 17: Vit chng trnh nhp vo nm hin ti, nm sinh. In ra tuoi.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/* Chuong trinh in tuoi */ #include <stdio.h> # define CHUC "Chuc ban vui ve (: >\n"
void main(void) { unsigned char choi; int inamhtai, inamsinh; do { printf("Nhap vao nam hien tai: "); scanf("%d", inamhtai); printf("Nhap vao nam sinh: "); scanf("%d", inamsinh); printf("Ban %d tuoi, %s", inamhtai inamsinh, CHUC); printf("Ban co muon tiep tuc? (Y/N)\n"); choi = getch(); } while (choi == 'y' || choi == 'Y'); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao nam hien tai: 2002 Bn li chng trnh vi s liu khc. Nhap vao nam sinh: 1980 Quan st, nh gi v nhn xt kt qu. Ban 22 tuoi, chuc ban vui ve (:> Ban co muon tiep tuc? _ (Y/N) (nu g y hoc Y tip tc thc hin chng trnh, ngc li g cc phm khc chng trnh s thot)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 65
6.2.6 Vng lp lng nhau V d 18: V hnh ch nht c bng cc du '*'
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/* Ve hinh chu nhat dac */ #include <stdio.h> #include <conio.h> void main(void) { int i, ij, idai, irong; printf("Nhap vao chieu dai: "); scanf("%d", &idai); printf("Nhap vao chieu rong: "); scanf("%d", &irong); for (i = 1; i <= irong; i++) { for (ij = 1; ij <= idai; ij++) //in mot hang voi chieu dai dau * printf("*"); printf("\n"); //xuong dong khi in xong 1 hang } getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao chieu dai: 10 Nhap vao chieu rong: 5 ********** ********** ********** ********** ********** _ Bn li chng trnh vi s liu khc. Quan st, nh gi v nhn xt kt qu.
V d 19: V hnh ch nht c c chiu rng = 10 hng. Hng th 1 = 10 s 0, hng th 2 = 10 s 1...
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11
/* Ve hinh chu nhat bang cac so tu 0 den 9 */ #include <stdio.h> #include <conio.h> void main(void) { int i = 0, ij; while (i <= 9) { ij = 0;
//khoi tao lai ij = 0 cho lan in ke tiep
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 66
12 while (ij++ <= 9) 13 printf("%d", i); 14 printf("\n"); 15 i++; 16 } 17 getch(); 18 } 19
F1 Help Alt-F8 Next Msg
//in 1 hang 10 so i //xuong dong khi in xong 1 hang //tang i len 1 cho vong lap ke tiep
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
0000000000 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 _ Thay dng 11, 12 thnh cu lnh for (ij = 0; ij <= 9; ij++) Chy li chng trnh. Quan st, nh gi v nhn xt kt qu.
nhau. Nu khng cn thit khng nn lng vo nhiu cp d gy nhm ln khi lp trnh cng nh kim sot chng trnh. 6.2.7 So snh s khc nhau ca cc vng lp - Vng lp for thng s dng khi bit c s ln lp xc nh. - Vng lp thng while, do...while s dng khi khng bit r s ln lp. - Khi gi vng lp while, do...while, nu biu th c sai vng l p while s khng c thc hin ln no nhng vng lp do...while thc hin c 1 ln.
Cc lnh lp for, while, do...while c th lng vo chnh n, hoc lng vo ln
S ln thc hin t nht ca while l 0 v ca do...while l 1
6.3 Bi tp 1. Vit chng trnh in ra bng m ASCII 2. Vit chng trnh tnh tng bc 3 ca N s nguyn u tin. 3. Vit chng trnh nhp vo mt s nguyn ri in ra tt c cc c s ca s . 4. Vit chng trnh v mt tam gic cn bng cc du * 5. Vit chng trnh tnh tng nghch o ca N s nguyn u tin theo cng thc S = 1 + 1/2 + 1/3 + ... + 1/N 6. Vit chng trnh tnh tng bnh phng cc s l t 1 n N. 7. Vit chng trnh nhp vo N s nguyn, tm s ln nht, s nh nht. 8. Vit chng trnh nhp vo N ri tnh giai tha ca N. 9. Vit chng trnh tm USCLN, BSCNN ca 2 s.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 67
10. Vit chng trnh v mt tam gic cn rng bng cc du *. 11. Vit chng trnh v hnh ch nht rng bng cc du *. 12. Vit chng trnh nhp vo mt s v kim tra xem s c phi l s nguyn t hay khng? 13. Vit chng trnh tnh s hng th n ca dy Fibonaci. Dy Fibonaci l dy s gm cc s hng p(n) vi: p(n) = p(n-1) + p(n-2) vi n>2 v p(1) = p(2) = 1 Dy Fibonaci s l: 1 1 2 3 5 8 13 21 34 55 89 144... 14. Vit chng trnh tnh gi tr ca a thc Pn = anxn + an-1xn-1 + ... + a1x1 + a0 Hng dn a thc c th vit li Pn = (...(anx + an-1)x + an-2)x + ... + a0 Nh vy trc tin tnh anx + an-1, ly kt qu nhn vi x, sau ly kt qu nhn vi x cng thm an-2, ly kt qu nhn vi x ... n gi l bc ca a thc. 15. Vit chng trnh tnh xn vi x, n c nhp vo t bn phm. 16. Vit chng trnh nhp vo 1 s t 0 n 9. In ra ch s tng ng. V d: nhp vo s 5, in ra "Nm". t. 17. Vit chng trnh phn tch mt s nguyn N thnh tch ca cc tha s nguyn
18. Vit chng trnh lp li nhiu ln cng vic nhp mt k t v in ra m ASCII ca k t , khi no nhp s 0 th dng. 19. Vit chng trnh tm c s chung ln nht v bi s chung nh nht ca 2 s nguyn. 20. Vit chng trnh in l c nc M. 21. Vit chng trnh tnh dn s ca mt thnh ph sau 10 nm na, bit rng dn s hin nay l 6.000.000, t l tng dn s hng nm l 1.8% . bng tng 3 ch s. V d: 1*2*3 = 1+2+3.
22. Vit chng trnh tm cc s nguyn gm 3 ch s sao cho tch ca 3 ch s
23. 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*c 24. Vit chng trnh tnh t hp N chp K (vi K <= N) C=((N-k+1) * (N-k+2)*...N)/1*2*3*...*k Trong C l mt tch gm k phn t vi ph n t th I l (N-k+1)/I. vi t chng trnh ny, bn dng vng lp For vi bin iu khin I t gi tr u l 1 tng n gi tr cui l k kt hp vi vic nhn dn vo kt qu C. 25. Vit chng trnh gii bi ton c in sau: Trm tru, trm c Tru ng n nm Tru nm n ba, Ba tru gi n mt Hi mi loi tru c bao nhiu con. 26. Vit chng trnh gii bi ton c in sau: Va g va ch 36 con
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 68
B li cho trn, m 100 chn Hi c bao nhiu g, bao nhiu ch 27. Vit chng trnh in ra bng cu chng 28. Vit chng trnh xc nh xem mt t giy c dy 0.1 mm. Phi gp i t giy bao nhiu ln n c dy 1m. 29. Vit chng trnh tm cc s nguyn t t 2 n N, vi N c nhp vo. 30. Vit chng trnh lp i lp li cc cng vic sau: - Nhp vo mt k t trn bn phm. - Nu l ch thng th in ra chnh n v ch HOA tng ng. - Nu l ch HOA th in ra chnh n v ch thng tng ng. - Nu l k s th in ra chnh n. - Nu l mt k t iu khin th kt thc chng trnh 31. Vit chng trnh nhp vo x, n tnh: x + x + ... + x (n du cn)
x xn + ... 2 n +1
-1+
32. Vit chng trnh nhp vo N s nguyn, m xem c bao nhiu s m, bao nhiu s dng v bao nhiu s khng.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 69
Bi 7 : HM
7.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - Khi nim, cch khai bo v hm. - Cch truyn tham s, tham bin, tham tr. - S dng bin cc b, ton cc trong hm. - S dng tin x l #define 7.2 Ni dung Hm l mt chng trnh con thc hin mt khi cng vic c lp i lp li nhiu ln trong khi chy chng trnh hoc dng tch mt khi cng vic c th chng trnh phc tp. 7.2.1 Cc v d v hm V d 1:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#include <stdio.h> #include <conio.h> // khai bao prototype void line(); // ham in 1 dong dau void line() { int i; for(i = 0; i < 19; i++) printf("*"); printf("\n"); } void main(void) { line(); printf("* Minh hoa ve ham *"); line(); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 70
***************** * Minh hoa ve ham * ***************** _
Gii thch chng trnh
Dng 8 n dng 14: nh ngha hm line, hm ny khng tr v gi tr, thc hin cng vic in ra 19 du sao. Dng 5: khai bo prototype, sau tn hm phi c du chm phy Trong hm line c s dng bin i, bin i l bin cc b ch s dng c trong phm vi hm line. Dng 18 v 20: gi thc hin hm line. * Trnh t thc hin chng trnh void main(void) { line(); printf("* Minh hoa ve ham *"); line(); getch(); } gi thc hin hm line void line() { int i; for(i = 0; i < 19; i++) printf("*"); printf("\n");
}
quay v chng trnh chnh thc hin lnh k tip
Khng c du chm phy sau tn hm, phi c cp du ngoc ( ) sau tn hm
nu hm khng c tham s truyn vo. Phi c du chm phy sau tn hm khai bo prototype. Nn khai bo prototype cho d hm c gi nm trc hay sau cu lnh gi n. V d 2:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include <stdio.h> #include <conio.h> // khai bao prototype int power(int, int); // ham tinh so mu int power(int ix, int in) { int i, ip = 1; for(i = 1; i <= in; i++) ip *= ix; return ip; }
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 71
16 void main(void) 17 { 18 printf("2 mu 2 = %d.\n", power(2, 2)); 19 printf("2 mu 3 = %d.\n", power(2, 3)); 20 getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
2 mu 2 = 4. 2 mu 3 = 8. _
Gii thch chng trnh
Hm power c hai tham s truyn vo l ix, in c kiu int v kiu tr v cng c kiu int. Dng 13: return ip: tr v gi tr sau khi tnh ton Dng 18: i mc 2 v 3 c kiu tr v l int sau khi thc hin gi power. Hai tham s ix, in ca hm power l dng truyn tham tr. * Trnh t thc hin chng trnh void main(void) { printf("2 mu 2 = %d.\n", power(2, 2)); printf("2 mu 3 = %d.\n", power(2, 3)); getch(); } quay v chng trnh chnh thc hin lnh k tip truyn gi tr vo hm gi thc hin hm power
int power(int ix, int in) { int i, ip = 1; for(i = 1; i <= in; i++) ip *= ix; return ip; }
tr v gi tr kiu int xut ra mn hnh
Quy tc t tn hm ging tn bin, hng... Mi i s cch nhau = du phy km theo kiu d liu tng ng.
V d 3:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8
#include <stdio.h> #include <conio.h> // khai bao prototype void time(int & , int &); // ham doi phut thanh gio:phut void time(int &ig, int &ip)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 72
9 10 11 12 13 14 15 16 17 18 19 20 21 22
{ ig = ip / 60; ip %= 60; } void main(void) { int igio, iphut; printf("Nhap vao so phut : "); scanf("%d", &iphut); time(igio, iphut); printf("%02d:%02d\n", igio, iphut); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so phut: 185 03:05 _
Gii thch chng trnh
Hm time c hai tham s truyn vo l ix, in c ki u int. 2 tham s ny c ton t a ch & i trc cho bit 2 tham s ny l dng truyn tham bin. * Trnh t thc hin chng trnh void main(void) { int igio, iphut; printf("Nhap vao so phut : "); scanf("%d", &iphut); time(igio, iphut); truyn gi tr vo hm iphut = 185 igio = # gi thc hin hm time void time(int &ig, int &ip) { ig = ip / 60; ip %= 60; }
printf("%02d:%02d\n", igio, iphut); getch(); }
quay v chng trnh chnh thc hin lnh k tip igio = ig = 3 iphut = ip = 5
7.2.2 Tham s dng tham bin v tham tr V d 4: void thamtri(int ix, int iy) { ix += 1; //cong ix them 1 void main(void) { int ia = 5, ib = 5; Kt qu in ra:
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 73
iy += 1;
//cong iy them 1
} void thambien(int &ix, int &iy) { ix += 1; //cong ix them 1 iy += 1; //cong iy them 1 }
thamtri(ia, ib); printf("a = %d, b = %d", ia, ib); a = 5, b = 5 thambien(ia, ib); printf("a = %d, b = %d", ai, ib); a = 6, b = 6 }
th tr v nhiu gi tr sau khi gi hm bn s dng hm truyn nhiu tham s dng tham bin. 7.2.3 S dng bin ton cc V d 5:
Dng File Edit Search Run Compile Debug Project Option Window Help
i vi hm s dng lnh return bn ch c th tr v duy nht 1 gi tr m thi. c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
#include <stdio.h> #include <conio.h> // khai bao prototype void oddeven(); void negative(); //khai bao bien toan cuc int inum; void main(void) { printf("Nhap vao 1 so nguyen : "); scanf("%d", &inum); oddeven(); negative(); getch(); } // ham kiem tra chan le void oddeven() { if (inum % 2) printf("%d la so le.\n", inum); else printf("%d la so chan.\n", inum); } //ham kiem tra so am void negative() { if (inum < 0)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 74
33 printf("%d la so am.\n", inum); 34 else 35 printf("%d la so duong.\n", inum); 36 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao 1 so nguyen: 3 3 la so le. 3 la so duong. _
Gii thch chng trnh
Chng trnh trn gm 2 hm oddeven v negative, 2 hm ny bn thy khng c tham s truyn bin inum vo x l nhng vn cho kt qu ng. Do chng trnh s dng bin inum ton cc (dng.9) nn bin ny c nh hng n ton b chng trnh m i khi g i v s dng n. Xt tnh hung sau: Gi s trong hm negative ta khai bo bi n inum c ki u int nh sau: void negative() { int inum; .... } Khi chng trnh s cho kt qu sai! Do cc cu lnh trong hm negative s dng bin inum s s dng bin inum khai bo trong hm negative v lc ny bin inum ton cc khng c tc dng i vi cc cu lnh trong hm ny. Bin inum khai bo trong hm negative ch c nh hng trong phm vi hm v chu trnh sng ca n bt u t lc gi hm n khi thc hin xong. kim sot chng trnh. V d 6:
Dng File Edit Search Run Compile Debug Project Option Window Help
Cn thn khi t tn bin, xc nh r phm vi ca bin khi s dng c th d dng
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include <stdio.h> #include <conio.h> #define PI 3.14 // khai bao prototype float area(); //khai bao bien toan cuc float frad; void main(void) { printf("Nhap vao ban kinh hinh cau : ");
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 75
15 16 17 18 19 20 21 22 23 24
scanf("%f", &frad); printf("Dien tich hinh cau: %10.3f.\n", area()); getch(); } // ham tinh dien tich hinh cau float area() { return (4*PI*frad*frad); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao ban kinh hinh cau: 3.2 Dien tich hinh cau: 128.614 _ 7.2.4 Dng dn hng #define Sau y l mt vi v d dng dn hng #define nh ngha hm n gin #define AREA_CIRCLE (frad) (4*PI*frad*frad) //tinh dien tich hinh cau #define SUM (x, y) (x + y) //cong 2 so #define SQR (x) (x*x) //tinh x binh phuong #define MAX(x, y) (x > y) ? x : y //tim so lon nhat giua x va y #define ERROR (s) printf("%s.\n", s) //in thong bao voi chuoi s V d 7: Trong v d 6 xa t dng 20 n dng 24, xa dng 6, 7; thm dng AREA_CIRCLE (frad) (4*PI+frad*frad) vo sau dng 5. Sa dng printf("Dien tich hinh cau: %10.3f.\n", area()); thnh printf("Dien tich hinh cau: %10.3f.\n", AREA_CIRCLE(frad)); Chy li chng trnh, quan st v nhn xt kt qu. V d 8:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11
#include <stdio.h> #include <conio.h> #define MAX(x, y) (x > y) ? x : y void main(void) { float a = 4.5, b = 6.1; printf("So lon nhat la: %5.2f.\n", MAX(a, b)); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 76
So lon nhat la: 6.10 _ 7.3 Bi tp 1. Vit hm tnh n!
Thm vo dng 8 gi tr c = 10 Sa li dng 9: MAX(a, b) thnh MAX(MAX(a, b), c) Chy li chng trnh, quan st v nhn xt kt qu
2. Vit hm tnh tng S = 1+2+....+n. 3. Vit hm kim tra s nguyn t. 4. Vit hm tnh s hng th n trong dy Fibonacci. 5. Vit hm tm s ln nht trong 2 s.
Bi 8 : MNG V CHUI
8.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha, cch khai bo mng, chui. - Nhp, xut mng, chui. - Khi to mng chui. - Mt s k thut thao tc trn mng, chui. - Dng mng lm tham s cho hm. - Mt s hm x l chui 8.2 Ni dung 8.2.1 Mng L tp hp cc phn t c cng d liu. Gi s bn mun l u n s nguyn tnh trung bnh, bn khng th khai bo n bin lu n gi tr ri sau tnh trung bnh. V d 1 : bn mun tnh trung bnh 10 s nguyn nh p vo t bn phm, b n s khai bo 10 bin: a, b, c, d, e, f, g, h, i, j c kiu int v lp thao tc nh p cho 10 bin ny nh sau: printf("Nhap vao bien a: "); scanf("%d", &a); 10 bin bn s thc hin 2 lnh trn 10 ln, sau tnh trung bnh: (a + b + c + d + e + f + g + h + i + j)/10
iu ny ch ph hp vi n nh, cn i vi n ln th kh c th th c hin c. V
vy khi nim mng c s dng 8.2.1.1 Cch khai bo mng V d 2 : int ia[10]; vi int l kiu mng, ia l tn mng, 10 s phn t mng ngha: Khai bo mt mng s nguyn gm 10 phn t, mi phn t c kiu int.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 77
Mi phn t trong mng c kiu int ia 10 phn t 8.2.1.2 Tham chiu n tng phn t mng Sau khi mng c khai bo, mi phn t trong mng u c ch s tham chi u. Ch s bt u t 0 n n-1 (vi n l kch thc mng). Trong v d trn, ta khai bo m ng 10 phn t th ch s bt u t 0 n 9. 0 ia ia[2] 8.2.1.3 Nhp d liu cho mng ia[7] 1 2 3 4 5 6 7 8 9
ia[2], ia[7]... l phn t th 3, 8... trong mng xem nh l mt bin kiu int. for (i = 0; i < 10; i++) //vng for c gi tr i chy t 0 n 9 { printf("Nhap vao phan tu thu %d: ", i + 1); scanf("%d", &ia[i]); } 8.2.1.4 c d liu t mng for(i = 0; i < 10; i++) printf("%3d ", ia[i]); V d 3 : Vit chng trnh nhp vo n s nguyn. Tnh v in ra trung bnh cng.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* Tinh trung binh cong n so nguyen */ #include <stdio.h> #include <conio.h> void main(void) { int ia[50], i, in, isum = 0; printf("Nhap vao gia tri n: "); scanf("%d", &in); //Nhap du lieu vao mang for(i = 0; i < in; i++) { printf("Nhap vao phan tu thu %d: ", i + 1); scanf("%d", &ia[i]); //Nhap gia tri cho phan tu thu i } //Tinh tong gia tri cac phan tu
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 78
20 for(i = 0; i < in; i++) 21 isum += ia[i]; //cong don tung phan tu vao isum 22 23 printf("Trung binh cong: %.2f\n", (float) isum/in); 24 getch(); 25 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao gia tri n: 3 Nhap vao phan tu thu 1: 7 Nhap vao phan tu thu 2: 3 Nhap vao phan tu thu 3: 6 Trung binh cong: 5.33 _ Bn c th gp 2 lnh for thnh mt va nhp va tnh tng, a hng 21 sau hng 16 v b cc hng 19, 20, 21. Chy v quan st kt qu.
iu g s xy ra cho on chng trnh trn nu bn nhp n > 50 trong khi bn ch khai bo mng ia ti a l 50 phn t. Bn dng lnh if ngn ch n iu ny trc khi vo thc hin lnh for. Thay dng 9, 10 bng on lnh sau : do { printf("Nhap vao gia tri n: "); scanf("%d", &in); } while (in <= 0 || in > 50); //chi chap nhan gia tri nhap vao trong khoang 1..50
Chy chng trnh v nhp n vi cc gi tr -6, 0, 51, 6. Quan st kt qu.
8.2.1.5 S dng bin kiu khc Ngoi kiu int, bn c th khai bo mng kiu char, float, double... V d 4 : char cloai[20]; float ftemp[10]; cch tham chiu, nhp d liu, c d liu nh trn. 8.2.1.6 K thut Sentinal S dng k thut ny nhp liu gi tr cho cc ph n t m ng m khng bi t r s lng phn t s nhp vo l bao nhiu (khng bit s n). V d 5 : Vit chng trnh nhp vo 1 dy s dng ri in tng cc s dng . Phc ha li gii: Chng trnh yu cu nhp vo dy s dng m khng bit tr c s lng phn t cn nhp l bao nhiu, v vy chm d t nh p li u khi th a mn b ng cch nhp vo s m hoc khng.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6
/* Nhap vao day so nguyen duong, in ra day chan, day le */ #include <stdio.h> #include <conio.h> #define MAX 50
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 79
7 void main(void) 8 { 9 float fa[MAX], fsum = 0; 10 int i = 0; 11 do 12 { 13 printf("Nhap vao phan tu thu %d: ", i + 1); 14 scanf("%f", &fa[i]); //Nhap gia tri cho phan tu thu i 15 } while (fa[i++] > 0); //con nhap lieu khi gia tri phan tu > 0 16 17 i--; //giam i di 1 lan cuoi cung tang 1 truoc khi thoat 18 //Tinh tong 19 for(int ij = 0; ij < i; ij++) 20 fsum += fa[ij]; //cong don tung phan tu vao isum 21 22 printf("Tong : %5.2f\n", fsum); 23 getch(); 24 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao phan tu thu 1: 1.2 Nhap vao phan tu thu 2: 3 Nhap vao phan tu thu 3: 4.6 Nhap vao phan tu thu 4: -9 Tong : 8.80 _ Bn chy li chng trnh v th li vi s liu khc. Quan st kt qu.
iu g s xy ra cho on chng trnh trn nu bn nhp s lng phn t vt qu 50 trong khi bn ch khai bo mng fa ti a l MAX = 50 phn t. Bn dng lnh break thot khi vng lp do...while trc khi bc sang phn t th 51. Thm on lnh sau vo trc dng 13:
if (i >= MAX) { printf("Mang da day!\n"); i++; break; } //kiem tra phan tu buoc sang 51 //thong bao "Mang da day" //tang i len 1 do dong 17 giam i xuong 1 //thoat khoi vong lap do...while
Quan st kt qu. 8.2.1.7
Sa dng 5 thnh #define MAX 4. Chy chng trnh v nhp cc s 1.2, 3.5, 6.5, 4.
Khi to mng
V d 6 : C 4 loi tin 1, 5, 10, 25 v 50 ng. Hy vi t ch ng trnh nh p vo s tin sau cho bit s s tin trn gm my loi tin, mi loi bao nhiu t.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 80
Phc ha li gii: S tin l 246 ng gm 4 t 50 ng, 1 t 25 ng, 2 t 10 ng, 0 t 5 ng v 1 t 1 ng, Ngha l bn phi xt loi tin l n tr c, n u h t kh nng m i xt tip loi k tip.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/* Nhap vao so tien va doi tien ra cac loai 50, 25, 10, 5, 1 */ #include <stdio.h> #include <conio.h> #define MAX 5 void main(void) { int itien[MAX] = {50, 25, 10, 5, 1}; //Khai bao va khoi tao mang voi 5 phan tu int i , isotien, ito; printf("Nhap vao so tien: "); scanf("%d", &isotien); //Nhap vao so tien for (i = 0; i < MAX; i++) { ito = isotien/itien[i]; //Tim so to cua loai tien thu i printf("%4d to %2d dong\n", ito, itien[i]); isotien = isotien%itien[i]; //So tien con lai sau khi da loai tru cac loai tien da co } getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so tien: 246 4 t 50 ng 1 t 25 ng 2 t 10 ng 0 t 5 ng 1 t 1 ng _ Bn chy li chng trnh v th li vi s liu khc. Quan st kt qu.
iu g s xy nu s phn t mng ln hn s mc, s phn t di ra khng c khi to s in vo s 0. Nu s phn t nh hn s mc khi to trnh bin dch s bo li.
V d 7 : int itien[5] = {50, 25}, phn t itien[0] s c gi tr 50, itien[1] c gi tr 25, itien[2], itien[3], itien[4] c gi tr 0. int itien[3] = {50, 25, 10, 5, 1} trnh bin dch bo li 8.2.1.8 Khi to mng khng bao hm kch thc Trong v d trn gi s ta khai bo int itien[] = {50, 25, 10, 5, 1}. Khi trnh bin dch s m s mc trong danh sch khi to v dng con s lm kch thc mng.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 81
8.2.1.9
Mng nhiu chiu
V d 8 : khai bo mng 2 chiu int ia[5][10]; vi int l kiu mng, ia l tn mng, s phn t mng l 5 x 10. ngha: Khai bo mt mng 2 chiu s nguyn gm 50 phn t, mi phn t c kiu int. Mi phn t trong mng c kiu int ia 5 hng
10 ct 8.2.1.10 Tham chiu n tng phn t mng 2 chiu Sau khi c khai bo, mi phn t trong mng 2 chiu u c 2 ch s tham chiu, ch s hng v ch s ct. Ch s hng bt u t 0 n s hng 1 v ch s c t b t u t 0 n s ct 1. Tham chiu n mt phn t trong mng 2 chiu ia: ia[ch s hng][ch s ct] ia 0 1 2 3 4 ia[3][2] 8.2.1.11 Nhp d liu cho mng 2 chiu for (i = 0; i < 5; i++) //vng for c gi tr i chy t 0 n 4 cho hng for (ij = 0; ij < 10; ij++) //vng for c gi tr ij chy t 0 n 9 cho ct { printf("Nhap vao phan tu ia[%d][%d]: ", i + 1, ij + 1); scanf("%d", &ia[i][ij]); } * Th t nhp d liu vo mng 2 chiu ia 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 8.2.1.12 c d liu t mng 2 chiu V d 9 : in gi tr cc phn t mng 2 chiu ra mn hnh. for (i = 0; i < 5; i++) //vng for c gi tr i chy t 0 n 4 cho hng
Hanoi AptechComputerEducationCenter
0
1
2
3
4
5
6
7
8
9
ia[1][5]
ia[4][8]
ia[3][2] l phn t ti hng 3 ct 2 trong mng 2 chiu xem nh l mt bin kiu int.
Gio trnh Lp trnh C cn bn
Trang 82
{ for (ij = 0; ij < 10; ij++) printf("%3d ", ia[i][ij]); printf("\n"); } V d 10 : Vit chng trnh nhp vo 1 ma trn s nguyn n x n. In ra ma tr n v a nhp vo v ma trn theo th t ngc li.
Dng File Edit Search Run Compile Debug Project Option Window Help
//vng for c gi tr ij chy t 0 n 9 cho ct //xung dng in hng k tip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
/* Tinh trung binh cong n so nguyen */ #include <stdio.h> #include <conio.h> #define MAX 50; void main(void) { int ia[MAX][MAX], i, ij, in; printf("Nhap vao cap ma tran: "); scanf("%d", &in); //Nhap du lieu vao ma tran for (i = 0; i < in; i++) //vng for c gi tr i chy t 0 n in-1 cho hng for (ij = 0; ij < in; ij++) //vng for c gi tr ij chy t 0 n in-1 cho ct { printf("Nhap vao phan tu ia[%d][%d]: ", i + 1, ij + 1); scanf("%d", &ia[i][ij]); } //In ma tran for (i = 0; i < in; i++) { for (ij = 0; ij < in; ij++) printf("%3d ", ia[i][ij]); printf("\n"); } printf("\n"); //vng for c gi tr i chy t 0 n in-1 cho hng //vng for c gi tr ij chy t 0 n in-1 cho ct //xung dng in hng k tip //Tao khoang cach giua 2 ma tran
//In ma tran theo thu tu nguoc for (i = in-1; i >= 0; i--) //vng for c gi tr i chy t in-1 n 0 cho hng { for (ij = in-1; ij >= 0 in; ij--) //vng for c gi tr ij chy t in-1 n 0 cho ct printf("%3d ", ia[i][ij]); printf("\n"); //xung dng in hng k tip } getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 83
Nhap vao cap ma tran: 2 Nhap vao phan tu ia[1][1]: 7 Nhap vao phan tu ia[1][2]: 4 Nhap vao phan tu ia[2][1]: 6 Nhap vao phan tu ia[2][2]: 15 7 4 6 15 15 6 4 7 _
Chy v th li chng trnh vi n = 3, 5. Quan st kt qu. - Sa li chng trnh trn cho php nhp vo ma trn m x n.. Ngha l ma trn c m hng v n ct. Bn sa li chng trnh bng cch cho nhp vo gi tr m v n v sa li vng for cho hng chy m ln v vng for cho ct chy n ln.
khc phc tnh trng ngi dng nhp vo cp ma trn > MAX, B n xem li mc 3.1.4. 8.2.1.13 S dng bin kiu khc trong mng 2 chiu Nh mc 3.1.5. 8.2.1.14 Khi to mng 2 chiu V d 11 : V ch H ln.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
/* Chuong trinh ve chu H lon */ #include <stdio.h> #include <conio.h> #define MAX 5 int H[MAX][MAX] = {{1, 0, 0, 0, 1}, {1, 0, 0, 0, 1}, {1, 1, 1, 1, 1}, {1, 0, 0, 0, 1}, {1, 0, 0, 0, 1}}; void main(void) { int i , ij; for (i = 0; i < MAX; i++) { for (ij = 0; ij < MAX; ij++) if (H[i][ij]) printf("!"); else printf(" "); printf("\n"); } getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 84
! ! ! ! !!!!! ! ! ! ! _
Bn sa li chng trnh in ra cha C, B...
8.2.1.15 Dng mng 1 chiu lm tham s cho hm V d 12 : Tm s ln nht
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
/* Chuong trinh tim so lon nhat su dung ham */ #include <stdio.h> #include <conio.h> #define MAX 20 //Khai bao prototype int max(int, int); //ham tim so lon nhat trong mang 1 chieu int max(int ia[], int in) { int i, imax; imax = ia[0]; //cho phan tu dau tien la max for (i = 1; i < in; i++) if (imax < ia[i]) //neu so dang xet > max imax = ia[i]; //gan so nay cho max return imax; //tra ve ket qua so lon nhat } void main(void) { int ia[MAX]; int i = 0, inum; do { printf("Nhap vao mot so: "); scanf("%d", &ia[i]); } while (ia[i++] != 0); i--; inum = max(ia, i); printf("So lon nhat la: %d.\n", inum); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao mot so: 12 Chy li chng trnh v th li vi s liu khc.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 85
Nhap vao mot so: 45 Nhap vao mot so: 3 Nhap vao mot so: 0 So lon nhat la: 45 _
Thc hin mt s thay i sau: - Di chuyn dng int a[MAX]; ln sau dng s 10 - Sa dng int max(int, int); thnh int max(int); - Sa dng int max(int a[], int n); thnh int max(int n); - Sa dng num = max(a, i); thnh num = max(i); Chy li chng trnh, quan st, nhn xt v nh gi kt qu.
Gii thch chng trnh
Chng trnh ban u hm max c hai tham s truyn vo v k t qu tr v l gi tr max c kiu nguyn, mt tham s l mng 1 chiu ki u int v m t tham s c ki u int. V i chng trnh sau khi sa hm max ch cn mt tham s truy n vo nh ng cho k t qu nh nhau. Do sau khi sa chng trnh mng a[MAX] c khai bo l i l bi n ton c c nn hm max khng cn truyn tham s mng vo cng c th s dng c. Tuy v y, khi l p trnh bn nn vit nh chng trnh ban u l truy n tham s m ng vo (d ng t ng qut) hm max c th thc hin c trn nhiu mng khc nhau. Cn v i ch ng trnh s a l i b n ch s dng hm max c vi mng a m thi. V d 13 : Bn khai bo cc mng sau ia[MAX], ib[MAX], ic[MAX]. tm gi tr ln nht ca tng mng. Bn ch cn gi hm - imax_a = max(ia, i); - imax_b = max(ib, i); - imax_c = max(ic, i); Vi chng trnh sa li bn khng th tm c s ln nht ca mng b v c. mng truyn sang hm c dng tham bin. Ngha l gi tr ca cc phn t trong m ng s b nh hng nu c s thay i trn chng. V d 14 : Tm s ln nht ca 3 mng a, b, c
Dng File Edit Search Run Compile Debug Project Option Window Help
Bn lu rng khi truyn mng sang hm, khng to bn sao mng mi. V vy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/* Chuong trinh tim so lon nhat su dung ham */ #include <stdio.h> #include <conio.h> #define MAX 20 //Khai bao prototype int max(int, int); int input(int); //ham tim phan tu lon nhat trong mang 1 chieu int max(int ia[], int in) { int i, imax; imax = ia[0]; //cho phan tu dau tien la max for (i = 1; i < in; i++) if (max < ia[i]) //neu so dang xet > max
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 86
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
max = ia[i]; return imax; }
//gan so nay cho max //tra ve ket qua so lon nhat
//ham nhap lieu vao mang 1 chieu int input(int ia[]) { int i = 0; do { printf("Nhap vao mot so: "); scanf("%d", &ia[i]); } while (ia[i++] != 0); i--; return i; } void main(void) { int ia[MAX], ib[MAX], ic[MAX]; int inum1, inum2, inum3; printf("Nhap lieu cho mang a: \n"); inum1 = max(ia, input(ia)); printf("Nhap lieu cho mang b: \n"); inum2 = max(ib, input(ib)); printf("Nhap lieu cho mang c: \n"); inum3 = max(ic, input(ic)); printf("So lon nhat cua mang a: %d, b: %d, c: %d.\n", inum1, inum2, inum3); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap lieu cho mang a: Nhap vao mot so: 12 Nhap vao mot so: 45 Nhap vao mot so: 3 Nhap vao mot so: 0 Nhap lieu cho mang b: Nhap vao mot so: 5 Nhap vao mot so: 15 Nhap vao mot so: 0 Nhap lieu cho mang c: Nhap vao mot so: 1 Nhap vao mot so: 5 Nhap vao mot so: 4 Nhap vao mot so: 0 So lon nhat cua mang a: 45, b: 15, c: 5. _
Chy li chng trnh v th li vi s liu khc. Vit thm hm tm s nh nht.
Gii thch chng trnh
Hm input c kiu tr v l int thng qua bin i (cho bit s l ng phn t nh p vo) v 1 tham s l mng 1 chiu kiu int. Dng 41, 43, 45 l n l t g i hm input v i cc
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 87
tham s l mng a, b, c. Khi hm input thc hin vic nh p liu th cc ph n t trong m ng cng c cp nht theo. 8.2.1.16 Dng mng 2 chiu lm tham s cho hm V d 15 : Nhp vo 2 ma trn vung cp n s thp phn. Cng 2 ma trn ny lu vo ma trn th 3 v tm s ln nht trn ma trn th 3.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
/* cong ma tran */ #include <stdio.h> #include <conio.h> #define MAX 20 //Khai bao prototype void input(float); void output(float); void add(float, float, float); float max(float); //khai bao bien toan cuc int in; //ham tim so lon nhat trong mang 2 chieu float max(float fa[][MAX]) { float fmax; fmax = fa[0][0]; //cho phan tu dau tien la max for (int i = 0; i < in; i++) for (int ij = 0; ij < in; ij++) if (fmax < fa[i][ij]) //neu so dang xet > max fmax = fa[i][ij]; //gan so nay cho max return fmax; //tra ve ket qua so lon nhat } //ham nhap lieu mang 2 chieu void input(float fa[][MAX]) { for (int i = 0; i < in; i++) for (int ij = 0; ij < in; ij++) { printf("Nhap vao ptu[%d][%d]: ", i, ij); scanf("%f", &fa[i, j]); } } //ham in mang 2 chieu ra man hinh void output(float fa[][MAX]) {
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 88
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
for (int i = 0; i < in; i++) { for (int ij = 0; ij < n; ij++) printf("%5.2f", fa[i][ij]); printf("\n"); } } //ham cong 2 mang 2 chieu void add(float fa[][MAX], float fb[][MAX], float fc[][MAX]) { for (int i = 0; i < in; i++) for (int ij = 0; ij < in; ij++) fc[i, ij] = fa[i, ij] + fb[i, ij]; } void main(void) { float fa[MAX][MAX], fb[MAX][MAX], fc[MAX][MAX]; printf("Nhap vao cap ma tran: "); scanf("%d", &in); printf("Nhap lieu ma tran a: \n"); input(fa); printf("Nhap lieu ma tran b: \n"); input(fb); printf("Nhap lieu ma tran c: \n"); input(fc); add(fa, fb, fc); printf("Ma tran a: \n"); output(fa); printf("Ma tran b: \n"); output(fb); printf("Ma tran c: \n"); output(fc); printf("So lon nhat cua ma tran c la: %5.2f.\n", max(fc)); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 89
Nhap vao cap ma tran : 2 Nhap lieu ma tran a: Nhap vao ptu[0][0] : 5.2 Nhap vao ptu[0][1] : 4 Nhap vao ptu[1][0] : 7.1 Nhap vao ptu[1][1] : 9 Nhap lieu ma tran b: Nhap vao ptu[0][0] : 12 Nhap vao ptu[0][1] : 3.4 Nhap vao ptu[1][0] : 9.6 Nhap vao ptu[1][1] : 11 Vit thm hm tm s nh nht.
Ma tran a: 5.20 4.00 7.10 9.00 Ma tran b: 12.00 3.40 9.60 11.00 Ma tran c: 17.20 7.40 16.70 20.00 So lon nhat cua ma tran c la: 20.00 _
Chy li chng trnh v th li vi s liu khc.
Gii thch chng trnh
Trong chng trnh khai bo bin in ton cc do bin ny s dng trong su t qu trnh chy chng trnh. Tham s truyn vo hm l mng hai chiu d i dng a[][MAX] v hm khng dnh ch cho mng, hm ch cn bit s ct tham kho n cc phn t. V d 16 : Mng 2 chiu c khai bo int ia[3][3] Truyn tham s vo hm: ia[][3], tham kho n pt[2][1], hm tnh nh sau: 2 * 3 + 1 = 7 (ch s hng * s ct + ch s ct) ia[3][3] gm 9 phn t c lu tr trong b nh nh sau:
012345678
012012
1*3+ 2
2*3+ 1
sao mi.
Ging nh mng 1 chiu khi truyn mng 2 chiu sang hm cng khng to bn
8.2.2 Chui Chui c xem nh l mt mng 1 chiu gm cc phn t c kiu char nh mu t , con s v bt c k t c bit nh +, -, *, /, $, #... Theo quy c, mt chui s c kt thc bi k t null ('\0' : k t rng). V d: chui "Infoworld" c lu tr nh sau: I n f o w o r l d \0 K t kt thc chui
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 90
8.2.2.1
Cch khai bo chui
V d 17 :char cname[30]; ngha: Khai bo chui cname c chiu di 30 k t. Do chui kt thc bng k t null, nn khi bn khai bo chui c chiu di 30 k t ch c th cha 29 k t. V d 18 : Nhp vo in ra tn
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13
/* Chuong trinh nhap va in ra ten*/ #include <stdio.h> #include <conio.h> void main(void) { char cname[30]; printf("Cho biet ten cua ban: "); scanf("%s", cname); printf("Chao ban %s\n", cname); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Cho biet ten cua ban: Minh Chao ban Minh _ Chy li chng trnh v th nhp tn: Mai Lan, Thanh Nhi Quan st kt qu.
Lu : khng cn s dng ton t a ch & trong cname trong lnh scanf("%s", fname), v bn thn fname l a ch.
Dng hm scanf nhp chui c hn ch nh sau: Khi b n th l i ch ng trnh trn vi d liu nhp vo l Mai Lan, nhng khi in ra b n ch nh n c Mai. V hm scanf nh n vo d liu n khi gp khong trng th kt thc. 8.2.2.2 Hm nhp (gets), xut (puts) chui
S dng hm gets, puts phi khai bo #include <stdio.h>
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12
/* Chuong trinh nhap va in ra ten*/ #include <stdio.h> #include <conio.h> void main(void) { char cname[30]; puts("Cho biet ten cua ban: "); gets(cname); puts("Chao ban "); puts(cname);
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 91
13 getch(); 14 }
F1 Help
Alt-F8 Next Msg
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
Cho biet ten cua ban: Mai Lan Chao ban Mai Lan _ Sa dng 9 thnh printf("Cho biet ten cua ban: "); v t dng 11 n 12 thnh printf("Chao ban %s.\n", cname); Chy li chng trnh vo th nhp tn: Tuan Anh, Thanh Lan Quan st kt qu.
(\n). Hm gets v puts ch c 1 i s v khng s dng dng thc trong nh p li u cng nh xut ra mn hnh. 8.2.2.3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Khi to chui
i vi hm puts k t kt thc chui null (\0) c thay th bng k t newline
Dng File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap va in ra ten*/ #include <stdio.h> #include <conio.h> void main(void) { char cname[30]; char chao[] = "Chao ban"; printf("Cho biet ten cua ban: "); gets(cname); printf("%s %s.\n", chao, cname); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Cho biet ten cua ban: Mai Lan Chao ban Mai Lan _ c chiu di l 9. 8.2.2.4 Chy li chng trnh vo th nhp tn: Doan Trang Quan st kt qu.
Chiu di ti a ca chui khi to bng s k t + 1 (k t null). Vi chui chao
Mng chui
Dng File Edit Search Run Compile Debug Project Option Window Help Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 92
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/* Chuong trinh nhap thang (so) v in ra thang (chu) tuong ung*/ #include <stdio.h> #include <conio.h> void main(void) { char cthang[12][15] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; int ithang; printf("Nhap vao thang (1-12): "); scanf("%d", &ithang); printf("%s.\n", cthang[ithang-1]); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 93
Kt qu in ra mn hnh
Nhap vao thang (1-12): 2 February _ 8.3 Bi tp 1. Vit hm tm s ln nht, nh nht trong mt mng n s nguyn. 2. Vit hm sp xp tng dn, gim dn ca mt dy s cho trc. 3. Vit hm tch tn v h lt t mt chui cho trc. 4. Vit hm ct b khong trng tha gia, hai u. 5. Vit hm chuyn i 1 chui sang ch thng v 1 hm chuyn i sang ch HOA. 6. Vit hm chuyn i 1 chui sang dng Title Case (k t u ca mi t l ch HOA, cc k t cn li ch thng) 7. Vit chng trnh nhp vo 1 chui v in ra chui o ngc. V d: Nhp vo chui "Lap trinh C can ban" In ra "nab nac C hnirt paL" 8. Vit chng trnh nhp vo mt chui k t ri m xem trong chui c bao nhiu ch 'th'. 9. Bit rng nm 0 l nm Canh thn (nm k nhau c chu k l 3, nm h p nhau c chu k l 4). Hy vit chng trnh cho php g vo nm dng l ch (v d 1997), xu t ra nm m lch (inh su) v cc nm k v hp. C 12 chi: T, Su, Dn, Mo, Thn, T, Ng, Mi, Thn, Du, Tut, Hi. C 10 can: Gip, t, Bnh, inh, Mu, K, Canh, Tn, Nhm, Qu. 10. Vit chng trnh nhp vo 3 ch s (305, 6, 28). Cho bit dng ch m t gi tr con s . V d 305 -> ba trm l nm. 11. Vit chng trnh nhp vo mt chui sau in ra mn hnh mi dng l mt t. V d chui "Lap trinh C". Kt qu in ra Lap trinh C 12. Vit chng trnh nhp vo mt chui cc k t, k s, khong trng v du chm cu. Cho bit chui trn gm bao nhiu t. 13. Vit chng trnh nhp vo mt chui k t. Kim tra xem chui c i xng khng? 14. Vit chng trnh nhp vo mt chui gm cc ch ci (a -> z, A -> Z). Hy m xem c bao nhiu nguyn m a, i, e, o, u. 15. Vit: Gi s s phng trong mt khch sn c cho bi hng s NUM_ROOM. Chy li chng trnh vo th nhp vo cc thng khc Quan st kt qu.
a. Mt khai bo dy thch hp theo di phng no cn trng. b. Mt hm tm phng no cn trng. c. Vit chng trnh n gin qun l phng khch sn theo dng mt trnh n chn cng vic gm c 4 mc nh sau:
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 94
- Tm phng trng. - Tr phng. - Lit k nhng phng cn trng. - Lit k nhng phng thu. - Kt thc. 16. Vit chng trnh m t vn bn ca mt bc in tn. Nhp liu bao gm 1 hay nhiu dng cha mt s t, mi t cch nhau khong trng. In ra ha n tnh tin vi mi t gi 100 ng, ph tr thm 50 ng cho t di qu 8 k t. Ha n c dng sau: So tu : 10 So tu co kich thuoc binh thuong : 8 x 100 = 800 dong So tu co kch thuoc > 8 ki tu : 2 x 150 = 300 dong Tong cong : 1100 dong 17. Vit chng thng k xem c bao nhiu ngi h "Ly", "Tran"... trong 1 danh sch cho trc. Nu khng c thng bo "Khng c nguoi nao thuoc ho ....". 18. Vit chng trnh nhp vo 1 chui, sau chp sang chui khc mt chui con t chui ban u c s k t ch nh. V d: Chui ban u "Le Thuy Doan Trang". Nu s k t ch nh l 2 th chu i ch s l "Le" 19. Vit chng trnh nhp vo 1 chui, sau chp sang chui khc mt chui con t chui ban u vi v tr bt u v s k t ch nh. V d: Chui ban u "Le Thuy Doan Trang". Nu v tr ban u l 14 v s k t ch nh l 5 th chui ch s l "Trang" 20. Vit chng trnh nhp vo 1 chui ngun, v d "Nguyen Minh Long", sau nhp vo 1 chui con, v d "Minh", chng trnh s xc nh v tr bt u ca chui con v tr no trong chui ngun. Kt qu in ra mn hnh nh sau: - Chuoi nguon la : Nguyen Minh Long - Chuoi con la : Minh - Vi tri bat dau cua chuoi con la : 8 21. Vit chng thc hin cc yu cu sau: - Nhp vo 1 chui bt k, v d : "Nguyen Minh Long - Mun xa t v tr no, v d : 8 - Mun xa bao nhieu k t, v d : 5 Kt qu in ra man hinh: - Chuoi nguon la : Nguyen Minh Long - Chuoi sau khi xoa : Nguyen Long
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 95
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 96
Bi 9 : CON TR
9.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha, cch khai bo con tr - S dng con tr trong mng, chui - Truyn mng v chui gia cc hm qua con tr - X l mng d dng qua con tr 9.2 Ni dung 9.2.1 Con tr? Con tr dng truy cp bin thng qua a ch bin v chng trnh tham kho bin gin tip qua a ch ny. 9.2.2 Khi bo bin con tr V d 1:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/* Cong hang so */ #include <stdio.h> #include <conio.h> void main(void) { int ix = 6, iy = 7; int *px, *py; printf("x = %d, y = %d\n", ix, iy); px = &ix; py = &iy; *px += 10; *py += 10; printf("x = %d, y = %d\n", ix, iy); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
x = 6, y = 7 x = 16, y = 17 _ Chy chng trnh v quan st kt qu.
Gii thch chng trnh
Hanoi Aptech Computer Education Center
Gio trnh Lp trnh C cn bn
Trang 97
Khai bo dng 9 cp pht 2 bytes lu gi a ch ca bin nguyn v vng nh c tn l px, tng t cho py. Du * cho bit bin ny cha a ch ch khng phi gi tr, int cho bit a ch s tr n cc bin nguyn. v iy (dng 11 v 12),v vy khi ni dung ca bin con tr *px v *py thay i th ni dung ca ix, iy cng thay i theo. a ch vng nh 1203 1204 1205 1206 1207 1208 1209 1210 a ch vng nh 2015 2016 2017 2018 2019 2020 2021 2022 V d 2:
Dng File Edit Search Run Compile Debug Project Option Window Help
V d trn cho thy *px v *py l 2 bin con tr tr n a ch ca 2 bin ix
6
ix Sau php gn px = &ix v py = &iy th gi tr ca px = 1203 v py = 1207
7
iy
1203 1207
px py
*px l ni dung ca px v *py l ni dung ca py. Nn khi thc hin 2 php cng gn *px += 10 v *py += 10 th gi tr ca ix s l 16 v gi tr iy s l 17.
9.2.3 Truyn a ch sang hm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/* Khoi tao 2 so */ #include <stdio.h> #include <conio.h> void init (int, int); void main(void) { int ix, iy; init(&ix, &iy); printf("x = %d, y = %d\n", ix, iy); getch(); } void init(int *px, int *py) { *px = 3; //gan 3 cho noi dung cua px
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 98
19 *py = 5; 20 }
//gan 5 cho noi dung cua py
F1 Help
Alt-F8 Next Msg
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
x = 3, y = 5 _ Chy chng trnh v quan st kt qu.
Gii thch chng trnh
dng 9, gi hm init truyn 2 tham s l a ch ca bin ix v iy, nn khi ni dung ca 2 bin con tr *px v *py thay i th ix v iy ca chng trnh chnh cng thay i theo. Hm main(void) s dng cch truy cp bin khc vi hm init, hm main(void) gi chng l ix, iy cn hm init gi chng l *px, *py. Hm init c gi tr ca bin con tr *px, *py t vng a ch ca chng trnh gi, sau khi thc hin v tr kt qu v chng trnh gi. 9.2.4 Con tr v mng V d 3: Khai bo mng sau int num[] = {23, 54, 16, 72, 16, 84}; Nh nghin cu cch tham chiu n phn t mng th 5 l num[4], cn vi kiu con tr l *(num + 4). Ngha l num[4] tng ng vi *(num + 4) v cch truy cp ni dung nh nhau. Tng t nh vy, cch tham kho a ch ca phn t mng l &num[4] tng ng vi num + 4. 9.2.5 Con tr tr n mng trong hm V d 4:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* Cong hang so vao mang */ #include <stdio.h> #include <conio.h> #define SIZE 4 add(int *, int, int); void main(void) { int iarray[] = {2, 5, 6, 9}; int i, ix = 10; add(iarray, SIZE, ix); for (i = 0; i < SIZE; i++); printf("%d ", *(iarray + i)); getch(); }
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 99
20 void add(int *ptr, int inum, int ia) 21 { 22 int ij; 23 for (ij = 0; ij < inum; ij++) 24 *(ptr) = *(ptr++) + ia; 25 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
12 15 16 19 _ Chy chng trnh v quan st kt qu.
Gii thch chng trnh
Hm gn a ch ca mng vo bin con tr ptr, kch thc vo bin inum v hng s vo bin ia. Sau dng vng lp cng hng vo tng phn t ca mng. Gi s a ch ca ia l 245 khi truyn vo hm add qua ptr, ptr s c gi tr = 245 iarray 245 2 246 iarray + 1 247 ptr 245 5 248 iarray + 2 249 6 250 iarray + 3 251 9 252 ptr ++ iarray ptr 247 iarray + 1 iarray + 2 iarray + 3 9.2.6 Con tr v chui V d 5:
Dng File Edit Search Run Compile Debug Project Option Window Help
245 246 247 248 249 250 251 252
12 5 6 9
1 2 3 4 5 6 7 8 9
/* Chuong trinh nhap va in ra ten*/ #include <stdio.h> #include <conio.h> void main(void) { char *cgreeting = "Chao ban"; char cname[30];
Hanoi Aptech Computer Education Center
Gio trnh Lp trnh C cn bn
Trang 100
10 11 12 13 14 15 }
puts("Cho biet ten cua ban: "); gets(cname); puts(cgreeting); puts(cname); getch();
Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
F1 Help
Kt qu in ra mn hnh
Cho biet ten cua ban: Minh Chao ban Minh _ Chy chng trnh v quan st kt qu.
Gii thch chng trnh
cgreeting l bin con tr c khi to bng pht biu char *cgreeting = "Chao ban" thay v char cgreeting[] = "Chao ban". C hai cch u cho cng kt qu v u dnh s byte cho chui km theo k t null. i vi mng a ch ca k t u tin ca mng s l tn mng, cn con tr s c thm bin con tr tr n tn cgreeting. 1502 1503 cgreeting 1502 1504 1505 1506 1507 1508 1509 char * cgreeting = "Chao ban" (bin con tr) 9.2.7 Khi to mng con tr tr n chui V d 6:
Dng File Edit Search Run Compile Debug Project Option Window Help
C h a o b a n
cgreeting 1502 1503 1504 1505 1506 1507 1508 1509
C h a o b a n
char cgreeting[] = "Chao ban" (hng con tr)
1 2 3 4 5 6 7 8
/* Chuong trinh nhap thang (so) v in ra thang (chu) tuong ung*/ #include <stdio.h> #include <conio.h> void main(void) { char *cthang[12]= {"January", "February", "March", "April",
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 101
9 10 11 12 13 14 15 16 }
"May", "June", "July", "August", "September", "October", "November", "December"}; int ithang; printf("Nhap vao thang (1-12): "); scanf("%d", &ithang); printf("%s.\n", cthang[ithang-1]); getch();
Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
F1 Help
Kt qu in ra mn hnh
Nhap vao thang (1-12): 2 February _ Chy li chng trnh vo th nhp vo cc thng khc Quan st kt qu.
Gii thch chng trnh
Khai bo char *cthang[12] c ngha nh sau: cthang l tn gi, du * l kiu con tr tr n k t (char). cthang[0] cthang[1] cthang[2] cthang[3] cthang[4] cthang[5] cthang[6] cthang[7] cthang[8] cthang[9] cthang[10] cthang[11] a ch 1010 1020 1030 1040 1050 1060 1070 1080 1090 1100 1110 1120 0 J F M A M J J A S O N D 1 a e a p a u u u e c o e 2 n b r r y n l g p t v c 3 u r c i \0 e y u t o e e 4 a u h l \0 \0 s e b m m 5 r a \0 \0 6 y r 7 \0 y 8 \0 9
t m e b b
\0 b r e e
e \0 r r
r \0 \0
\0
Mng cc chui char cthang[12][10]] cthang[0] cthang[1] cthang[2] cthang[3] cthang[4] cthang[5] cthang[6] cthang[7] cthang[8] cthang[9] cthang[10] cthang[11] 1010 1018 1027 1033 1039 1043 1048 1053 1060 1070 1078 1087 1010 J 1018 F 1027 M 1033 A 1039 M 1043 J 1048 J 1053 A 1060 S 1070 O 1078 N 1087 D a e a p a u u u e c o e n b r r y n l g p t v c u r c i \0 e y u t o e e a u h l \0 \0 s e b m m r a \0 \0 y r \0 y \0
t m e b b
\0 b r e e
e \0 r r
r \0 \0
\0
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 102
Mng cc con tr tr n cc chui char *cthang[12]
mng chui.
Khi to mng cc con tr tr n cc chui chim t b nh hn khi to
9.2.8 X l con tr tr n chui V d 7:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
/* Nhap danh sach ten va sap xep theo thu tu tang dan*/ #include <stdio.h> #include <conio.h> #inlcude <string.h> #define MAXNUM 5 #define MAXLEN 10 void main(void) { char cname[MAXNUM][MAXLEN]; char *cptr[MAXNUM]; char *ctemp; int i, ij, icount = 0;
//mang chuoi //mang con tro tro den chuoi
//nhap danh sach ten while (icount < MAXNUM) { printf("Nhap vao ten nguoi thu %d: ", icount + 1); gets(cname[icount]); cptr[icount++] = cname[icount]; //con tro den ten } //sap xep danh sach theo thu tu tang dan for (i = 0; i < icount 1; i ++) for (ij = i + 1; ij < icount; ij ++) if (strcmp(cptr[i], cptr[ij]) > 0) { ctemp = cptr[i]; cptr[i] = cptr[ij]; cptr[ij] = ctemp; } //In danh sach da sap xep printf("Danh sach sau khi sap xep:\n"); for (i = 0; i < icount; i ++) printf("Ten nguoi thu %d : %s\n", i + 1, cptr[i]);
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 103
getch(); }
F1 Help
Alt-F8 Next Msg
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
Nhap vao ten nguoi thu 1: Minh Nhap vao ten nguoi thu 2: Lan Nhap vao ten nguoi thu 3: Anh Nhap vao ten nguoi thu 4: Trang Nhap vao ten nguoi thu 5: Quan Danh sach sau khi sap xep: Ten nguoi thu 1: Anh Ten nguoi thu 2: Lan Ten nguoi thu 3: Minh Ten nguoi thu 4: Quan Ten nguoi thu 5: Trang _ Chy li chng trnh v th nhp vi d liu khc. Quan st kt qu.
Gii thch chng trnh
Trong chng trnh dng c mng chui char cname[MAXNUM][MAXLEN] v mng con tr tr n chui char *cptr[MAXNUM];. cptr[0] cptr[1] cptr[2] cptr[3] cptr[4] 1010 1016 1022 1028 1034 1010 1016 1022 1028 1034 M L A T Q i a n r u n n h a a h \0 \0 n n \0 g \0 \0
Mng cc con tr tr n chui trc khi sp xp cptr[0] cptr[1] cptr[2] cptr[3] cptr[4] 1022 1016 1010 1034 1028 1010 1016 1022 1028 1034 M L A T Q i a n r u n n h a a h \0 \0 n n \0 g \0 \0
Mng cc con tr tr n chui sau khi sp xp 9.2.9 Con tr tr n con tr V d 8:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 /* In ma trn*/ 2 3 #include <stdio.h>
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 104
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#include <conio.h> #define ROWS 4 #define COLS 5 void main(void) { int itable[ROWS][COLS] =
{{10, 12, 14, 16, 18}, {11, 13, 15, 17, 19}, {20, 22, 24, 26, 28}, {21, 23, 25, 27, 29}};
int i, ij, ix = 10; for (i = 0; i < ROWS; i ++) for (ij = 0; ij < COLS; ij ++) *(*(table + i) + ij) += ix; for (i = 0; i < ROWS; i ++) { for (ij = 0; ij < COLS; ij ++) printf("%4d", *(*(table + i) + ij)); printf("\n"); } getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
20 21 30 31 _ 22 23 32 33 24 25 34 35 26 27 36 37 28 29 38 39 Chy chng trnh v quan st kt qu.
Gii thch chng trnh
Trong chng trnh dng c mng chui char cname[MAXNUM][MAXLEN] v mng con tr tr n chui char *cptr[MAXNUM];. 9.3 Bi tp Lm li cc bi tp bi Mng v chui s dng bin con tr.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 105
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 106
Bi 10 : CC KIU D LIU T TO
10.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha, cch khai structure, emum - Nhp, xut structure. - Khi to structure, enum - Mt s k thut thao tc trn structure, enum - Dng struct tham s cho hm. 10.2 Ni dung 10.2.1 Structure i vi mng, ch c th lu nhiu thng tin c cng kiu d liu. Nhng v i structure ta c th lu thng tin nh mt mng c nhiu kiu d liu khc nhau. 10.2.1.1 Khai bo kiu structure V d 1: khai bo mt structure v thng tin nhn vin t kha tn struct struct nhanvien { Cc thnh int manv; cc phn t ca struct phn c char hoten[30]; bc trong mc }; du chm phy kt thc struct nhanvien int manv char hoten[30] V d trn nh ngha kiu d liu mi c tn l struct nhanvin. Mi bin kiu ny gm 2 phn t: bin nguyn c tn l manv v bin chui c tn hoten.
struct phi vit bng ch thng
10.2.1.2 Cch khai bo bin c kiu structure V d 2: struct nhanvien nv; hoc nhanvien nv; Khai bo bin nv c kiu struct nhanvien
va to structure nhanvien va khai bo bin nv
struct nhanvien { int manv; char hoten[30]; } nv; 10.2.1.3 Tham chiu cc phn t trong structure nv manv nv.manv
Hanoi Aptech Computer Education Center
hoten[30] nv.hoten
tham chiu n manv trong nv ta vit nh sau: nv.manv (l bin c kiu int)
Gio trnh Lp trnh C cn bn
Trang 107
i vi bin khai bo kiu con tr nhanvien *nv th tham chiu n phn t manv:
nv -> manv. V d 3: Nhp v in danh sch nhn vin.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
/* Danh sach nhan vien */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 50 void main(void) { struct nhanvien { int manv; char hoten[30]; }; nhanvien snv[MAX]; char ctam[10]; int i, in; printf("Nhap vao so nhan vien: "); gets(ctam); in = atoi(ctam); //Nhap danh sach nhan vien for(i = 0; i < in; i++) { printf("Nhap vao ma nhan vien thu %d: ", i + 1); gets(ctam); snv[i].manv = atoi(ctam); printf("Nhap vao ho ten: "); gets(snv[i].hoten); } //in danh sach nhan vien for(i = 0; i < in; i++) printf("%5d %s\n", snv[i].manv, snv[i].hoten); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao so nhan vien: 2 Nhap vao ma nhan vien thu 1: 123 Nhap vao ho ten: Le Thuy Doan Trang
Hanoi AptechComputerEducationCenter
Chy v th li chng trnh vi d liu khc. Quan st kt qu.
Gio trnh Lp trnh C cn bn
Trang 108
Nhap vao ma nhan vien thu 2: 35 Nhap vao ho ten: Le Nguyen Tuan Anh 123 Le Thuy Doan Trang 35 Le Nguyen Tuan Anh _
nhp mt s nguyn trnh li do scanf v vng m bn phm gy ra. 10.2.1.4 Khi to structure V d 4: Nhp vo bng s xe, cho bit xe ng k tnh no.
Trong chng trnh trn dng t hp 2 dng 20 v 21 gm 2 lnh gets, atoi
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
/* Xac dinh bien so xe */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 6 void main(void) { struct tinh { int ma; char *ten; }; tinh sds[MAX] = {{60, "Dong Nai"}, {61, "Binh Duong"}, {62, "Long An"}, {63, "Tien Giang"}, {64, "Vinh Long"}, {65, "Can Tho"}}; char ctam[10]; int i, in; printf("Nhap vao bien so xe: "); gets(ctam); in = atoi(ctam); for(i = 0; i < MAX; i++) if (sds[i].ma == in) printf("Xe dang ki o tinh %s.\n", sds[i].ten); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Nhap vao bien so xe: 62F5-1152 Xe dang ki o tinh Long An _ Chy v th li chng trnh vi 65H5-1246, 60F4-7712, 64F1-4542 Quan st kt qu.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 109
Dng 22 i chui sang s nguyn, v d trn sau khi dng ny thc hin gi tr ca in = 62.
10.2.1.5 Structure lng nhau V d 5: Nhp v in danh sch nhn vin.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
/* Danh sach nhan vien */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 50 void main(void) { struct giacanh { char vo_chong[30]; char con; }; struct nhanvien { int manv; char hoten[30]; giacanh canhan; }; nhanvien snv[MAX]; char ctam[10]; int i, in; printf("Nhap vao so nhan vien: "); gets(ctam); in = atoi(ctam); //Nhap danh sach nhan vien for(i = 0; i < in; i++) { printf("Nhap vao ma nhan vien thu %d: ", i + 1); gets(ctam); snv[i].manv = atoi(ctam); printf("Nhap vao ho ten: "); gets(snv[i].hoten); printf("Cho biet ten vo (hoac chong): "); gets(snv[i].canhan.vo_chong); printf("So con: "); gests(ctam);
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 110
42 43 44 45 46 47 48 49 50 }
} //in danh sach nhan vien for(i = 0; i < in; i++) { printf("Ma so: %d\nHo ten: %s\n Ho ten vo (hoac chong): %s\nSo con: %d", snv[i].manv, snv[i].hoten, snv[i].canhan.vo_chong, snv[i].canhan.con); getch();
Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
F1 Help
Kt qu in ra mn hnh
Nhap vao so nhan vien: 3 Nhap vao ma nhan vien thu 1: 123 Nhap vao ho ten: Le Thuy Doan Trang Nhap vao ma nhan vien thu 2: 35 Nhap vao ho ten: Le Nguyen Tuan Anh 123 Le Thuy Doan Trang 35 Le Nguyen Tuan Anh _ Chy v th li chng trnh vi d liu khc. Quan st kt qu.
nhp mt s nguyn trnh li do scanf v vng m bn phm gy ra. 10.2.1.6 Truyn structure sang hm Ging nh mng, bn c th truyn vo hm qua tham bin. V d 6: Sa li v d 3, s dng hm cho nhp v in danh sch
Trong chng trnh trn dng t hp 2 dng 20 v 21 gm 2 lnh gets, atoi
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/* Danh sach nhan vien */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 50 //Khai bao structure toan cuc struct nhanvien { int manv; char hoten[30]; }; //Khai bao prototype void input(nhanvien, int); void output(nhanvien, int);
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 111
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
//Ham nhap danh sach void input(nhanvien snv[], int in) { char ctam[10]; for(int i = 0; i < in; i++) { printf("Nhap vao ma nhan vien thu %d: ", i + 1); gets(ctam); snv[i].manv = atoi(ctam); printf("Nhap vao ho ten: "); gets(snv[i].hoten); } } //Ham in danh sach ra man hinh void output(nhanvien snv[], int in) { for(i = 0; i < in; i++) printf("%5d %s\n", snv[i].manv, snv[i].hoten); } void main(void) { nhanvien snv[MAX]; char ctam[10]; int i, in; printf("Nhap vao so nhan vien: "); gets(ctam); in = atoi(ctam); input(snv, in); output(snv, in); getch(); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 112
Kt qu in ra mn hnh
Nhap vao so nhan vien: 3 Nhap vao ma nhan vien thu 1: 123 Nhap vao ho ten: Le Thuy Doan Trang Nhap vao ma nhan vien thu 2: 35 Nhap vao ho ten: Le Nguyen Tuan Anh 123 Le Thuy Doan Trang 35 Le Nguyen Tuan Anh _ Chy v th li chng trnh vi d liu khc. Quan st kt qu.
Gii thch chng trnh
chng trnh ny ta phi khai bo struct nhanvien l bi n ton c c, v khi nh ngha hm input v output c s dng kiu d liu struct nhanvin. struct truyn sang hm c dng tham bin. Ngha l gi tr ca cc phn t trong struct s b nh hng nu c s thay i trn chng. V d 7: Sa li v d 6, t dng 20 n dng 32 nh sau: //Ham nhap tung nhan vien nhanvien newnv() { nhanvien snv; printf("Ma nhan vien: "); gets(ctam); snv.manv = atoi(ctam); printf("Ho ten: "); gets(snv.hoten); return (snv); } //Ham nhap danh sach nhan vien void input(nhanvien snv[], int in) { for(int i = 0; i < in; i++) { printf("Nhap vao nhan vien thu %d: ", i + 1); snv[i] = newnv(); } }
Bn lu rng khi truyn struct sang hm, khng to bn sao mng mi. V vy
Hm newnv c kiu tr v l struct nhanvien
10.2.2 Enum Mt bin l kiu d liu enum c th nhn c mt gi tr no trong cc gi tr c lit k.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 113
10.2.2.1 nh ngha kiu enum V d 8: nh ngha kiu enum day t kha tn du ; kt thc enum enum day{ SUN, MON, TUE, WED, THU, FRI, SAT }; cc gi tr lit k cc gi tr c bc trong mc Cc tn th (SUN, MON ... SAT) trong day s c nh s l n l t t 0 n 6 (SUN l 1, MON l 2... SAT l 6). Nu bn mun bt u bng gi tr khc th gn gi tr mong mun vo v tr k tip s tng ln 1.
enum phi vit bng ch thng
10.2.2.2 Cch khai bo bin c kiu enum V d 9: enum day ngay; hoc day ngay; Khai bo bin ngay c kiu enum day.
va to enum day va khai bo bin ngay
enum day{ SUN, MON, TUE, WED, THU, FRI, SAT } ngay;
10.2.2.3 S dng enum trong chng trnh V d 10: Tnh tin lng tun cho nhn vin. Th by v Ch nht c tnh ph tri
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
/* Tinh tien luong tuan cho nhan vien */ #include <stdio.h> #include <conio.h> #define PHU_TROI_T7 1.5 #define PHU_TROI_CN 2.0 //dinh nghia enum enum tuan{CHU_NHAT, THU_HAI, THU_BA, THU_TU, THU_NAM, THU_SAU, THU_BAY}; typedef enum tuan ngay_tuan; //dinh nghia ngay_tuan la tuan void main(void) { int igio; float fLuongCB, fLuongNgay, fTongLuong; char cngay[][4] = {"Chu Nhat", "Thu Hai", "Thu Ba", "Thu Tu", "Thu Nam", "Thu Sau", "Thu Bay"}; ngay_tuan engay; ngay_tuan ngay_mai(ngay_tuan); //khai bao prototype printf("Nhap vao luong can ban: "); scanf("%f", &fLuongCB); luong = 0.0;
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 114
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
printf("Nhap vao so gio lam viec tu Thu hai den Chu nhat:\n"); engay = CHU_NHAT; do { engay = ngay_mai(engay); printf("Nhap vao gio lam viec ngay %s :", cngay[engay]); scanf("%d", &igio); swith(engay) { case THU_HAI: case THU_BA: case THU_TU: case THU_NAM: case THU_SAU: fLuongNgay = fLuongCB; break; case THU_BAY: fLuongNgay = fLuongCB * PHU_TROI_T7; break; case CHU_NHAT: fLuongNgay = fLuongCB * PHU_TROI_CN; break; } fTongLuong += fLuongNgay * igio; } while (ngay != CHU_NHAT); printf("Tong luong tuan = %8.2f dong.\n", fTongLuong); getch(); } //ham chon ngay ke tiep ngay_tuan ngay_mai(ngay_tuan en) { ngay_tuan engay_ke; switch(en) { case CHU_NHAT : engay_ke = THU_HAI; case THU_HAI : engay_ke = THU_BA; case THU_BA : engay_ke = THU_TU; case THU_TU : engay_ke = THU_NAM; case THU_NAM : engay_ke = THU_SAU; case THU_SAU : engay_ke = THU_BAY; case THU_BAY : engay_ke = CHU_NHAT; } return (engay_ke); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg
break; break; break; break; break; break; break;
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
Nhap vao luong can ban: 250 Nhap vao so gio lam viec tu Thu hai den Chu nhat: Nhap vao gio lam viec ngay Thu Hai: 7 Nhap vao gio lam viec ngay Thu Ba: 8 Nhap vao gio lam viec ngay Thu Tu: 6
Hanoi AptechComputerEducationCenter
Hm chn ngy k tip trn kh di, bn thay t dng 54 n 65 bng cu lnh return (++en > 6 ? 0 : en); hoc return (++en % 7);
Gio trnh Lp trnh C cn bn
Trang 115
Nhap vao gio lam viec ngay Thu Nam: 7 Nhap vao gio lam viec ngay Thu Sau: 8 Nhap vao gio lam viec ngay Thu Bay: 7 Nhap vao gio lam viec ngay Chu Nhat: 6 Tong luong tuan = 14625.00 dong. _
Chy li chng trnh, quan st, nhn xt v nh gi kt qu vi d liu khc.
Gii thch chng trnh
chng trnh ny ta phi khai bo struct nhanvien l bi n ton c c, v khi nh ngha hm input v output c s dng kiu d liu struct nhanvin. 10.3 Bi tp 1. nh ngha 1 dy cu trc c th c dng lm danh b in thoi, gm c tn, a ch, s in thoi, vi s mu tin ti a l 40. Vit chng trnh vi cc chc nng sau: nhp thng mi, tm kim s in thoi, in danh sch theo qun. 2. Vit chng trnh c vo tn, a ch, sp xp tn v a ch theo th t alphabet, sau hin th danh sch c sp xp. 3. Vit chng trnh nhn vo cc thng tin sau: Tn i bng, s trn thng, s trn ha, s trn thua. In ra i bng c s im cao nht (vi 1 trn thng = 3 i m, 1 trn ha = 1 im v 1 trn thua = 0 im). 4. Xy dng cu trc gm: H tn, ngy sinh, trng, s bo danh, im thi. Trong , im thi l cu trc gm 3 mn: Ton, L, Ha. Nhp liu vo khong 10 th sinh, tm v in ra cc th sinh c tng im 3 mn >= 15. 5. Vit chng trnh to lp v tm kim d liu. Ni dung yu cu gm: Nhp h v tn, a ch (gm: Qun, phng, t), tui, lng. Tm kim nhng ngi Qun 3 c tui di 30 thu nhp t 500.000 tr ln v in ra mn hnh.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 116
Bi 11 : TP TIN
11.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha ca vic s dng tp tin (file) - M, ng file - Ghi, c file s nguyn, mng, chui. - Mt s hm x l tp tin. 11.2 Ni dung 11.2.1 V d ghi, c s nguyn
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
/* Ghi n so nguyen vao file va doc ra tu file*/ #include <stdio.h> #include <conio.h> #include <stdlib.h> void main(void) { FILE *f; int in, i; printf("Nhap vao so n: "); scanf("%d", &in); //Ghi file if((f = fopen("int_data.dat", "wb")) == NULL) { printf("Khong the mo file!.\n"); exit(0); } else for(i = 1; i <= in; i++) fwrite(&i, sizeof(int), 1, f); fclose(f); //Doc file f = fopen("int_data.dat", "rb"); while(fread(&i, sizeof(int), 1, f) == 1) printf("%d ", i); fclose(f); getch(); }
Alt - F9 Compile F9 Make F10 Menu
//mo file
//ghi file //dong file
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Hanoi Aptech Computer Education Center
Gio trnh Lp trnh C cn bn
Trang 117
Kt qu in ra mn hnh
Nhap vao so n: 10 1 2 3 4 5 6 7 8 9 10 _ Chy v th li chng trnh vi d liu khc. Quan st kt qu.
Gii thch chng trnh
Dng 9 : FILE *f; : khai bo bin con tr f c kiu cu trc FILE. Dng 15 : if(f = fopen("int_data.dat", "wb") == NULL) : l cu lnh m tp tin c tn int_data.dat mode "w" (ghi ) dng "b" (nh phn), sau khi l nh ny th c hi n xong tr v dng con tr FILE v gn cho f, nu kt qu tr v = NULL th khng th m c t p tin, tp tin m mode "w" nu trn a c sn tp tin ny th ni dung ca n s b ghi , n u cha c th tp tin s c to mi. Dng 22 : fwrite(&i, sizeof(int), 1, f); : ghi thng tin vo tp tin, thng tin c ghi vo mi ln l mt s nguyn i. Hm ny c 4 i s : a ch ghi c u trc, kch th c c a cu trc v s cu trc s ghi, sau cng l con tr tr ti tp tin. Dng 23 : fclose(f); : ng tp tin Dng 26 : f = fopen("int_data.dat", "rb"); : m tp tin c tn int_data.dat mode "r" (c) dng "b" (nh phn). Tp tin phi c sn trn a. Dng 27 : while(fread(&i, sizeof(int), 1, f) == 1) : c thng tin t tp tin, mi ln c mt s nguyn v lu vo bin i. Mi ln c thnh cng gi tr tr v s l s c u trc thc s c c, nu gi tr tr v = 0 bo hiu kt thc file. phi khai bo #include <stdio.h>, NULL phi vit hoa. 11.2.2 Ghi, c mng
Dng File Edit Search Run Compile Debug Project Option Window Help
T kha FILE phi vit bng ch in hoa. S dng fopen, fwrite, fread, fclose
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/* Ghi n so nguyen vao file va doc ra tu file*/ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 5 void main(void) { FILE *f; int i, ia[MAX], ib[MAX]; for (i = 0; i < 10; i++) { printf("Nhap vao mot so: "); scanf("%d", &ia[i]); } if((f = fopen("array.dat", "wb")) == NULL) {
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 118
21 22 23 24 25 26 27 28 29 30 31 32 33 }
printf("Khong the mo file!\n"); exit(0); } fwrite(ia, sizeof(ia), 1, f); fclose(f); f = fopen("array.dat", "rb"); fread(ib, sizeof(ib), 1, f); for (i = 0; i < 10; i++) printf("%d ", ib[i]); fclose(f); getch();
Alt-F8 Next Msg
//ghi mang vao file
//doc mang tu file
F1 Help
Alt-F7 Prev Msg
Alt - F9 Compile
F9 Make
F10 Menu
Kt qu in ra mn hnh
Nhap vao mot so: 3 Nhap vao mot so: 6 Nhap vao mot so: 8 Nhap vao mot so: 1 Nhap vao mot so: 9 3 6 8 1 9 _ 11.2.3 Ghi, c structure
Dng File Edit Search Run Compile Debug Project Option Window Help
Chy v th li chng trnh vi d liu khc. Quan st kt qu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* Danh sach nhan vien */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 50 void main(void) { FILE *f; struct nhanvien { int manv; char hoten[30]; }; nhanvien snv[MAX], snv1[MAX]; char ctam[10]; int i, in; printf("Nhap vao so nhan vien: "); gets(ctam); in = atoi(ctam);
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 119
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 }
//Nhap danh sach nhan vien va ghi vao file if((f = fopen("struct.dat", "wb")) == NULL) { printf("Khong the mo file!\n"); exit(0); } fwrite(&in, sizeof(int), 1, f); //ghi so nhan vien vao file for(i = 0; i < in; i++) { printf("Nhap vao ma nhan vien thu %d: ", i + 1); gets(ctam); snv[i].manv = atoi(ctam); printf("Nhap vao ho ten: "); gets(snv[i].hoten); fwrite(&snv[i], sizeof(nhanvien), 1, f); //ghi tung nhan vien vao file } fclose(f); //doc danh sach nhan vien tu file va in ra f = fopen("struct.dat", "rb"); fread(&in, sizeof(int), 1, f); //doc so nhan vien for(i = 0; i < in; i++) { fread(&snv1[i], sizeof(nhanvien, 1, f); //doc tung nhan vien in ra man hinh printf("%5d %s\n", snv[i].manv, snv[i].hoten); } getch();
Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
F1 Help
Kt qu in ra mn hnh
Nhap vao so nhan vien: 2 Nhap vao ma nhan vien thu 1: 123 Nhap vao ho ten: Le Thuy Doan Trang Nhap vao ma nhan vien thu 2: 35 Nhap vao ho ten: Le Nguyen Tuan Anh 123 Le Thuy Doan Trang 35 Le Nguyen Tuan Anh _ 11.2.4 Cc mode khc m tp tin 3 v d trn ch s dng 2 mode "w" (ghi) v "r" (c), sau y l mt s mode khc: "a": m ni thm, thng tin s c ghi thm vo cui ca tp tin c hoc to tp tin mi nu cha c trn a. "r+": m va c va ghi, tp tin phi c sn trn a. "w+": m va c va ghi, ni dung ca tp tin c trn a s b ghi ln. "a+": m c v ni thm, nu trn a cha c tp tin n s c to mi.
Hanoi AptechComputerEducationCenter
Chy v th li chng trnh vi d liu khc. Quan st kt qu.
Gio trnh Lp trnh C cn bn
Trang 120
11.2.5 Mt s hm thao tc trn file khc Xem bi Cc hm chun 11.3 Bi tp Thm chc nng ghi, c file cc bi tp ca bi Mng v chui, Cc d liu t to.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 121
Bi 12 : QUY
12.1 Mc tiu Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau: - ngha, phng php hot ng ca quy. - C th thay vng lp bng quy. 12.2 Ni dung Bt c mt hm no c th triu gi hm khc, nhng y m t hm no c th t triu gi chnh mnh. Kiu hm nh th c gi l hm quy. Phng php quy thng dng ph bin trong nhng ng dng m cch gii quyt c th c th hin bng vic p dng lin tip cng gii php cho nh ng t p h p con c a bi ton. V d 1: tnh n! n! = 1*2*3*...*(n-2)*(n-1)*n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 /* Ham tinh giai thua */ #include <stdio.h> #include <conio.h> void main(void) { int in; long giaithua(int); printf("Nhap vao so n: "); scanf("%d", &in); printf("%d! = %ld.\n", in, giaithua(in)); getch(); } long giaithua(int in) { int i; long ltich = 1; if (in == 0) return (1L); else { for (i = 1; i <= in; i++) ltich *= i; return (ltich); } } vi n >= 1 v 0! = 1.
Dng File Edit Search Run Compile Debug Project Option Window Help
Hanoi Aptech Computer Education Center
Gio trnh Lp trnh C cn bn F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make
Trang 122 F10 Menu
Kt qu in ra mn hnh
Nhap vao so n: 5 5! = 120. _ Th li chng trnh vi s liu khc.
Vi n! = 1*2*3*...*(n-2)*(n-1)*n, ta vit li nh sau: (1*2*3*...*(n-2)*(n-1))*n = n*(n-1)! ... = n*(n-1)*(n-2)!... Ta vit li hm giaithua bng quy nh sau:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10
/* Ham tinh giai thua */ long giaithua(int in) { int i; if (in == 0) return (1L); else return (in * giaithua(in 1)); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Chy li chng trnh, quan st, nhn xt v nh gi kt qu
F
Gii thch hot ng ca hm quy giaithua V d gi tr truyn vo hm giaithua qua bin in = 5. Th t gi thc hin hm giaithua giaithua(in) 5 4 3 2 1 return(in * giaithua(in 1)) 5 * giaithua(4) = 5 * ? 4 * giaithua(3) = 4 * ? 3 * giaithua(2) = 3 * ? 2 * giaithua(1) = 2 * ? 1 * giaithua(0) = 1 * ?
Khi tham s in = 0 th return v gi tr 1L (gi tr 1 kiu long). Lc ny cc gi tr ? bt u nh tr theo th t ngc li. nh tr theo th t ngc li giaithua(in) 1 2 3 4 5
Hanoi AptechComputerEducationCenter
return(in * giaithua(in 1)) 1 * giaithua(0) = 1 * 1 = 1 2 * giaithua(1) = 2 * 3 * giaithua(2) = 3 * 4 * giaithua(3) = 4 * 1 = 2 = 6 = 2 6 24
5 * giaithua(4) = 5 * 24 = 120
Gio trnh Lp trnh C cn bn
Trang 123
Kt qu sau cng ta c 5! = 120.
5! 5 * 4! 4 * 3! 3 * 2! 2 * 1! 1 * 0! 5! =120 5 * 4! = 120 4 * 3! = 24 3 * 2! = 6 2 * 1! = 2 1 * 0! = 1
Th t gi quy V d 2: Dy s Fibonacci
nh tr theo th t ngc li
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... Bt u bng 0 v 1, cc s tip theo bng tng hai s i trc. Dy Fibonacci c khai bo quy nh sau: Fibonacci(0) = 0 Fibonacci(1) = 1 Fibonacci(n) = Fibonacci(n 1) + Fibonacci(n 2)
Dng File Edit Search Run Compile Debug Project Option Window Help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
/* Tinh so fibonacci thu n */ #include <stdio.h> #include <conio.h> void main(void) { long in; long fibonacci(long); printf("Nhap vao so n: "); scanf("%ld", &in); printf("Fibonacci(%ld) = %ld.\n", in, fibonacci(in)); getch(); } long fibonacci(long in) { if (in == 0 || in == 1) return in; else return fibonacci(in 1) + fibonacci(in 2); }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 124
Nhap vao so n: 10 Fibonacci(10) = 55. _
Th li chng trnh vi s liu khc.
Phng php quy khng phi bao gi cng l gii php hu hiu nh t.Gii php vng lp c hiu qu v mt thi gian v vng nh . Cn vi quy m i l n g i quy my phi dnh mt s vng nh tr cc tr, thng s v bin cc b. Do , quy t n nhi u vng nh, thi gian truyn i mc, thit lp vng nh trung gian v tr v k t qu ... Nh ng s dng phng php quy trng chng trnh p mt h n vng l p v tnh thuy t ph c ca n. iu ct li khi thit t chng trnh phi lm th no hm quy c th ch m d t thng qua iu kin c bn. 12.3 Bi tp 1. Vit hm quy tnh tng n s nguyn dng u tin: tong (n) = n + tong (n 1)
? S dng quy hay vng lp
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 125
Bi 13 : TRNH SON THO CA BORLAND C
BC c h thng menu nhiu cp. chn mt mc trong Menu bn n phm F10 (kch hot Menu), dng cc phm mi tn di chuyn vt sng n mc mun chn n Enter hoc n phm c k t i mu (phm chn nhanh mu ). C th chn nhanh mc menu trn thanh menu chnh bn n t hp phm Alt + phm c k t mu . V d: n t hp phm Alt + F kch hot menu File. 13.1 M tp tin son tho mi Chn menu File -> chn mc New -> to file son th o mi c tn m c nh l NONAME00.CPP, NONAME01.CPP... ty theo s ln mc New c chn. 13.2 Lu tp tin 13.2.1 Nu l tp tin son tho mi cha lu n phm F2 hoc chn menu File -> Save hoc ch n menu File -> Save As s xu t hi n hp thoi Save File As Save File As
E:\BORLANDC\BIN\NONAME00.CPP
OK
Files ..\ Cancel <========================>
E:\BORLANDC\BIN\NONAME00.CPP Directory
Help
+ Chn ng dn cn lu tp tin hp Files, chn ..\ tr v th mc cha th mc hin ti. + t tn tp tin hp Save File As + Chn OK + Hoc c th g [ a:][ng dn]<tn tp tin>, chn OK.
Dng phm TAB chuyn i vt sng gia cc mc trong hp thoi.
V d: mun lu tp tin c tn BT_IF1.CPP vo th mc D:\BAITAPC + Bn g vo hp Save File As D: -> Enter (OK), danh sch cc th mc, tp tin ca D hin th hp Files, chn th mc BAITAPC hp Files, g tn BT_IF1.CPP vo hp Save File As, chn OK. + Hoc nu bn nh r ng dn, g vo hp Save File As D:\BAITAPC\BT_IF1, chn OK.
Hanoi Aptech Computer Education Center
Gio trnh Lp trnh C cn bn
Trang 126
13.2.2 Nu l tp tin lu t nht 1 ln hoc c m bng lnh Open: + n F2 hoc chn menu File -> Save, ni dung tp tin hin hnh s c c p nh t nu c thay i. + Chn menu File -> Save As, xut hin hp thoi Save File As, thc hi n cc b c nh mc 2.1 (ngha l bn mun lu ni dung tp tin hin hnh v i ng d n, tn t p tin khc). nu c du hoa th l vn bn ca bn c thay i v cha c lu. 13.3 M tp tin M mt tp tin c trn a. n phm F3 hoc chn menu File -> Open, h p thoi Open a File xut hin: Name
D:\BAITAPC\*.CPP
bit tp tin ang son tho lu hay cha, bn xem gc di tri ca s,
OK Replace Cancel Help
Files BT_IF1.CPP BT_FOR1.CPP ..\ <========================>
D:\BAITAPC\*.CPP BT_IF1.CPP 11:04am
486 Oct 17, 2002
+ Chn ng dn cn m tp tin hp Files, chn ..\ tr v th mc cha th mc hin ti. + Chn tp tin cn m hp Files. + Chn OK + Hoc c th g [ a:][ng dn]<tn tp tin>, chn OK. V d: mun m tp tin c tn BT_IF1.CPP cha trong th mc D:\BAITAPC + Bn g vo hp Name D: -> Enter (OK), danh sch cc th m c, t p tin c a D hi n th hp Files, chn th mc BAITAPC hp Files, chn tp tin BT_IF1.CPP, chn OK. + Hoc bn c th g vo hp Name D:\BAITAPC\*.CPP hi n th danh sch cc tp tin c phn m rng CPP hp Files, chn tp tin BT_IF1.CPP, chn OK. + Hoc nu bn nh r ng dn, g vo hp Name D:\BAITAPC\BT_IF1.CPP, chn OK. 13.4 Cc phm, t hp phm thng dng 13.4.1 Cc phm di chuyn con tr Phm / T hp phm Chc nng Di chuyn con tr sang tri mt k t Di chuyn con tr sang phi mt k t
Hanoi Aptech Computer Education Center
Gio trnh Lp trnh C cn bn
Trang 127
Home End PgUp (Page Up) PgDn (Page Down) Ctrl PgUp Ctrl PgDn Backspace () Del (Delete) Ins (Insert) Enter Phm / T hp phm Shift Shift Shift Shift Shift Home Shift End Shift PgUp Shift PgDn Ctrl Shift Ctrl Shift Ctrl Shift End Ctrl Shift Home 13.4.3 Cc thao tc xa Phm Backspace () Del (Delete) Ctrl Y Ctr K Y Ctrl Q Y Ctrl T Insert
Di chuyn con tr ln trn mt dng Di chuyn con tr xung di mt dng Di chuyn con tr v u dng Di chuyn con tr v cui dng Lt li li mt trang mn hnh Lt ti mt trang mn hnh Di chuyn con tr v u tp tin Di chuyn con tr v cui tp tin Xa mt k t bn tri con tr Xa mt k t ti v tr con tr Chuyn i gia ch ghi chn v ghi Xung mt dng Chc nng nh du chn mt k t bn phi nh du chn mt k t bn tri nh du chn mt hng trn v tr con tr nh du chn mt hng ti v tr con tr nh du chn t u hng n v tr con tr nh du chn t v tr con tr n cui hng nh du chn mt trang lui mn hnh nh du chn mt trang ti mn hnh nh du chn mt t bn tri nh du chn mt t bn phi nh du chn t v tr con tr n cui tp tin nh du chn t v tr con tr n u tp tin Chc nng Xa mt k t bn tri con tr Xa mt k t ti v tr con tr Xa dng ti v tr con tr Xa khi Xa t v tr con tr n cui dng Xa mt t ti v tr con tr Bt / tt ch vit chn /
13.4.2 Cc phm thao tc trn khi
13.4.4 Cc thao tc copy, di chuyn Phm / T hp phm Chc nng Ctrl Insert Sao chp khi chn vo Clipboard
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 128
Shift Delete Ctrl Delete Shift Insert Ctrl K R Ctrl K W 13.4.5 Cc thao tc khc Phm / T hp phm F3 Alt F3 F2 F6 F5 Alt Backspace Ctrl K H Ctrl Q F Ctrl L Ctrl Q A Ctrl Q [, Ctrl Q ] F1 Shift F1 Ctrl F1 13.5 Ghi mt khi ra a
Ct khi chn vo Clipboard Xa khi chn Dn thng tin t Clipboard vo v tr con tr c thng tin t tp tin vo ca s son tho Ghi thng tin t ca s son tho vo tp tin Chc nng To tp tin mi hoc np tp tin t a vo ca s son tho ng tp tin ti ca s hin hnh Lu tp tin hin hnh Chuyn i qua li gia cc ca s ang son tho Chuyn i ca s son tho maximize restore Phc hi li thao tc trc n / hin du khi Tm kim Lp li ln tm kim sau cng Tm kim v thay th Xc nh cp ngoc bao 1 khi lnh Gi gip Hin ca s gip theo mc Hin ca s gip v hm, ton t... tung ng ti v tr con tr.
nh du chn khi bng cc phm thao tc trn kh i. n t h p phm Ctrl - K - W, xu t hin hp thoi Write Block to File, thc hin cc bc nh lu tp tin. 13.6 Chn ni dung file t a vo v tr con tr Di chuyn con tr n v tr cn chn ni dung, n t hp phm Ctrl - K - R, xu t hi n hp thoi Read Block from File, thc hin cc bc nh m tp tin. 13.7 Tm kim vn bn trong ni dung son tho n t hp phm Ctrl - Q - F hoc chn menu Search -> Find, h p tho i Find Text xu t hin: + G ni dung cn tm vo hp Text to Find. + Nu cn nh du / b chn cc mc sau: - Case-sensitive: phn bit ch hoa ch thng. - Whole words only: tm vn bn ng ring mt t. - Forward: Tm xui. - Backward: Tm ngc.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 129
+ Chn OK. Khi tm xong, mun tm tip n t hp phm Ctrl - L hoc ch n menu Search -> Search again. 13.8 Tm v thay th vn bn trong ni dung son tho hin: n t hp phm Ctrl - Q - A hoc chn menu Search -> Replace, hp thoi Find Text xut + G ni dung cn thay th vo hp Text to Find. + G ni dung mi vo hp New Text. + Nu cn nh du /b chn cc mc sau: - Case-sensitive: phn bit ch hoa ch thng. - Whole words only: tm vn bn ng ring mt t. - Forward: Tm xui. - Backward: Tm ngc. + Chn OK thay th tng vn bn c tm thy, chn Change All thay th t t
c.
13.9 Sa li c php Khi bin dch chng trnh, nu thnh cng bn s nh n c thng bo t c a s Compile (dng cui): Success: Press any key, ngc li l thng bo li Error: Press any key. Nu l thng bo li, khi n phm bt k ca s Message xut hi n ch a danh sch cc li. Thng bo li u tin c lm sng v dng c l i trong ch ng trnh cng c lm sng.km theo du cho bit trnh bin dch pht hin v tr l i. Dng phm mi tn di chuyn n cc thng bo li khc, bn s thy vt sng trong ch ng trnh cng s chuy n n dng cha li tng ng. Nu bn Enter ti dng thng bo li no th con tr s chuy n vo ca s son tho ti dng cha li tng ng. V d: In ra "Hello".
File Edit Search Run Compile Debug Project Option Window Help
#include <stdio.h> #include <conio.h> void main(void) { printf("Hello"; gech(); }
Message Compiling HELLO.CPP Error HELLO.CPP 5: Function call missing ) Error HELLO.CPP 6: Function 'gech' should have a prototype
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Vt sng nm thng bo li u tin v dng cha li tng ng trong chng trnh cng c lm sng: Li dng 5, khng ng ngoc hm printf.
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 130
13.10 Chy tng bc 13.10.1 Mi ln 1 bc
mi bc thc hin ta phi bn phm F7. Vi ln bm F7 u tin, dng u tin trong chng trnh (dng main()) s c lm sng, dng c lm sng ny c gi l dng chu n b th c hin, v n s c thc hin ln bm phm F7 ti p theo. Mi l n b m phm F7 dng ang u c lm sng s c thc hin, sau tr v mu bnh thng, v ty theo n i dung c a dng m m t dng lnh tip theo no s c lm sng chun b thc hin bc tip theo. Ta cng c th dng phm F8 thay cho F7 vi nhng dng khng c l i g i hm c khai bo trong chng trnh. S khc nhau gia F7 v F8 ch xy ra khi dng c lm sng c l i g i hm c khai bo trong chng trnh. Nh vy nh chy tng bc, ta c th d dng nm c cc li logic trong chng trnh.
13.10.2 Ti lp li qu trnh g ri
Bm Ctrl-F2 hoc vo menu Run chn Program reset. Khi b nh dng cho vi c g r i s c gii ta, khng c dng no c lm sng v kt thc qu trnh g ri.
13.10.3 Dng ca s Watch
Ln tng bc thng c dng km vi vic s dng ca s Watch theo di gi tr c a bin trong mi bc thc hin d tm ra nguyn nhn chng trnh thc hin sai. lm iu ta phi nhp vo cc bin c n theo di, b ng cch ch n m c Add watch c a menu Break/Watch hoc c th bm Ctrl-F7, sau nhp tn bin vo ti v tr con tr trong c a s Add watch v bm Enter. nhp thm tn bin vo ca s ny phi lp li ch c nng ny ho c b m phm Insert. Trong son tho nu cha nhn thy ca s Watch, ta bm phm F5, khi trn mn hnh s ng thi hin ra c 2 ca s, chuyn i gia 2 ca s ny b m phm F6. M i bi n trn c a s Watch thc hin trn 1 dng. Khi ca s Watch c ch n s c 1 dng c lm sng ch r ng bin ang c chn. Gi tr trong ca s Watch s thay i theo k t qu c a t ng b c th c hin.
13.11 S dng Help (Gip ) - n phm F1 kch hot mn hnh Help chnh. - Mun xem Help ca hm trong son tho, di chuy n con tr n v tr hm n t hp phm Ctrl - F1 - n t hp phm Shift - F1 xem danh sch cc mc Help - n t hp phm Alt - F1 quay v mn hnh Help trc .
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 131
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 132
Bi 14 : CC H M
14.1 Khi nim Cc ch s c bn ca mt h m l cc ch s dng biu din mi s trong h m y. H m thng gp nht l h thp phn (h 16). Nh ng do b n ch t nh phn c a cc thit b in t cho nn hu ht dng biu din d liu v cc php i s u th c hi n bng h nh phn (h 2). H bt phn (h 8) rt t dng v h thp phn (h 10) l h chng ta ang s dng biu din mt con s no trong cuc sng hng ngy. V d 1: H nh phn gm 2 ch s : 0, 1 H bt phn gm 8 ch s : 0, 1, 2, 3, 4, 5, 6, 7 H thp phn gm 10 ch s : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 H thp lc phn gm 16 ch s : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Cc ch s trong mt h m c sp xp theo quy tc : Bt k c s N nguyn dng no, c N k hiu khc nhau biu din cc s trong h th ng. Gi tr c a N k hi u ny c sp xp t 0 n N-1. H nh phn c c s N = 2 : cc ch s c nh t 0..1 H bt phn c c s N = 8 : cc ch s c nh t 0..7 H thp phn c c s N = 10 : cc ch s c nh t 0..9 H thp lc phn c c s N = 16 : cc ch s c nh t 0..9, A..F Do h thp lc phn c 16 ch s, m trong h th ng ch vi t ch bi u di n c 9 ch s, v vy ngi ta chn cc k t A..F biu din 10..15 v n cng c xem nh 1 ch s (A, B...F) thay v phi vit 10, 11...15 (2 ch s) 14.2 Quy tc biu din mt s ca mt h m, ta dng ch s t gc di phi s . 011012 : biu th s nh phn. 0828 : biu th s bt phn. 2316 : biu th s thp lc phn. i vi h thp phn ta c th ghi ch s hoc khng ghi (nhm hiu), v s thp phn l s m ta s dng quen thuc hng ngy. Do , ta s dng cng th c sau chuy n i t cc h m sang h thp phn (c s 10) : V d 2:
X = anan-1 ... a1a0 = anbn + an-1bn-1 +... + a1b1 + a0b0
trong , - b : l c s h m. - a0...an : l cc ch s trong mt h m. - X : l s thuc mt h m c s b.
(*)
Bng cc gi tr tng ng h thp phn, nh phn, bt phn, thp lc phn . (**) Thp phn 0 1 2 3 Nh phn 0000 0001 0010 0011 Bt phn 0 1 2 3 Thp lc phn 0 1 2 3
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn 4 5 6 7 8 9 10 11 12 13 14 15 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 4 5 6 7 10 11 12 13 14 15 16 17 4 5 6 7 8 9 A B C D E F
Trang 133
14.3 Chuyn i gia cc h 14.3.1 Chuyn i gia h 2 v h 10 Chuyn i t h 2 sang h 10 V d 3: X = 010112 , chuyn sang h 10 ta dng cng thc (*) X = 0*24 + 1*23 + 0*22 + 1*21 + 1*20 = 0+8+0+2+1 = 11 V d 4: X = 10110102, chuyn sang h 10 ta dng cng thc (*) X = 1*26 + 0*25 + 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 64 + 0 + 16 + 8 + 0 + 2 + 0 = 90 Chuyn i t h 10 sang h 2 V d 5: X = 11 11 1 2 5 1 2 2 0 2 1 1 10112 V d 6: X = 90 90 0 2 45 1 2 22 0 2 11 1 2 5 1 2 2 0
Hanoi AptechComputerEducationCenter
11 5 2 0 2 1
chia chia chia chia
2 = 2 2 2 = = = 10112 90 45 22 11
5 2 1 0
d d d d
1 1 0 1
kt qu h nh phn
chia chia chia chia chia chia chia
2 2 2
= = =
2 1 0 5 2 1 0
d d d d d d d
0 1 0 1 1 0 1
2 = 2 2 2 = = =
2 1 1 2 0
5 2 1
10110102
kt qu h nh
10110102
Gio trnh Lp trnh C cn bn
Trang 134
14.3.2 Chuyn i gia h 8 v h 10 Chuyn i t h 8 sang h 10 V d 7: X = 21068 , chuyn sang h 10 ta dng cng thc (*) X = 2*83 + 1*82 + 0*81 + 6*80 = 1024 + 64 + 0 + 6 = 1094 V d 8: X = 1308 , chuyn sang h 10 ta dng cng thc (*) X = 1*82 + 3*81 + 0*80 = 64 + 24 + 0 = 88 Chuyn i t h 10 sang h 8 V d 9: X = 1094 1094 6 8 136 0 8 17 1 8 2 2 21068 V d 10: X = 88 88 0 8 11 3 8 1 1 1308 8 0 88 11 1 chia chia chia 8 = 8 8 = = 1308 11 1 0 d d d 0 3 1 8 0 1094 136 17 2 chia chia chia chia 8 = 136 8 8 8 = = = 21068 17 2 0 d d d d 6 0 1 2
kt qu h bt phn
kt qu h bt phn
14.3.3 Chuyn i gia h 16 v h 10 Chuyn i t h 16 sang h 10 V d 11: X = F4016 , chuyn sang h 10 ta dng cng thc (*) X = 15*162 + 4*161 + 0*160 = 3840 + 64 + 0 = 3904 V d 12: X = 1D16 , chuyn sang h 10 ta dng cng thc (*)
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 135
X = 1*161 + 13*160 = 16 + 13 = 29 Chuyn i t h 10 sang h 16 V d 13: X = 3904 3904 16 0 244 16 4 15 16 15 F4016 V d 14: X = 29 29 16 13 1 1 16 0 29 1 chia chia 16 = 16 = 1 0 1D16 d 13 d 1
S 13 tng ng trong h 16 l D (xem bng (**))
3904 244 15
chia chia chia
16 = 244 16 = 16 = 15 0 F4016
d d
0 4
S 15 tng ng trong h 16 l F (xem bng (**))
0
d 15
kt qu h thp lc phn
1D16
kt qu h thp lc phn
14.3.4 Chuyn i gia h 2 v h 16 Chuyn i t h 2 sang h 16 V d 15: X = 010112 , chuyn sang h 16 ta tra trong bng (**) X = B16 Din gii : 0 10112 0 B16 = B16 V d 16: X = 10110102, chuyn sang h 16 ta tra trong bng (**) X = 5A16 Din gii : 101 10102 5 A16 = 5A16 Chuyn i t h 16 sang h 2 V d 17: X = B16 , chuyn sang h 2 ta tra trong bng (**) X = 10112 Din gii : B16 10112 = 10112 V d 18: X = 5A16, chuyn sang h 2 ta tra trong bng (**) X = 10110102 Din gii : 5 A16 0101 10102 = 10110102
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 136
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 137
Bi 15 : BIU THC V PHP TON
15.1 Biu thc L s phi hp ca nhng ton t v ton hng. V d 1: a+b b = 1 + 5 * 2/i a = 6 % (7 + 1) x++ * 2/4 + 5 power(i, 2) Ton hng s dng trong biu thc c th l hng s, bin, hm. 15.2 Php ton Trong C c 4 nhm ton t chnh yu sau y: 15.2.1 Php ton s hc + * / % : : : : : cng tr nhn chia ly phn d p dng trn tt c cc ton hng c kiu d liu char, int float, double (k c long, short, unsigned) p dng trn cc ton hng c kiu d liu char, int, long
* Th t u tin: o du +, ( ) *, / , % +, V d 2: 10%4 = 2 (10 chia 4 d 2); 9%3 = 0 (9 chia 3 d 0) 3 * 5 + 4 = 19 6+2/23=4 7 + 2 * ((4 + 3) * 4 + 8) = 65 t u tin t trong ra ngoi. 15.2.2 Php quan h > >= < <= == != : : : : : : ln hn ln hn hoc bng nh hn nh hn hoc bng bng khc > , >= , < , <= == , !=
ch s dng cp ngoc () trong biu thc, cp ngoc n c thc hin theo th
* Th t u tin:
sai. Php ton quan h ngoi ton hng c s dng l s cn c s dng vi kiu d liu char. * Th t u tin gia ton t s hc v ton t quan h Ton t s hc V d 3:
Hanoi AptechComputerEducationCenter
Kt qu ca php ton quan h l s nguyn kiu int, bng 1 nu ng, bng 0 nu
Ton t quan h
Gio trnh Lp trnh C cn bn
Trang 138
4 > 10 4 >= 4 3 == 5 2 <= 1 6 != 4 63<4 2 * 4 < 3 + 2
c gi tr 0 (sai) c gi tr 1 (ng) c gi tr 0 (sai) c gi tr 0 (sai) c gi tr 1 (ng) c gi tr 1 (ng), tng ng (6 3) < 4 c gi tr 0 (sai), tng ng (2 * 4) < (3 + 2)
15.2.3 Php ton lun l ! : NOT (php ph nh) &&: AND (php v) || : OR (php hoc) Ton hng a Khc 0 Khc 0 Bng 0 Bng 0 Ton hng b Khc 0 Bng 0 Khc 0 Bng 0 || !a 0 (sai) 0 (sai) 1 (ng) 1 (ng) a && b 1 (ng) 0 (sai) 0 (sai) 0 (sai) a || b 1 (ng) 1 (ng) 1 (ng) 0 (sai)
* Th t u tin: ! &&
V d 4: !(2 <= 1) c gi tr 1 (ng) 5 && 10 c gi tr 1 (ng) !6 c gi tr 0 (sai) 1 && 0 c gi tr 0 (sai) 1 || 0 c gi tr 1 (ng) * Th t u tin gia cc ton t: ! Ton t s hc Ton t quan h && ||
15.2.4 Php ton trn bit (bitwise) & | ^ >> << ~ : v (AND) : hoc (OR) : hoc loi tr (XOR) : dch phi : dch tri : o Bit a Bit b 0 0 0 1 1 0 1 1
~a 1 1 0 0 1101 1010
a&b 0 0 0 1
a|b 0 1 1 1
a^b 0 1 1 0
V d 5: a = 13 i ra h nh phn b = 10 i ra h nh phn 1101 1101 & 1010 | 1010 = 1000 = 1111
Hanoi AptechComputerEducationCenter
1101 ^ 1010 = 0111
Gio trnh Lp trnh C cn bn
Trang 139
= 8 = 15 = 7 (dng thp phn) a = 1235 i ra h nh phn 0100 1101 0011 b = 465 i ra h nh phn 0001 1101 0001 0100 1101 0011 0100 1101 0011 0100 1101 0011 & 0001 1101 0001 | 0001 1101 0001 ^ 0001 1101 0001 = 0000 1101 0001 = 0101 1101 0011 = 0101 0000 0010 = 209 = 1491 = 1282 (dng thp phn) 15.2.5 Cc php ton khc 1. Php ton gn Php gn l thay th gi tr hin ti ca bin bng mt gi tr mi. Cc php gn: =, +=, =, *=, /=, %=, <<=, >>=, &=, |=, ^=. V d 6: ta c gi tr i = 3 i=i+3 i = 6 i += 3 i = 6 i = i + 3 i *= 3 i = 9 i = i * 3 2. Php ton tng, gim: ++, Ton t ++ s cng thm 1 vo ton hng ca n, ton t s tr i 1. V d 7: ta c gi tr n = 6 + Sau php tnh ++n hoc n++, ta c n = 7. + Sau php tnh n hoc n , ta c n = 5. * S khc nhau gia ++n v n++, n v n + Sau php tnh x = ++n + 2, ta c x = 9. (n tng 1 cng vi 2 ri gn cho x) + Sau php tnh x = n++ + 2, ta c x = 8. (n cng vi 2 gn cho x ri mi tng 1) 15.2.6 u tin ca cc php ton u tin Cc php ton Trnh t kt hp 1 ( ) [ ] -> Tri sang phi 2 ! ~ & * ++ (type) sizeof Phi sang tri 3 * / % Tri sang phi 4 + Tri sang phi 5 << >> Tri sang phi 6 < <= > >= Tri sang phi 7 == != Tri sang phi 8 & Tri sang phi 9 ^ Tri sang phi 10 | Tri sang phi 11 && Tri sang phi 12 || Tri sang phi 13 ? : Phi sang tri 14 = += = *= /= %= <<= >>= &= ^= |= Phi sang tri 15 , Tri sang phi Lu : - Php o () dng 2, php tr () dng 4 - Php ly a ch (&) dng 2, php AND bit (&) dng 8 - Php ly i tng con tr (*) dng 2, php nhn (*) dng 3. 15.3 Bi tp 1. Gi s a, b, c l bin kiu int vi a = 8, b = 3 v c = 5. Xc nh gi tr cc bi u th c sau:
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 140
a+b+c a/bc a+c/a a%b x+y+z 5 * y + 6 * (x z) x/z x%z
a%c*2 2 * b + 3 * (a c) c * (b / a) (a * b) % c z / (y + x) (z / y) + x 2*y/3*z 2 * y / (3 * z)
a * (a % b) a * (b + (c 4 * 3)) 5*a6/b 5%b%c x/yz*y 2.5 * x / z (y + 6) 5 * 6 / ((x + y ) / z) x / y*(6 + ((zy)+3.4))
2. Gi s x, y, z l bin kiu float vi x = 8.8, y = 3.5 v z = 5.2. Xc nh gi tr cc biu thc sau:
3. Cho chng trnh C vi cc khai bo v khi to cc bin nh sau: int i = 8, j = 5; float x = 0.005, y = 0.01; char c = 'c', d = 'd'; Hy xc nh gi tr tr v ca cc biu thc sau: (3 * i 2 * j) % (4 * d c) c<d 2 * ((i / 4) + (6 * (j 3)) % (i + j 4)) x >= 0 (i 7 * j) % (c + 3 * d) / (x y) x<y (i + j) * 1 j != 6 ++i c == 99 i++ d != 100 i++ + 5 5 * (i + j + 1) > 'd' ++i + 5 (3 * x + y) == 0 j 2 * x + (y == 0) j !(i < j) j + i !(d == 100) j 5 !(x < 0) ++x (i > 0) && (j < 6) y-(i > 0) !! (j < 5) i >= j (x > y) && (i > 0) || (j < 5) 4. Cho chng trnh c cc khai bo bin v khi to nh sau: int i = 8, j = 5, k; float x = 0.005, y = 0.01, z; char a, b, c = 'c', d = 'd'; Xc nh gi tr cc biu thc gn sau: k = (i + j * 4) x = (x + y * 1.2) i=j k = (x + y) k=c i = j = 1.1 z=k=x k=z=x z=i/j a=b=d y =x x *= 2 i /= j i += 2 z = (x >= 0) ? x : 0 z = (y >= 0) ? y : 0 i %= j i += (j 3) k = (j = = 5) ? i : j k = (j > 5) ? i : j i += j *= i /= 2 a = (c < d) ? c : d i = (j > 0) ? j : 0 i = (i*9*(3+(8*j/3)))
Hanoi AptechComputerEducationCenter
Gio trnh Lp trnh C cn bn
Trang 141
Bi 16 : MT S HM CHUN THNG DNG
16.1 Cc hm chuyn i d liu 16.1.1 atof double atof(const char *s); Phi khai bo math.h hoc stdlib.h Chuyn i 1 chui sang gi tr double. V d: float f; char *str = "12345.67"; f = atof(str); Kt qu f = 12345.67; 16.1.2 atoi int atoi(const char *s); Chuyn i 1 chui sang gi tr int. V d: int i; char *str = "12345.67"; i = atoi(str); Kt qu i = 12345 16.1.3 itoa char *itoa(int value, char *string, int radix); Phi khai bo stdlib.h Chuyn i s nguyn value sang chui string theo c s radix. V d: int number = 12345; char string[25]; itoa(number, string, 10); //chuyn i number sang chui theo c s 10 Kt qu string = "12345"; itoa(number, string, 2); //chuyn i number sang chui theo c s 2 Kt qu string = "11000000111001"; 16.1.4 tolower int tolower(int ch); Phi khai bo ctype.h i ch hoa sang ch thng. V d: int len, i; char *string = "THIS IS A STRING"; len = strlen(string); for (i = 0; i < len; i++) string[i] = tolower(string[i]); //i t k t trong string thnh ch th ng 16.1.5 toupper int toupper(int ch); Phi khai bo ctype.h i ch thng sang ch hoa. V d: int len, i; char *string = "this is a string"; len = strlen(string);
Hanoi AptechComputerEducationCenter
Phi khai bo stdlib.h
Gio trnh Lp trnh C cn bn
Trang 142
for (i = 0; i < len; i++) string[i] = toupper(string[i]); //i t k t trong string thnh ch th ng 16.2 Cc hm x l chui k t 16.2.1 strcat char *strcat(char *dest, const char *src); Thm chui src vo sau chui dest. 16.2.2 strcpy char *strcpy(char *dest, const char *src); Phi khai bo string.h Chp chui src vo dest. V d: char destination[25]; char *blank = " ", *c = "C++", *borland = "Borland"; strcpy(destination, borland); //chp chui borland vo destination strcat(destination, blank); //thm chui blank vo sau chui destination strcat(destination, c); //thm chui c vo sau chui destination 16.2.3 strcmp int *strcmp(const char *s1, const char *s2); Phi khai bo string.h So snh chui s1 vi chui s2. Kt qu tr v: < 0 nu s1 < s2 = 0 nu s1 = s2 > 0 nu s1 > s2 V d: char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "aaa"; strcmp(buf1, buf2); //kt qu tr v - 1 strcmp(buf1, buf3); //kt qu tr v 0 strcmp(buf2, buf3); //kt qu tr v 1 16.2.4 strcmpi int *strcmp(const char *s1, const char *s2); Phi khai bo string.h So snh chui s1 vi chui s2 khng phn bit ch hoa, ch thng. Kt qu tr v: < 0 nu s1 < s2 = 0 nu s1 = s2 > 0 nu s1 > s2 V d: char *buf1 = "aaa", *buf2 = "AAA"; strcmp(buf1, buf2); //kt qu tr v 0 16.2.5 strlwr char *strlwr(char *s); Phi khai bo string.h Chuyn chui s sang ch thng V d: char *s = "Borland C"; s = strlwr(s); //kt qu s = "borland c" 16.2.6 strupr char *strupr(char *s);
Hanoi AptechComputerEducationCenter
Phi khai bo string.h
Phi khai bo string.h
Gio trnh Lp trnh C cn bn
Trang 143
Chuyn chui s sang ch hoa V d: char *s = "Borland C"; s = strlwr(s); 16.2.7 strlen int strlen(const char *s); Tr v di chui s. V d: char *s = "Borland C"; int len_s; len_s = strlen(s); 16.3 Cc hm ton hc 16.3.1 abs int abs(int x);
//kt qu s = "BORLAND C" Phi khai bo string.h
//kt qu len_s = 9
Phi khai bo stblib.h
Cho gi tr tuyt i ca s nguyn x. V d: int num = - 123; num = abs(num); //kt qu num = 123 16.3.2 labs long int labs(long int x); Phi khai bo stblib.h Cho gi tr tuyt i ca s nguyn di x. V d: int num = - 12345678L; num = labs(num); //kt qu num = 12345678 16.3.3 rand int rand(void); Phi khai bo stblib.h Cho 1 gi tr ngu nhin t 0 n 32767 V d: int num; randomize(); //dng hm ny khi u b s ngu nhin num = rand(); //kt qu num = 1 con s trong khong 0..32767 16.3.4 random int random(int num); Phi khai bo stblib.h Cho 1 gi tr ngu nhin t 0 n 32767 V d: int n; randomize(); n = random(100); //kt qu n = 1 con s trong khong 0..99 16.3.5 pow double pow(double x, double y); Tnh x m y V d: double x = 2.0, y = 3.0, z; z = pow(x, y); 16.3.6 sqrt double sqrt(double x); Tnh cn bc 2 ca x.
Hanoi AptechComputerEducationCenter
Phi khai bo math.h
//kt qu z = 8.0 Phi khai bo math.h
Gio trnh Lp trnh C cn bn
Trang 144
V d: double x = 4.0, y; y = sqrt(x); 16.4 Cc hm x l file 16.4.1 rewind void rewind(FILE *stream); a con tr v u file. 16.4.2 ftell long ftell(FILE *stream); Tr v v tr con tr file hin ti. 16.4.3 fseek
//kt qu y = 2.0
Phi khai bo stdio.h
Phi khai bo stdio.h
int fseek(FILE *stream, long offset, int whence);
Phi khai bo stdio.h
Di chuyn con tr file n v tr mong mun long offset: ch ra s byte k t v tr trc n v tr bt u c int whence: ch ra im xut pht tnh offset gm cc gi tr sau: SEEK_SET (u tp tin), SEEK_CUR (ti v tr con tr hin hnh), SEEK_END (cui tp tin).
Hanoi AptechComputerEducationCenter
Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more.
Course Hero has millions of course specific materials providing students with the best way to expand
their education.
Below is a small sample set of documents:
Hanoi University of Technology - PFC - 101
Gio trnh Lp trnh C cn bnTrang 1MC LCBI 1 : 1.1 NGN NG LP TRNH & PHNG PHP LP TRNH . 7 Mc tiu . 71.2 L thuyt. 7 1.2.1 Ngn ng lp trnh (Programming Language) . 7 1.2.1.1 Thut gii (Algorithm) . 7 1.2.1.2 Chng trnh (Program) . 7 1.2.1.3 Ngn ng lp trnh (Prog
Hanoi University of Technology - PFC - 101
L P TRNH H NGI T NG V I C+Mt s tin ch v m rng ca C+ so vi CM C TIU C A BI NY GIP NG I H C Nh p/xu t d li u s d ng ton t cin v cout Vi t ch thch trn m t dng, khai bo bi n m i ni, c p pht v thu h i b nh ng s d ng ton new v delete, Gi i cc bi t p c s d ng
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz1 - slot 03 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.1.01 (0.5 im) Which of the following statements are true about maintainability in good software engineering? (select all correct answers) A program is small enough in size
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz2 - slot 05 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.1.01 (0.5 im) What is the correct value to return to the operating system upon the successful completion of a program? -1 1 0 Programs do not return a value.ng1.02. (0.5
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz3 - slot 09 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.3.01. How long does the following code run? for(int x=0; x<=2; x+) none twice thrice foreverng3.02. (0.5 im) Which of the following is the boolean operator for logical-a
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz4 - slot 15 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.4.01. Which is not a proper prototype? int funct(char x, char y); double funct(char x) void funct(); char x(); ng4.02. (0.5 im) What is the return type of the function fo
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz5 - slot 17 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.5.01. (0.5 im) Which of the following is the proper declaration of a pointer? int &x; int x; ptr x; int *x;ng5.02. (0.5 im) Which of the following gives the memory addre
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz6 - slot 23 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.6.01. (0.5 im) Which of the following correctly declares an array? int anarray[10]; int anarray; anarraycfw_10; array anarray[10]; ng6.02. (0.5 im) What is the index numb
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz7 - slot 27Ghi ch: Nhng cu khng ghi im c hiu l 1 im.7.01. (0.5 im) Which of the following accesses a variable var in structure b? b->var; b.var; b-var; b>var; ng7.02. (0.5 im) Which of the following is a properly defined struct?
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz8 - slot 29 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.8.01. (0.5 im) Which one of the following functions is the correct choice for copying blocks of binary data that are of arbitrary size and position in memory? memset() str
Hanoi University of Technology - PFC - 101
thi trc nghim PFC- Quiz9 - slot 35 (10')Ghi ch: Nhng cu khng ghi im c hiu l 1 im.9.01. (0.5 im) What is the header file containing getch() function? conio stdlib stdio.h all of the above 9.02. (0.5 im) Which loop that counts from 0 to 5 for (c = 0; c <
Hanoi University of Technology - C++ - 101
Bi 1 : Cu Trc Ca Mt Chng Trnh C+C l mt trong nhng cch tt nht bt u hc mt ngn ng lp trnh l bng mt chng trnh. Vy y l chng trnh u tin ca chng ta :/ my first program in C+ #include <iostream.h> int main () cfw_ cout < "Hello World!"; return 0; Hello World!
Hanoi University of Technology - C++ - 101
Gio trnh Lp trnh C cn bnTrang 1MC LCBI 1 : 1.1 NGN NG LP TRNH & PHNG PHP LP TRNH . 7 Mc tiu . 71.2 L thuyt. 7 1.2.1 Ngn ng lp trnh (Programming Language) . 7 1.2.1.1 Thut gii (Algorithm) . 7 1.2.1.2 Chng trnh (Program) . 7 1.2.1.3 Ngn ng lp trnh (Prog
Hanoi University of Technology - C++ - 101
/*question number 1*/ Code: int z,x=5,y=-10,a=4,b=2; z = x+ - -y * b / a; What number will z in the sample code above contain? Choice 1 5 Choice 2 6 Choice 3 10 [Ans] Corrected by buddy by running the program Choice 4 11 Choice 5 12 /*question number 2*/
Hanoi University of Technology - C++ - 101
Chapter 17 Employment Communication and InterviewingTrue/False Questions F 1. The body of the application letter has two goals: to create interest in your qualifications and to ask for an interview. T 2. Rsums are generally not longer than 1 to 1 pages.
Hanoi University of Technology - C++ - 101
Trng HBK H Ni Khoa in B mn iu khin T ngTi liu hng dn thc hnh:K THUT LP TRNH C/C+Bi 1: Lp trnh c s1 Mc ch bi thc hnh Gip hc vin lm quen vi cng c lp trnh Visual C+, th nghim vit chng trnh theo phong cch hng hm, qua nm vng cc kin thc lp trnh c s nh: 1) P
Hanoi University of Technology - C++ - 101
K thut lp trnhChng 1Chng 1: M u0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop() 010101
Hanoi University of Technology - C++ - 101
Chng 1K thut lp trnhChng 2: Cc yu t c bn ca C v C+0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 11001011001000100
Hanoi University of Technology - C++ - 101
K thut lp trnhChng 1Phn II: Lp trnh c cu trcChng 3: Hm v th vin0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 110
Hanoi University of Technology - C++ - 101
Chng 1K thut lp trnhChng 4: Khi qut v cu trc d liu0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 11001011001000100
Hanoi University of Technology - C++ - 101
Chng 1K thut lp trnhPhn III: Lp trnh hng i tng Chng 5: Lp v i tng0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 11
Hanoi University of Technology - C++ - 101
Chng 1K thut lp trnhChng 7: Quan h lp0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop()
Hanoi University of Technology - C++ - 101
K thut lp trnhChng 8: Tin ti t duy lp trnh hng i tng0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010
Hanoi University of Technology - C++ - 101
K thut lp trnhPhn III: Lp trnh tng qutChng 9: Khun mu hm v khun mu lp0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 110010110010001000001
Hanoi University of Technology - C++ - 101
K thut lp trnhChng 10: Thut ton tng qut0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop()
Hanoi University of Technology - C++ - 101
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only.Pearson Education Limited Edinburgh Gate, Harlow Essex, CM20 2JE, England And Associated Companies throughout the World. www.longman.com Pearson Education Limited
Hanoi University of Technology - C++ - 101
Hanoi University of Technology - C++ - 101
Hanoi University of Technology - C++ - 101
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only.Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only.Tran Huy Cuong FB00314 Class: Sum2take it out on someone keep it in
Hanoi University of Technology - C++ - 101
Hanoi University of Technology - C++ - 101
Hanoi University of Technology - C++ - 101
Hanoi University of Technology - C++ - 101
Hanoi University of Technology - C++ - 101
Hanoi University of Technology - C++ - 101
BC - CHEM - 123
Page 1 of 18THE UNIVERSITY OF BRITISH COLUMBIACHEMISTRY 123 FINAL EXAMINATION This examination consists of 18 numbered pages. PLEASE CHECK THAT YOU HAVE A COMPLETE PAPER 27 April 2010 TIME LIMIT: 2.5 HOURSSURNAME: _ GIVEN NAME(S): _ANSWER KEY_ (IN INK)
Adrian College - ACCT - 112
1An Overview of Federal TaxationTest BankTrue or False1. A correlation exists between the amount of Federal tax an individual pays and the value of benefits an individual receives. 2. The Thirteenth Amendment enacted in 1916 made it clear that Congres
Adrian College - ACCT - 112
2Tax Practice and ResearchSolutions to Tax Research Problems2-23 a. b. c. CA-7. This information is shown in the citation for the case. No. There is no Supreme Court citation listed. Tax Court and reported as a memorandum decision, as shown in the cita
Adrian College - ACCT - 112
3Taxable Entities; Tax Formula; Introduction to Property TransactionsSolutions to Tax Research Problems3-56 The purpose for this problem is to allow one to gain an appreciation for the organization of the Internal Revenue Code and the differing authori
Adrian College - ACCT - 112
Personal and Dependency Exemptions; Filing Status; Determination of Tax for an Individual; Filing Requirements4Solutions to Tax Return ProblemsThe solution to problem 4-53 is on page 4-2; the solution to problem 4-54 is on pages 4-3 through 4-6; the so
Adrian College - ACCT - 112
5Gross IncomeSolutions to Tax Return Problems5-52 The treatment of the various items is discussed below. 1. David's salary of $70,000 is taxable and is reported on line 7 of Form 1040. The withholding is treated as a credit against the taxes owed and i
Adrian College - ACCT - 112
6Gross Income: Inclusions and ExclusionsSolutions to Tax Research Problems6-60 a. In a divorce, the custodial parent generally is allowed the exemption. Section 152(e), as revised by the Deficit Reduction Act of 1984 (DRA), simplified the rules concern
Adrian College - ACCT - 112
7Overview of Deductions and LossesSolutions to Cumulative ProblemsSolutions to 7-607-61 are found on the following pages.7-17-2Chapter 7Overview of Deductions and LossesCumulative Problem 7-60Solutions to Cumulative Problems7-3Cumulative Proble
Adrian College - ACCT - 112
8Employee Business ExpensesSolutions to Cumulative Problems8-40 The solution to 8-40 is on the following pages.8-18-2Chapter 8Employee Business ExpensesSolutions to Cumulative Problems8-38-4Chapter 8Employee Business ExpensesSolutions to Cumu
Adrian College - ACCT - 112
9Capital Recovery: Depreciation, Amortization and DepletionSolutions to Cumulative Problems9-435-Computation of the various elements of taxable income and comments on the treatment of the various items are given below. Note: This return is completed
Adrian College - ACCT - 112
11Itemized DeductionsSolutions to Tax Research Problems11-41 Shirley should be able to deduct some, if not all of the interest that she pays to Sam in each of the next 10 years. In John L. Seymour, 109 T.C. 279 (1997) the Tax Court determined that inte
Adrian College - ACCT - 112
12Deductions for Certain Investment Expenses and LossesTest BankTrue or False1. The form of organization usually used for traditional tax shelters is a C corporation. 2. The acceleration of expenses to early periods and the postponement of income to l
Adrian College - ACCT - 112
13The Alternative Minimum Tax and Tax CreditsSolutions to Tax Research Problems13-51 According to Ltr. Rul. 8349023 (8-31-83), the answer is yes, P will be allowed to take the credit on her return in the year she places the office building into service
Adrian College - ACCT - 112
14Property Transactions: Basis Determination and Recognition of Gain or LossSolutions to Tax Research Problems14-391. In the first situation, H is able to find a buyer who will pay $1,000 for the building. Upon this transfer, H has gain as follows: Am
Adrian College - ACCT - 112
15Nontaxable ExchangesSolutions to Tax Research Problems15-50 Regulation 1.1031(j)-1 deals with exchanges of multiple properties. Under this regulation, assets must be broken down into exchange groups. An exchange group is made up of assets of like-kin
Adrian College - ACCT - 112
16Property Transactions: Capital Gains and LossesSolutions to Tax Research Problems16-57 5The controlling question is whether a geographical limitation on the exploitation of a patent is a substantial right. According to the cases cited, it is. Therefo
Adrian College - ACCT - 112
17Property Transactions: Dispositions of Trade or Business PropertySolutions to Tax Research Problems17-58 The research question is: decide whether the fact that the grandmother used the residence for personal purposes is relevant in determining the ch
Adrian College - ACCT - 112
18Employee Compensation and Retirement PlansSolutions to Tax Research Problems18-36 There are several ways to approach this problem. Here is one: What is the present value at the beginning of Year 11 (beginning of retirement) of each option assuming th
Adrian College - ACCT - 112
19Corporations: Formation and OperationSolutions to Tax Research ProblemsTAX RESEARCH PROBLEMS19-28 T may have a problem with the transaction as planned, since the IRS might argue that the incorporation does not meet the requirements for nonrecognitio
Adrian College - ACCT - 112
20Corporate Distributions, Redemptions, and LiquidationsTest BankTrue or False1. A corporation's accumulated E&P will equal its retained earnings. 2. It is possible for a corporation to pay a taxable dividend even though there is a deficit in accumula
Adrian College - ACCT - 112
21Taxation of Corporate AccumulationsSolutions to Tax Research Problems21-41 a. Section 1033 provides for nonrecognition of gain on certain involuntary conversions. Condemnations are included in the term involuntary conversion, as are sales following t
Adrian College - ACCT - 112
22Taxation of Partnerships and PartnersTest BankTrue or False1. Owners of investment property can elect that Subchapter K not apply to their ventures if each owner retains a separate and undivided ownership interest in the acquisition, operation, and
Adrian College - ACCT - 112
24The Federal Transfer TaxesSolutions to Tax Research Problems24-44 Reg. 20.2031-1(b) provides that valuation of property includible in the gross estate is the "price at which the property would change hands between a willing buyer and a willing seller
Adrian College - ACCT - 112
25Income Taxation of Estates and TrustsSolutions to Tax Research Problems25-33 Reg. 1.643(a)-3(a) provides the general rule that capital gains realized upon the sale of fiduciary assets are normally allocated to corpus and excludable from the distribut
Adrian College - ACCT - 112
26Family Tax PlanningSolutions to Tax Research Problems26-42 This trust may be considered a grantor trust under 677(b), which provides that "income of a trust shall not be considered taxable to the grantor merely because such income in the discretion o
Adrian College - ACCT - 110
1An Overview of Federal TaxationSolutions to Problem MaterialsDISCUSSION QUESTIONS1-1 A tax base is the amount upon which a tax is levied. The tax base for the Federal income tax is called "taxable income" and is the taxpayer's total income less exclu