135
Giáo trình Lp trình C căn bn Trang 1 HanoiAptech Computer Education Center Thanghv MC LC BÀI 1 : NGÔN NGLP TRÌNH & PHƯƠNG PHÁP LP TRÌNH ...................... 7 1.1 Mc tiêu ................................................................................................................................ 7 1.2 Lý thuyết ............................................................................................................................... 7 1.2.1 Ngôn nglp trình (Programming Language) ............................................................. 7 1.2.1.1 Thut gii (Algorithm) ............................................................................................. 7 1.2.1.2 Chương trình (Program) ......................................................................................... 7 1.2.1.3 Ngôn nglp trình (Programming language) ....................................................... 8 1.2.2 Các bước lp trình ........................................................................................................... 8 1.2.3 Kthut lp trình ............................................................................................................ 8 1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nhp-xlý-xut) ........ 8 1.2.3.2 Sdng lưu đồ (Flowchart)..................................................................................... 9 BÀI 2 : LÀM QUEN LP TRÌNH C QUA CÁC VÍ DĐƠN GIN ...................... 12 2.1 Mc tiêu .............................................................................................................................. 12 2.2 Ni dung.............................................................................................................................. 12 2.2.1 Khi động và thoát BorlandC....................................................................................... 12 2.2.1.1 Khi động ................................................................................................................ 12 2.2.1.2 Thoát ........................................................................................................................ 13 2.2.2 Các ví dđơn gin ......................................................................................................... 13 2.2.2.1 Ví d1 ...................................................................................................................... 13 2.2.2.2 Ví d2 ...................................................................................................................... 15 2.2.2.3 Ví d3 ...................................................................................................................... 16 2.2.2.4 Ví d4 ...................................................................................................................... 16 BÀI 3 : CÁC THÀNH PHN TRONG NGÔN NGC ......................................... 18 3.1 Mc tiêu .............................................................................................................................. 18 3.2 Ni dung.............................................................................................................................. 18 3.2.1 Tkhóa ........................................................................................................................... 18 3.2.2 Tên ................................................................................................................................... 18 3.2.3 Kiu dliu .................................................................................................................... 18 3.2.4 Ghi chú ............................................................................................................................ 19 3.2.5 Khai báo biến ................................................................................................................. 19 3.2.5.1 Tên biến ................................................................................................................... 19 3.2.5.2 Khai báo biến .......................................................................................................... 19 3.2.5.3 Va khai báo va khi gán.................................................................................... 20 3.2.5.4 Phm vi ca biến..................................................................................................... 20 BÀI 4 : NHP / XUT DLIU .......................................................................... 21 U 4.1 Mc tiêu .............................................................................................................................. 21 4.2 Ni dung.............................................................................................................................. 21

Lap Trinh C Can Ban-Giao Trinh Aptech

Embed Size (px)

Citation preview

  • Gio trnh Lp trnh C cn bn Trang 1

    HanoiAptech Computer Education Center Thanghv

    MC LC

    BI 1 : NGN NG LP TRNH & PHNG PHP LP TRNH ...................... 7

    1.1 Mc tiu ................................................................................................................................ 7

    1.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 (Programming language) ....................................................... 8

    1.2.2 Cc bc lp trnh ........................................................................................................... 8 1.2.3 K thut lp trnh ............................................................................................................ 8

    1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trnh nhp-x l-xut) ........ 8 1.2.3.2 S dng lu (Flowchart) ..................................................................................... 9

    BI 2 : LM QUEN LP TRNH C QUA CC V D N GIN ...................... 12

    2.1 Mc tiu .............................................................................................................................. 12

    2.2 Ni dung .............................................................................................................................. 12 2.2.1 Khi ng v thot BorlandC ....................................................................................... 12

    2.2.1.1 Khi ng ................................................................................................................ 12 2.2.1.2 Thot ........................................................................................................................ 13

    2.2.2 Cc v d n gin ......................................................................................................... 13 2.2.2.1 V d 1 ...................................................................................................................... 13 2.2.2.2 V d 2 ...................................................................................................................... 15 2.2.2.3 V d 3 ...................................................................................................................... 16 2.2.2.4 V d 4 ...................................................................................................................... 16

    BI 3 : CC THNH PHN TRONG NGN NG C ......................................... 18

    3.1 Mc tiu .............................................................................................................................. 18

    3.2 Ni dung .............................................................................................................................. 18 3.2.1 T kha ........................................................................................................................... 18 3.2.2 Tn ................................................................................................................................... 18 3.2.3 Kiu d liu .................................................................................................................... 18 3.2.4 Ghi ch ............................................................................................................................ 19 3.2.5 Khai bo bin ................................................................................................................. 19

    3.2.5.1 Tn bin ................................................................................................................... 19 3.2.5.2 Khai bo bin .......................................................................................................... 19 3.2.5.3 Va khai bo va khi gn .................................................................................... 20 3.2.5.4 Phm vi ca bin ..................................................................................................... 20

    BI 4 : NHP / XUT D LIU .......................................................................... 21 U

    4.1 Mc tiu .............................................................................................................................. 21

    4.2 Ni dung .............................................................................................................................. 21

  • Gio trnh Lp trnh C cn bn Trang 2

    4.2.1 Hm printf ...................................................................................................................... 21 4.2.2 Hm scanf ....................................................................................................................... 24

    4.3 Bi tp ................................................................................................................................. 25

    BI 5 : CU TRC R NHNH C IU KIN ................................................ 26

    5.1 Mc tiu .............................................................................................................................. 26

    5.2 Ni dung .............................................................................................................................. 26 5.2.1 Lnh v khi lnh ........................................................................................................... 26

    5.2.1.1 Lnh ......................................................................................................................... 26 5.2.1.2 Khi lnh ................................................................................................................. 26

    5.2.2 Lnh if ............................................................................................................................. 26 5.2.2.1 Dng 1 (if thiu) ...................................................................................................... 26 5.2.2.2 Dng 2 (if ) ......................................................................................................... 30 5.2.2.3 Cu trc else if ........................................................................................................ 33 5.2.2.4 Cu trc if lng ....................................................................................................... 37

    5.2.3 Lnh switch ..................................................................................................................... 41 5.2.3.1 Cu trc switchcase (switch thiu) .................................................................... 41 5.2.3.2 Cu trc switchcasedefault (switch ) ........................................................ 44 5.2.3.3 Cu trc switch lng ............................................................................................... 46

    5.3 Bi tp ................................................................................................................................. 48 5.3.1 S dng lnh if ............................................................................................................... 48 5.3.2 S dng lnh switch ....................................................................................................... 49

    5.4 Bi tp lm thm ................................................................................................................ 49

    BI 6 : CU TRC VNG LP .......................................................................... 51

    6.1 Mc tiu .............................................................................................................................. 51

    6.2 Ni dung .............................................................................................................................. 51 6.2.1 Lnh for ........................................................................................................................... 51 6.2.2 Lnh break ...................................................................................................................... 56 6.2.3 Lnh continue ................................................................................................................. 56 6.2.4 Lnh while....................................................................................................................... 56 6.2.5 Lnh dowhile .............................................................................................................. 58 6.2.6 Vng lp lng nhau ........................................................................................................ 60 6.2.7 So snh s khc nhau ca cc vng lp ....................................................................... 61

    6.3 Bi tp ................................................................................................................................. 62

    BI 7 : HM ......................................................................................................... 65

    7.1 Mc tiu .............................................................................................................................. 65

    7.2 Ni dung .............................................................................................................................. 65 7.2.1 Cc v d v hm ............................................................................................................ 65 7.2.2 Tham s dng tham bin v tham tr ........................................................................... 68

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 3

    7.2.3 S dng bin ton cc ................................................................................................... 69 7.2.4 Dng dn hng #define ............................................................................................... 71

    7.3 Bi tp ................................................................................................................................. 71

    BI 8 : MNG V CHUI ................................................................................... 72

    8.1 Mc tiu .............................................................................................................................. 72

    8.2 Ni dung .............................................................................................................................. 72 8.2.1 Mng ................................................................................................................................ 72

    8.2.1.1 Cch khai bo mng ............................................................................................... 72 8.2.1.2 Tham chiu n tng phn t mng .................................................................... 72 8.2.1.3 Nhp d liu cho mng .......................................................................................... 73 8.2.1.4 c d liu t mng ............................................................................................... 73 8.2.1.5 S dng bin kiu khc .......................................................................................... 74 8.2.1.6 K thut Sentinal .................................................................................................... 74 8.2.1.7 Khi to mng ......................................................................................................... 75 8.2.1.8 Khi to mng khng bao hm kch thc .......................................................... 76 8.2.1.9 Mng nhiu chiu ................................................................................................... 76 8.2.1.10 Tham chiu n tng phn t mng 2 chiu ....................................................... 76 8.2.1.11 Nhp d liu cho mng 2 chiu ............................................................................. 77 8.2.1.12 c d liu t mng 2 chiu .................................................................................. 77 8.2.1.13 S dng bin kiu khc trong mng 2 chiu ........................................................ 78 8.2.1.14 Khi to mng 2 chiu ........................................................................................... 78 8.2.1.15 Dng mng 1 chiu lm tham s cho hm ........................................................... 79 8.2.1.16 Dng mng 2 chiu lm tham s cho hm ........................................................... 82

    8.2.2 Chui ............................................................................................................................... 84 8.2.2.1 Cch khai bo chui ............................................................................................... 84 8.2.2.2 Hm nhp (gets), xut (puts) chui ....................................................................... 85 8.2.2.3 Khi to chui ......................................................................................................... 86 8.2.2.4 Mng chui .............................................................................................................. 86

    8.3 Bi tp ................................................................................................................................. 87

    BI 9 : CON TR ................................................................................................ 90

    9.1 Mc tiu .............................................................................................................................. 90

    9.2 Ni dung .............................................................................................................................. 90 9.2.1 Con tr? .......................................................................................................................... 90 9.2.2 Khi bo bin con tr .................................................................................................... 90 9.2.3 Truyn a ch sang hm ............................................................................................... 91 9.2.4 Con tr v mng ............................................................................................................. 92 9.2.5 Con tr tr n mng trong hm ................................................................................. 92 9.2.6 Con tr v chui ............................................................................................................. 93 9.2.7 Khi to mng con tr tr n chui ........................................................................... 94 9.2.8 X l con tr tr n chui ........................................................................................... 95 9.2.9 Con tr tr n con tr .................................................................................................. 97

    9.3 Bi tp ................................................................................................................................. 98

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 4

    BI 10 : CC KIU D LIU T TO ................................................................. 99

    10.1 Mc tiu .............................................................................................................................. 99

    10.2 Ni dung .............................................................................................................................. 99 10.2.1 Structure ......................................................................................................................... 99

    10.2.1.1 Khai bo kiu structure ......................................................................................... 99 10.2.1.2 Cch khai bo bin c kiu structure ................................................................... 99 10.2.1.3 Tham chiu cc phn t trong structure .............................................................. 99 10.2.1.4 Khi to structure ................................................................................................ 101 10.2.1.5 Structure lng nhau .............................................................................................. 102 10.2.1.6 Truyn structure sang hm ................................................................................. 103

    10.2.2 Enum ............................................................................................................................. 105 10.2.2.1 nh ngha kiu enum .......................................................................................... 105 10.2.2.2 Cch khai bo bin c kiu enum ....................................................................... 106 10.2.2.3 S dng enum trong chng trnh ..................................................................... 106

    10.3 Bi tp ............................................................................................................................... 108

    BI 11 : TP TIN ................................................................................................. 109

    11.1 Mc tiu ............................................................................................................................ 109

    11.2 Ni dung ............................................................................................................................ 109 11.2.1 V d ghi, c s nguyn .............................................................................................. 109 11.2.2 Ghi, c mng .............................................................................................................. 110 11.2.3 Ghi, c structure ........................................................................................................ 111 11.2.4 Cc mode khc m tp tin ..................................................................................... 112 11.2.5 Mt s hm thao tc trn file khc ............................................................................. 112

    11.3 Bi tp ............................................................................................................................... 113

    BI 12 : QUY ................................................................................................. 114

    12.1 Mc tiu ............................................................................................................................ 114

    12.2 Ni dung ............................................................................................................................ 114

    12.3 Bi tp ............................................................................................................................... 117

    BI 13 : TRNH SON THO CA BORLAND C .............................................. 118

    13.1 M tp tin son tho mi ................................................................................................ 118

    13.2 Lu tp tin ........................................................................................................................ 118 13.2.1 Nu l tp tin son tho mi cha lu ....................................................................... 118 13.2.2 Nu l tp tin lu t nht 1 ln hoc c m bng lnh Open: ........................ 118

    13.3 M tp tin ......................................................................................................................... 119

    13.4 Cc phm, t hp phm thng dng ............................................................................. 119 13.4.1 Cc phm di chuyn con tr ........................................................................................ 119

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 5

    13.4.2 Cc phm thao tc trn khi ........................................................................................ 120 13.4.3 Cc thao tc xa ........................................................................................................... 120 13.4.4 Cc thao tc copy, di chuyn ....................................................................................... 120 13.4.5 Cc thao tc khc ......................................................................................................... 120

    13.5 Ghi mt khi ra a ......................................................................................................... 121

    13.6 Chn ni dung file t a vo v tr con tr ................................................................... 121

    13.7 Tm kim vn bn trong ni dung son tho ................................................................ 121

    13.8 Tm v thay th vn bn trong ni dung son tho ...................................................... 121

    13.9 Sa li c php ................................................................................................................. 122

    13.10 Chy tng bc ............................................................................................................... 122

    13.11 S dng Help (Gip ) .................................................................................................. 122

    BI 14 : CC H M ........................................................................................ 124

    14.1 Khi nim ......................................................................................................................... 124

    14.2 Quy tc .............................................................................................................................. 124

    14.3 Chuyn i gia cc h ................................................................................................... 125 14.3.1 Chuyn i gia h 2 v h 10 .................................................................................... 125 14.3.2 Chuyn i gia h 8 v h 10 .................................................................................... 126 14.3.3 Chuyn i gia h 16 v h 10 .................................................................................. 126 14.3.4 Chuyn i gia h 2 v h 16 .................................................................................... 127

    BI 15 : BIU THC V PHP TON ............................................................... 128

    15.1 Biu thc ........................................................................................................................... 128

    15.2 Php ton .......................................................................................................................... 128 15.2.1 Php ton s hc ........................................................................................................... 128 15.2.2 Php quan h ................................................................................................................ 128 15.2.3 Php ton lun l .......................................................................................................... 129 15.2.4 Php ton trn bit (bitwise) ......................................................................................... 129 15.2.5 Cc php ton khc ...................................................................................................... 130 15.2.6 u tin ca cc php ton ...................................................................................... 130

    15.3 Bi tp ............................................................................................................................... 130

    BI 16 : MT S HM CHUN THNG DNG ............................................. 132

    16.1 Cc hm chuyn i d liu ........................................................................................... 132 16.1.1 atof ................................................................................................................................. 132 16.1.2 atoi ................................................................................................................................. 132 16.1.3 itoa ................................................................................................................................. 132 16.1.4 tolower ........................................................................................................................... 132

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 6

    16.1.5 toupper .......................................................................................................................... 132

    16.2 Cc hm x l chui k t .............................................................................................. 133 16.2.1 strcat .............................................................................................................................. 133 16.2.2 strcpy ............................................................................................................................. 133 16.2.3 strcmp ............................................................................................................................ 133 16.2.4 strcmpi .......................................................................................................................... 133 16.2.5 strlwr ............................................................................................................................. 133 16.2.6 strupr ............................................................................................................................. 133 16.2.7 strlen .............................................................................................................................. 134

    16.3 Cc hm ton hc ............................................................................................................ 134 16.3.1 abs .................................................................................................................................. 134 16.3.2 labs ................................................................................................................................. 134 16.3.3 rand ............................................................................................................................... 134 16.3.4 random .......................................................................................................................... 134 16.3.5 pow ................................................................................................................................ 134 16.3.6 sqrt ................................................................................................................................. 134

    16.4 Cc hm x l file ............................................................................................................ 135 16.4.1 rewind ............................................................................................................................ 135 16.4.2 ftell ................................................................................................................................. 135 16.4.3 fseek ............................................................................................................................... 135

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 7

    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 thc hin mt s

    hu hn cc bc th t c mc tiu. Theo R.A.Kowalski th bn cht ca thut gii:

    Thut gii = Logic + iu khin

    * Logic: y l phn kh quan trng, n tr li cu hi "Thut gii lm g, gii quyt 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 quyt vn .

    1.2.1.2 Chng trnh (Program) L mt tp hp cc m t, cc pht biu, nm trong mt h thng 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 dch chng trnh chy v th chng trnh

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 8

    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) Quy trnh x l c bn ca my tnh gm I-P-O. 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 phng trnh bc nht

    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

    Input OutputProcess

    # 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 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.

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 9

    1.2.3.2 S dng lu (Flowchart) (Flowchart) d hn v quy trnh x l, cc nh lp trnh a ra dng lu minh ha tng

    bc qu trnh x l mt vn (bi ton). d hn v quy trnh x l, cc nh lp trnh a ra dng lu minh ha tng

    bc qu trnh x l mt vn (bi ton).

    Hnh dng (symbol) Hnh dng (symbol) Hnh ng (Activity) 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 V d 7: M t v d 3 V d 8: M t v d 4

    Bt u

    C ph, nc si

    Ha c ph vo nc si

    B ng vo

    Khuy u hn hp

    C ph sn sng

    Bt u

    Kt thc

    LCB, ngy cng

    Nhn LCB vi ngy cng

    Kt qu lng

    Gi tr a, b

    Chia b cho a

    Nghim x

    Kt thc

    Bt u

    Kt thc

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 10

    HanoiAptech Computer Education Center Thanghv

    V d 9: Cng 2 s V d 10: so snh 2 s

    V d 11: Kim tra tnh hp l ca im

    V d 12: Xp lon vo thng

    V d 13: Kim tra loi s

    V d 14: Kim tra tnh hp l ca im

    Bt u

    Kt thc

    a, b

    c = a + b

    c

    Bt u

    Kt thc

    S a, S b

    S a bng S b

    S a c bng S b khng?

    S a khng bng S b

    C

    Khng

    Bt u

    Kt thc

    im

    im hp l

    im >=0 v im 0 ? C

    S < 0 ? S m C

    S khng

    Khng

    Khng

    Bt u

    Kt thc

    Thng = 24 Lon? Cha

    Thng = 0 Lon

    1 Lon

    Thm 1 Lon vo thng

    Bng

    Bt u

    Kt thc

    Sai

    im

    ng

    im >=0 v im

  • Gio trnh Lp trnh C cn bn Trang 11

    # 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.

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 12

    HanoiAptech Computer Education Center Thanghv

    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 cha tp tin BC.EXE). Nu ng dn cha c ci t ta tm xem th mc BORLANDC nm a no. Sau ta g lnh sau:

    :\BORLANDC\BIN\BC (Enter) Nu bn mun va khi ng BC va son tho chng trnh vi mt tp tin c tn do

    chng ta t, th g lnh: BC [ng dn], 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, chn Run, bn g vo hp Open 1 trong cc dng lnh nh nhp ti DOS. Hoc bn vo Window Explorer, chn a cha th mc BORLANDC, vo th mc BORLANDC, vo th mc BIN, khi 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 tp tin VIDU1.CPP cha trong th mc

    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 Hp ng Tn tp tin S ca ca s Hp ni rng ca s

    y l vng son tho chng trnh

    Tp tin cha lu Thanh trt dc Ta hng:ct Thanh trt ngang Thanh chc nng F1 Help F2 Save F3 Open Alt - F9 Compile F9 Make F10 Menu

    [] []1

    1:1 *

  • Gio trnh Lp trnh C cn bn Trang 13

    2.2.1.2 Thot 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 V d 1 Dng File Edit Search Run Compile Debug Project Option Window Help

    1 2 3 4 5 6 7

    /* Chuong trinh in ra cau bai hoc C dau tien */ #include 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 . 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 bt 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 lnh, kt thc mt cu lnh trong C phi l du chm phy (;).

    / Ch : 9 Cc t include, stdio.h, void, main, printf phi vit bng ch thng. 9 Chui trong nhy kp cn in ra "Bn c th vit ch HOA, thng ty, ". 9 Kt thc cu lnh phi c du chm phy. 9 Kt thc tn hm khng c du chm phy hoc bt c du g. 9 Ghi ch phi t trong cp /* . */. 9 Thn hm phi c bao bi cp { }. 9 Cc cu lnh trong thn hm phi vit tht vo.

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 14

    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 chp rt nhanh v khng thy kt 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 lnh printf. Sau y l mt s k hiu khc.

    + Cc k t iu khin: \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.

    + 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

    1 2 3 4 5 6 7 8 9

    /* Chuong trinh in ra cau bai hoc C dau tien */ #include #include 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

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 15

    ) Kt qu in ra mn hnh dau tien. Bai hoc C _

    Dng th 3: cha pht biu tin x l #include . 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 li mn hnh kt 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 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

    /* Chuong trinh nhap va in ra man hinh gia tri bien*/ #include #include 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. Mi bin phi thuc mt kiu d liu. Trong trng hp ny ta s dng bin i kiu s nguyn (integer) vit tt l int. 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 & phi hp vi tn bin 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 bit 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. HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 16

    2.2.2.3 V d 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

    /* Chuong trinh nhap vao 2 so a, b in ra tong*/ #include #include 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 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 #include #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

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 17

    ) 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 chm 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.

    HanoiAptech Computer Education Center Thanghv

  • Gio trnh Lp trnh C cn bn Trang 18

    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 nh dng khai bo d liu, vit cu lnh Trong C c cc t kha sau: asm const else for interrupt return sizeof void break continue enum goto long short switch

    HanoiAptech Computer Education Center Thanghv

    case cdecl char

    default do double

    extern far float

    huge if int

    near pascal register

    static struct signed

    typedef union unsigned

    volatile while

    ) Cc t kha phi vit bng ch thng 3.2.2 Tn

    Khi nim tn rt quan trng trong qu trnh lp trnh, n khng nhng th hin r ngha trong chng trnh m cn dng xc nh cc i lng khc nhau khi thc hin chng trnh. Tn thng c t cho hng, bin, mng, con tr, nhn Chiu di ti 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)

    3.2.3 Kiu d liu C 4 kiu d liu c bn trong C l: char, int, float, double.

  • Gio trnh Lp trnh C cn bn Trang 19

    TT Kiu d liu (Type) Kch thc (Length)

    Min gi tr (Range)

    1 2 3 4 5 6 7 8 9

    10 11

    unsigned char char enum unsigned int short int int unsigned long long float double long double

    1 byte 1 byte 2 bytes 2 bytes 2 bytes 2 bytes 4 bytes 4 bytes 4 bytes 8 bytes 10 bytes

    0 n 255 128 n 127 32,768 n 32,767 0 n 65,535 32,768 n 32,767 32,768 n 32,767 0 n 4,294,967,295 2,147,483,648 n 2,147,483,647 3.4 * 1038 n 3.4 * 1038 1.7 * 10308 n 1.7 * 10308 3.4 * 104932 n 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 cha v ngi khc c vo d hiu. 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 Tn bin Cch t tn bin nh mc 2.

    3.2.5.2 Khai bo bin 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 kiu d liu, mi tn bin cch nhau du phy (,), cui cng l du chm phy (;). ) Khi khai bo bin nn t tn bin theo quy tc Hungarian Notation 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 Hanoi Aptech Computer Education Center

  • Gio trnh Lp trnh C cn bn Trang 20

    Cc bin khai bo trn theo quy tc Hungarian Notation. Ngha l bin ituoi l kiu 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 Va khai bo va khi gn

    C th kt hp vic khai bo vi ton t gn bin nhn ngay gi tr cng lc vi khai 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. Nu khai bo v s dng 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 bin t bn ngoi tt c cc hm, cu trc... Cc bin ny c nh hng n ton b chng trnh. Chu trnh sng ca n l bt u chy chng trnh n lc kt thc chng trnh. Khai bo bin trong (bin cc b): V tr bin t bn trong hm, cu trc. Ch nh hng ni b bn trong hm, cu trc . Chu trnh sng ca n bt u t lc hm, cu trc c gi thc hin n lc thc hin xong.

    Hanoi Aptech Computer Education Center

  • Gio trnh Lp trnh C cn bn Trang 21

    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 - printf: tn hm, phi vit bng ch thng. - i mc 1,: l cc mc d kin cn in ra mn hnh. Cc i mc 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 22

    ) Kt qu in ra mn hnh Bai hoc C dau tien. _

    V d 2: printf("Ma dinh dang

    Hanoi Aptech Computer Education Center

    \\\" 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

  • Gio trnh Lp trnh C cn bn Trang 23

    ) 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 1234 62 165 2 965 _

    S canh v bn tri b rng trng.

    Hanoi Aptech Computer Education Center

  • Gio trnh Lp trnh C cn bn Trang 24

    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 _

    S canh v bn phi b rng trng.

    7 k t

    ) 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 62.3 165.0 2.0 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 62.34 165.00 2.00 965.00 _

    S canh v bn tri b rng trng.

    4.2.2 Hm scanf nh dng khi nhp liu.

    C php scanf ("chui nh dng"[, i mc 1, i mc 2,]);

    ) Khi s dng hm phi khai bo tin x l #include - 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 du phy, mi i mc s tip

    nhn gi tr nhp vo.

    Hanoi Aptech Computer Education Center

    V d 11: scanf("%d", &i);

    i mc 1 m nh dng

    ) Nhp vo 12abc, bin i ch nhn gi tr 12. Nhp 3.4 ch nhn gi tr 3.

  • Gio trnh Lp trnh C cn bn Trang 25

    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.

    5. Vit chng trnh nhp vo mt s a bt k v in ra gi tr bnh phng (a2), lp phng (a3) ca a v gi tr a4.

    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 Aptech Computer Education Center

  • Gio trnh Lp trnh C cn bn Trang 26

    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 khi lnh phi 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

    ) Qun dng cp du { } bao bc khi s dng khi lnh, hoc m du { v qun ng du }

    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) ) t kha if phi vit bng ch thng khi lnh; ) kt qu ca biu thc lun l phi l

    ng ( 0) hoc sai (= 0) Hanoi Aptech Computer Education Center

  • Gio trnh Lp trnh C cn bn Trang 27

    Lu

    bthc lun l

    khi lnh

    ng

    Sai

    Vo

    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; ... }

    ) Khng t du chm phy sau cu lnh if. 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 vi 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 Ngn ng C - 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

    - 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);

    ) Biu thc lun l phi t trong cp du ( ). if ib > ia bo li Hanoi Aptech Computer Education Center

  • Gio trnh Lp trnh C cn bn Trang 28

    c. M t bng lu

    b > a ng

    Bt u

    Nhp a, b

    Sai

    So lon nhat = max

    Hanoi Aptech Computer Education Center

    Kt thc

    max = a

    max = b

    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 #include

    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. a. Phc ha li gii

  • Gio trnh Lp trnh C cn bn Trang 29

    Nu gi tr a ln hn gi tr b, bn phi hon chuyn 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 Ngn ng C - 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

    - 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);

    c. M t bng lu Bt u

    Hanoi Aptech Computer Education Center

    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 #include void main(void) { int ia, ib, itam; printf("Nhap vao so a: ");

    a > b

    Nhp a,

    ng

    b

    Sai

    In a, b

    tam = a a = b b = tam

    Kt thc

  • Gio trnh Lp trnh C cn bn Trang 30

    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 _

    Cho chy li chng trnh v th li vi: a = 1, b = 8 a = 2, b = 2 Quan st v nhn kt qu

    5.2.2.2 Dng 2 (if ) Quyt nh s thc hin 1 trong 2 khi lnh cho trc.

    C php lnh if (biu thc lun l) ) t kha if, else phi vit bng ch thng khi lnh 1; ) kt qu ca biu thc lun l phi l else ng ( 0) hoc sai (= 0) khi lnh 2;

    Lu

    Hanoi Aptech Computer Education Center

    ) 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 { }

    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 bng b", ngc li in ra thng bo "a khc b". b. M t quy trnh x l (gii thut)

    Ngn ng t nhin Ngn ng C

    bthc lun l

    khi lnh 1

    ng

    Sai

    Vo

    khi lnh 2

    Ra

  • Gio trnh Lp trnh C cn bn Trang 31

    - 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"

    - 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");

    c. M t bng lu Bt u

    Hanoi Aptech Computer Education Center

    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 #include 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 a khac b.

    Cho chy li chng trnh v th li vi: a = 6, b = 6 a = 1, b = 5

    a= b ng

    Nhp a, b

    Sai

    a bang b a khac b

    Kt thc

  • Gio trnh Lp trnh C cn bn Trang 32

    _ Quan st v nhn xt kt qu

    ) Sau else khng c du chm phy. V d: else; printf('a khac b\n"); trnh bin dch khng bo li, lnh printf("a khac b\n"); khng thuc else

    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, ngc li 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 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, in cu thng bo "K t bn va nhp l: c".

    b. M t quy trnh x l (gii thut)

    Ngn ng t nhin Ngn ng C - Khai bo bin c kiu k t - Nhp vo k t c

    - Nu c >= a v c = 'a' && c = 'a' v c

  • Gio trnh Lp trnh C cn bn Trang 33

    /* Chuong trinh nhap vao ky tu c, neu c la chu thuong in ra chu IN HOA */

    #include #include

    void main(void) { char c; printf("Nhap vao 1 ki tu: "); scanf("%c", &c); if (c >= 'a' && c = 97 && c

  • Gio trnh Lp trnh C cn bn Trang 34

    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 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 Ngn ng C - 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"

    - 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");

    c. M t bng lu Bt u

    Hanoi Aptech Computer Education Center

    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 #include

    void main(void)

    a > b

    Nhp a, b

    Sai

    "a lon hon b"

    a < b Sai

    ngng

    Kt thc

    "a nho hon b" "a bang b"

  • Gio trnh Lp trnh C cn bn Trang 35

    Hanoi Aptech Computer Education Center

    { 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= a v c = A v c = 'a' && c = 'A' && c

  • Gio trnh Lp trnh C cn bn Trang 36

    Ngc li Nu c >= 0 v c = '0' && c = 'A' && c = 'a' && c = 97 && c = 'a' v c = 'A' v c = '0' v c

  • Gio trnh Lp trnh C cn bn Trang 37

    Hanoi Aptech Computer Education Center

    printf("Ki tu hoa la: %c.\n", c); }; else if(c >= 'A' && c = 65 && c = '0' && c = 48 && c 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 hiu i km vi if (a > b), v n nm gn vi if (a > b) nht v if (a > b) cha c else. d nhn v d hiu hn Bn vit li nh sau: if (n > 0) if (a > b) x = a; else x = b; Cn nu Bn mun lnh else l ca if (n > 0) th Bn phi t if (a > b) x = a trong mt khi lnh. Bn vit li nh sau:

  • Gio trnh Lp trnh C cn bn Trang 38

    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 = 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"

    - float fdiem; - printf("Nhap vao diem so: "); scanf("%f", &fdiem); - if (fdiem >= 0 && 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");

    c. M t bng lu

    Hanoi Aptech Computer Education Center

    Bt u

    Nhp diem

    diem >= 0 v diem =9

    ng diem >=8

    Sai

    diem >=7

    Sai Sai

    diem >=6

    Sai

    Sai ng

    ng

    ng

    Sai

  • Gio trnh Lp trnh C cn bn Trang 39

    Hanoi Aptech Computer Education Center

    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 #include void main(void) { float fdiem; printf("Nhap vao diem so: "); scanf("%f", &fdiem); if (fdiem >=0 && 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

  • Gio trnh Lp trnh C cn bn Trang 40

    Trong chng trnh trn cu trc else if c lng vo trong cu trc dng 2, trong cu trc else if ta khng cn t trong khi v tt c cc if trong cu trc ny u c else, nn else printf("Nhap diem khong hop le.\n") ng nhin l thuc v if (fdiem >= 0 && fdiem =0 && fdiem

  • Gio trnh Lp trnh C cn bn Trang 41

    Hanoi Aptech Computer Education Center

    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 #include 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 Nhap vao so c: 3 5 lon nhat. _

    Cho chy li chng trnh v th li vi: a = 5, b = 4, c = 2 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 do hn v linh ng hn nhiu

    so vi s dng if. Tuy nhin, n cng c mt hn ch l kt qu ca biu thc phi l gi tr hng nguyn (c gi tr c th). Mt bi ton s dng lnh 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 switchcase (switch thiu) Chn thc hin 1 trong n lnh cho trc.

  • Gio trnh Lp trnh C cn bn Trang 42

    C php lnh switch (biu thc) ) t kha switch, case, break { phi vit bng ch thng case gi tr 1 : lnh 1; ) biu thc phi l c kt qu l break; gi tr hng nguyn (char, int, long,) case gi tr 2 : lnh 2; ) Lnh 1, 2n c th gm nhiu lnh, nhng break; khng cn t trong cp du { } case gi tr n : lnh n; [break;] }

    Lu

    Hanoi Aptech Computer Education Center

    ) 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 + 1Ngc li thot khi cu trc switch.

    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 #include

    void main(void) { int i; printf("Nhap vao so 1, 2 hoc 3: ");

    Vo

    Biu thc

    Ra

    = gi tr 1 ?ng

    lnh 1

    break ?

    Khng

    = gi tr 2 ?ng

    lnh 2

    break ?

    Khng

    = gi tr n ?ng

    lnh n

    . . .

    C

    C

    break ? C

    Khng

  • Gio trnh Lp trnh C cn bn Trang 43

    Hanoi Aptech Computer Education Center

    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. V d: switch(i); trnh bin dch khng bo li nhng cc lnh trong switch khng c thc hin.

    V d 13: Vit chng trnh nhp vo thng v in ra qu. (thng 1 -> qu 1, thng 10 -> qu 4) a. Phc ha li gii

    Nhp vo gi tr thng, kim tra xem thng c hp l (trong khong 1 n 12). Nu 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 /* Chuong trinh nhap vao thang. In ra quy tuong ung */

    #include #include

    void main(void) { int ithang; printf("Nhap vao thang: "); scanf("%d", &ithang); if (ithang > 0 && ithang

  • Gio trnh Lp trnh C cn bn Trang 44

    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 switchcase c lng vo trong cu trc if dng 2.

    5.2.3.2 Cu trc switchcasedefault (switch ) Chn thc hin 1 trong n + 1 lnh cho trc.

    C php lnh switch (biu thc) ) t kha switch, case, break, default { phi vit bng ch thng case gi tr 1 : lnh 1; ) biu thc phi l c kt qu l break; gi tr nguyn (char, int, long,) case gi tr 2 : lnh 2; ) Lnh 1, 2n c th gm nhiu lnh, nhng break; khng cn t trong cp du { } case gi tr n : lnh n; break; default : lnh; [break;] }

    Lu

    ) 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 + 1Ngc li thot khi cu trc switch. Nu gi tr biu thc khng trng vi bt k gi tr i no th lnh tng ng vi t kha default s c thc hin.

    Vo

    Biu thc

    Hanoi Aptech Computer Education Center

    = gi tr 1 ? ng

    lnh 1

    break ?

    Khng

    = gi tr 2 ? ng

    lnh 2

    break ?

    Khng

    . . .

    C

    C

  • Gio trnh Lp trnh C cn bn Trang 45

    Hanoi Aptech Computer Education Center

    V d 14: Vit li chng trnh V d 12 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 #include 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

  • Gio trnh Lp trnh C cn bn Trang 46

    Hanoi Aptech Computer Education Center

    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 #include void main(void) { int ithang; printf("Nhap vao thang: "); scanf("%d", &ithang); 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; 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

  • Gio trnh Lp trnh C cn bn Trang 47

    Hanoi Aptech Computer Education Center

    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 #include 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: "); 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

    Cho chy li chng trnh v th li vi: mc chn chc nng khc

  • Gio trnh Lp trnh C cn bn Trang 48

    Hanoi Aptech Computer Education Center

    -------------------------- 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 _

    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.

    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. 3. Vit li chng trnh v d 11, s dng cu trc if dng 2. 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

  • Gio trnh Lp trnh C cn bn Trang 49

    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

    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. 13. Vit chng trnh nhp vo im 3 mn thi: Ton, L, Ha ca hc sinh. Nu 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".

    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 din tch ca tam gic theo cng thc sau:

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

    Hanoi Aptech Computer Education Center

  • Gio trnh Lp trnh C cn bn Trang 50

    Hanoi Aptech Computer Education Center

    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

  • Gio trnh Lp trnh C cn bn Trang 51

    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, dowhile. - ngha v cch s dng lnh break, continue. - Mt s bi ton s dng lnh for, while, dowhile thng qua cc v d. - So snh, nh gi mt s bi ton s dng lnh for, while hoc dowhile. - 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

    Hanoi Aptech Computer Education Center

    ) 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 (;)

    iu kin

    Vo

    khi lnh

    ng

    Sai

    Ra

  • Gio trnh Lp trnh C cn bn Trang 52

    Hanoi Aptech Computer Education Center

    + 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 bi du phy. Khi cc biu thc con c xc nh t tri sang phi. Tnh ng sai ca dy biu 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 #include #define MSG "Vi du su dung vong lap for.\n" void main(void) { int i; for(i = 1; i

  • Gio trnh Lp trnh C cn bn Trang 53

    Hanoi Aptech Computer Education Center

    10 11 12 13 14 15 16 17 18

    for(i = 1; i

  • Gio trnh Lp trnh C cn bn Trang 54

    Hanoi Aptech Computer Education Center

    ) Bn c th vit gp cc lnh trong thn for vo trong lnh for. Tuy nhin, khi lp 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 = 1; i--) - Thay i bin iu khin t 7 n 77, mi ln tng 7: for(i = 7; 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

    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 #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 2 3 4 5 6 7 8

    /* Doc vao 1 loat ktu tren ban phim, dem so ktu nhap vao. Ket thuc khi gap dau cham */ #include #include #define DAU_CHAM '.' void main(void)

  • Gio trnh Lp trnh C cn bn Trang 55

    Hanoi Aptech Computer Education Center

    9 10 11 12 13 14 15 16

    { 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 nhp vo. Kt thc khi gp 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 #include #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 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 gp s 0 th dng. In ra tng cc s

    nguyn dng. Dng File Edit Search Run Compile Debug Project Option Window Help

  • Gio trnh Lp trnh C cn bn Trang 56