You are on page 1of 135

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 Output
Process
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: ax
2
+ 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 <=10 ?
im khng hp l
C
Khng
Bt u
Kt thc
S
S dng S > 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 <=10 ?
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: ax
2
+ 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:
< a>:\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]<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, 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 <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 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 :

Cc t include, stdio.h, void, main, printf phi vit bng ch thng.
Chui trong nhy kp cn in ra "Bn c th vit ch HOA, thng ty, ".
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.
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 <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
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 <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 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 <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. 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 <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
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
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 * 10
38
n 3.4 * 10
38

1.7 * 10
308
n 1.7 * 10
308

3.4 * 10
4932
n 1.1 * 10
4932

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 <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 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 <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 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 = 4R
2
v V = (4/3)R
3
.
5. Vit chng trnh nhp vo mt s a bt k v in ra gi tr bnh phng (a
2
), lp
phng (a
3
) ca a v gi tr a
4
.
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 <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.
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 <stdio.h>
#include <conio.h>

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 <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
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 <= z th
c = c 32
in c ra mn hnh


Ngc li
in ra thng bo " K t bn va nhp l: 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);
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
c = c 32
c >= 'a' v c <= 'z'
ng
Nhp c
Sai
Ki tu hoa = c Ki tu vua nhap = c
Kt thc
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 <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.
_
Cho chy li chng trnh v th li vi:
c = '!', c = '2', c = 'A', c = 'u'
Quan st v nhn xt kt qu
5.2.2.3 Cu trc else if
Quyt nh s thc hin 1 trong n khi lnh cho trc.
C php lnh
if (biu thc lun l 1) t kha if, else if, else phi vit bng ch thng
khi lnh 1; kt qu ca biu thc lun l 1, 2..n phi l
else if (biu thc lun l 2) ng ( 0) hoc sai (= 0)
khi lnh 2;

else if (biu thc lun l n-1) Nu khi lnh 1, 2n bao gm t 2 lnh
khi lnh n-1; tr ln th phi t trong du { }
else
khi lnh n;

Nu biu thc lun l 1 ng th
thc hin khi lnh 1 v thot khi cu trc if
Lu Ngc li Nu biu thc lun l 2 ng th
thc hin khi lnh 2 v thot khi cu trc if

Ngc li Nu biu thc lun l n-1 ng th
thc hin khi lnh n-1 v thot khi cu trc if
Ngc li th
thc hin khi lnh n.
Hanoi Aptech Computer Education Center



khi l h
BTLL 1
Sai
Vo
BTLL 2
Sai
BTLL n-1
Sai
khi l h 1
ng
ng
ng
khi l h 1 khi l h 2
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, 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 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 <stdio.h>
#include <conio.h>

void main(void)
a > b
Nhp a, b
Sai
"a lon hon b"
a < b
Sai
ng ng
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<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, nu 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 li khng phi 3 trng hp 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 Ngn ng C
- 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 Nu c >= A v c <= Z th
c = c + 32
in c ra mn hnh

- 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 if(c >= 'A' && c <= 'Z')
{
c = c + 32;
printf("Ki tu thuong la: %c.\n", c);
Gio trnh Lp trnh C cn bn Trang 36

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"
};
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.
V d: else if(c >= 'A' && c <= 'Z');
trnh bin dch khng bo li nhng khi lnh sau else if khng c thc hin.
c. M t bng lu

Bt u
Hanoi Aptech Computer Education Center






















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)
{
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
c >= 'a' v c <= 'z'
Nhp c
ng
c = c 32
Ki tu hoa = c
Kt thc
Ktu nhap la so c
c >= 'A' v c <= 'Z'
c >= '0' v c <= '9'
ng
c = c + 32
Ki tu thuong=c
Sai
ng
Ban da nhap ktu c
Sai
Sai
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 <= '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.
_
Cho chy li chng trnh v th li vi:
c = '!', c = '2', c = 'a', c = 'Z'
Quan st v nhn xt kt qu
5.2.2.4 Cu trc if lng
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 ifelse 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, Bn phi t chng trong nhng 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 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 <= im <= 10), bn tip tc cng vic xp loi, 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 Ngn ng C
- 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"
- 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");
c. M t bng lu

Hanoi Aptech Computer Education Center










Bt u
Nhp diem
diem >= 0
v diem <= 10
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 <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)
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
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 <=
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 thuc v cu trc else if ch khng thuc v if
(fdiem >=0 && fdiem <= 10). i vi trng hp bn cn phi t cu trc else if vo trong
{}, th khi dng else printf("Nhap diem khong hop le.\n) s thuc 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 nht, 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 Ngn ng C
- 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
c ln nht
- 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);
c. M t bng lu

Bt u


Nhp a, b, c

a > b
Sai
a ln nht
Hanoi Aptech Computer Education Center












Kt thc
ng
a > c
c ln nht
Sai
ng
b ln nht
ng
b > c
c ln nht
Sai
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 <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
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 <stdio.h>
#include <conio.h>
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 <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:
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 <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
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 <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 : 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 <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: ");
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 =
) c p * ) b p ( * ) a p ( * 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 <= 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.

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 <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++) /hoac for(i = 1; i<=3; i+=1)
printf("%s", MSG);
getch();
}
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 for.
Vi du su dung vong lap for.
Vi du su dung vong lap for.
_
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
khng c thc hin.
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
9
/* Chuong trinh nhap vao 3 so va tinh tong */

#include <stdio.h>
#include <conio.h>

void main(void)
{
int i, in, is;
is = 0;
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<=3; i++)
{
printf("Nhap vao so thu %d :", i);
scanf("%d", &in);
is = is + in;
}
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 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.
Trong vng lp for c s dng t 2 lnh tr ln, nh s dng cp ngoc { } 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
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
Tong: 9.
_
Bn thay cc dng t 11 n 16 bng cu lnh:
for(is=0, i=1; i<=n; is=is+i, i+=2);
Chy li chng trnh, quan st v nhn xt kt qu.
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 <= 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
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
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 <stdio.h>
#include <conio.h>

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

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
_
Chy li chng trnh vi s liu khc
Quan st v nhn xt kt qu.
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, dowhile,
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 li.
6.2.3 Lnh continue
c dng trong vng lp for, while, dowhile. 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
Gio trnh Lp trnh C cn bn Trang 57
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
Hanoi Aptech Computer Education Center


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 thc c quyt nh bi 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 lnh 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
9
10
11
12
13
14
/* 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)
{
int i = 0;
while (i++ < 3)
printf("%s", MSG);
getch();
}
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.
_
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 phm.
biu thc
Vo
khi lnh
ng
Sai
Ra
Gio trnh Lp trnh C cn bn Trang 58
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
/* 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)
Chy li chng trnh, quan st v nhn xt kt qu.
6.2.5 Lnh dowhile
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
Thc hin
Hanoi Aptech Computer Education Center

khi lnh
biu thc
khi lnh
ng
Gio trnh Lp trnh C cn bn Trang 59
Hanoi Aptech Computer Education Center

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 thc con. Nu l nhiu biu thc
con th cch nhau bi du phy (,) v tnh ng sai ca biu thc c quyt nh bi biu thc
con cui cng.
+ Trong thn dowhile (khi lnh) c th cha mt hoc nhiu cu trc iu khin khc.
+ Trong thn dowhile 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 dowhile 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
15
/* 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)
}
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
/* Chuong trinh in tuoi */

#include <stdio.h>

# define CHUC "Chuc ban vui ve (: >\n"

void main(void)
{
Gio trnh Lp trnh C cn bn Trang 60
Hanoi Aptech Computer Education Center

9
10
11
12
13
14
15
16
17
18
19
20
21
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
Nhap vao nam sinh: 1980
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)
Bn li chng trnh vi s liu khc.
Quan st, nh gi v nhn xt kt qu.
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
Gio trnh Lp trnh C cn bn Trang 61
Hanoi Aptech Computer Education Center

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
12
13
14
15
16
17
18
19
/* 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
while (ij++ <= 9) //in 1 hang 10 so i
printf("%d", i);
printf("\n"); //xuong dong khi in xong 1 hang
i++; //tang i len 1 cho vong lap ke tiep
}
getch();
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9
_
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.
Cc lnh lp for, while, dowhile c th lng vo chnh n, hoc lng vo ln
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, dowhile s dng khi khng bit r s ln lp.
Gio trnh Lp trnh C cn bn Trang 62
Hanoi Aptech Computer Education Center

- Khi gi vng lp while, dowhile, nu biu thc sai vng lp while s khng c
thc hin ln no nhng vng lp dowhile thc hin c 1 ln.
S ln thc hin t nht ca while l 0 v ca dowhile 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.
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
P
n
= a
n
x
n
+ a
n-1
x
n-1
+ + a
1
x
1
+ a
0
Hng dn a thc c th vit li
P
n
= ((a
n
x + a
n-1
)x + a
n-2
)x + + a
0

Nh vy trc tin tnh a
n
x + a
n-1,
ly kt qu nhn vi x, sau ly kt qu nhn vi
x cng thm a
n-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".
17. Vit chng trnh phn tch mt s nguyn N thnh tch ca cc tha s nguyn t.
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% .
Gio trnh Lp trnh C cn bn Trang 63
22. Vit chng trnh tm cc s nguyn gm 3 ch s sao cho tch ca 3 ch s bng
tng 3 ch s. V d: 1*2*3 = 1+2+3.
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 phn t th I l (N-k+1)/I. vit 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
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)
- 1 +
1 n
x
...
2
x
n
+
+
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 Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 64
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 65
Hanoi Aptech Computer Education Center


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
*****************
* Minh hoa ve ham *
*****************
_
Gio trnh Lp trnh C cn bn Trang 66
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




quay v chng trnh chnh
thc hin lnh k tip
void line()
{
int i;
for(i = 0; i < 19; i++)
printf("*");
printf("\n");
}


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
16
17
18
19
20
#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;
}

void main(void)
{
printf("2 mu 2 = %d.\n", power(2, 2));
printf("2 mu 3 = %d.\n", power(2, 3));
getch();
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 67
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 truyn gi tr vo hm

void main(void)
{
printf("2 mu 2 = %d.\n", power(2, 2));

printf("2 mu 3 = %d.\n", power(2, 3));
getch();
}

gi thc hin hm power




quay v chng trnh
chnh thc hin lnh k
tip
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
9
10
11
12
13
14
15
16
#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)
{
ig = ip / 60;
ip %= 60;
}

void main(void)
{
int igio, iphut;
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 68
17
18
19
20
21
22
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 kiu 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 truyn gi tr vo hm
iphut = 185
void main(void)
{
int igio, iphut;
printf("Nhap vao so phut : ");
scanf("%d", &iphut);

time(igio, iphut);



printf("%02d:%02d\n", igio, iphut);
getch();
}
igio = #

gi thc hin hm time



quay v chng trnh chnh
thc hin lnh k tip

void time(int &ig, int &ip)
{
ig = ip / 60;
ip %= 60;
}

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
iy += 1; //cong iy them 1
}
void thambien(int &ix, int &iy)
{
ix += 1; //cong ix them 1
iy += 1; //cong iy them 1
}
void main(void)
{
int ia = 5, ib = 5;
thamtri(ia, ib);
printf("a = %d, b = %d", ia, ib);
thambien(ia, ib);
printf("a = %d, b = %d", ai, ib);
}
Kt qu in ra:



a = 5, b = 5

a = 6, b = 6
i vi hm s dng lnh return bn ch c th tr v duy nht 1 gi tr m thi. c th
tr v nhiu gi tr sau khi gi hm bn s dng hm truyn nhiu tham s dng tham bin.
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 69
Hanoi Aptech Computer Education Center

7.2.3 S dng bin ton cc
V d 5:

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
#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)
printf("%d la so am.\n", inum);
else
printf("%d la so duong.\n", inum);
}
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.
_
Gio trnh Lp trnh C cn bn Trang 70
Hanoi Aptech Computer Education Center

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 mi khi gi v s dng
n. Xt tnh hung sau: Gi s trong hm negative ta khai bo bin inum c kiu 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.
Cn thn khi t tn bin, xc nh r phm vi ca bin khi s dng c th d dng
kim sot chng trnh.

V d 6:

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
#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 : ");
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
Gio trnh Lp trnh C cn bn Trang 71
Hanoi Aptech Computer Education Center

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
So lon nhat la: 6.10
_
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

7.3 Bi tp
1. Vit hm tnh n!
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.


Gio trnh Lp trnh C cn bn Trang 72

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 lu 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 nhp vo t bn phm, bn s khai bo 10
bin: a, b, c, d, e, f, g, h, i, j c kiu int v lp thao tc nhp 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 thc 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.

Mi phn t trong mng c kiu int

Hanoi Aptech Computer Education Center

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 chiu. Ch
s bt u t 0 n n-1 (vi n l kch thc mng). Trong v d trn, ta khai bo mng 10 phn
t th ch s bt u t 0 n 9.
0 1 2 3 4 5 6 7 8 9
ia

ia[2] ia[7]
Gio trnh Lp trnh C cn bn Trang 73
Hanoi Aptech Computer Education Center

ia[2], ia[7] l phn t th 3, 8 trong mng xem nh l mt bin kiu int.
8.2.1.3 Nhp d liu cho mng
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
20
21
22
23
24
25
/* 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
for(i = 0; i < in; i++)
isum += ia[i]; //cong don tung phan tu vao isum

printf("Trung binh cong: %.2f\n", (float) isum/in);
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 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.
Gio trnh Lp trnh C cn bn Trang 74
Hanoi Aptech Computer Education Center

_
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 chn 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 phn t mng m khng bit 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 trc s
lng phn t cn nhp l bao nhiu, v vy chm dt nhp liu khi tha mn bng cch nhp
vo s m hoc khng.
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
/* Nhap vao day so nguyen duong, in ra day chan, day le */

#include <stdio.h>
#include <conio.h>
#define MAX 50

void main(void)
{
float fa[MAX], fsum = 0;
int i = 0;
do
{
printf("Nhap vao phan tu thu %d: ", i + 1);
scanf("%f", &fa[i]); //Nhap gia tri cho phan tu thu i
} while (fa[i++] > 0); //con nhap lieu khi gia tri phan tu > 0

i--; //giam i di 1 lan cuoi cung tang 1 truoc khi thoat
//Tinh tong
for(int ij = 0; ij < i; ij++)
fsum += fa[ij]; //cong don tung phan tu vao isum

printf("Tong : %5.2f\n", fsum);
getch();
Gio trnh Lp trnh C cn bn Trang 75
Hanoi Aptech Computer Education Center

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 dowhile trc khi bc sang phn t th 51. Thm on lnh sau
vo trc dng 13:
if (i >= MAX) //kiem tra phan tu buoc sang 51
{
printf("Mang da day!\n"); //thong bao "Mang da day"
i++; //tang i len 1 do dong 17 giam i xuong 1
break; //thoat khoi vong lap dowhile
}

Sa dng 5 thnh #define MAX 4. Chy chng trnh v nhp cc s 1.2, 3.5, 6.5, 4.
Quan st kt qu.
8.2.1.7 Khi to mng
V d 6 : C 4 loi tin 1, 5, 10, 25 v 50 ng. Hy vit chng trnh nhp vo s tin
sau cho bit s s tin trn gm my loi tin, mi loi bao nhiu t.
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 ln trc, nu ht kh nng mi 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
/* 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;
Gio trnh Lp trnh C cn bn Trang 76
11
12
13
14
15
16
17
18
19
20
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.
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




Hanoi Aptech Computer Education Center


10 ct
5 hng
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 ct bt 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 5 6 7 8 9
Gio trnh Lp trnh C cn bn Trang 77
0
1
2
3
4

ia[3][2] 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.
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
{
for (ij = 0; ij < 10; ij++) //vng for c gi tr ij chy t 0 n 9 cho ct
printf("%3d ", ia[i][ij]);
printf("\n"); //xung dng in hng k tip
}
V d 10 : Vit chng trnh nhp vo 1 ma trn s nguyn n x n. In ra ma trn va nhp
vo v ma trn theo th t ngc li.
Dng File Edit Search Run Compile Debug Project Option Window Help
1
2
3
4
5
6
7
8
9
10
11
12
13
/* 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
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 78
Hanoi Aptech Computer Education Center

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
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++) //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("%3d ", ia[i][ij]);
printf("\n"); //xung dng in hng k tip
}
printf("\n"); //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
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, Bn 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
Gio trnh Lp trnh C cn bn Trang 79
Hanoi Aptech Computer Education Center

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
! !
! !
!!!!!
! !
! !
_
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
/* 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)
Gio trnh Lp trnh C cn bn Trang 80
Hanoi Aptech Computer Education Center

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
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
Nhap vao mot so: 45
Nhap vao mot so: 3
Nhap vao mot so: 0
So lon nhat la: 45
_
Chy li chng trnh v th li vi s liu khc.
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 kt qu tr v l gi tr max
c kiu nguyn, mt tham s l mng 1 chiu kiu int v mt tham s c kiu int. Vi chng
trnh sau khi sa hm max ch cn mt tham s truyn vo nhng cho kt qu nh nhau. Do sau
khi sa chng trnh mng a[MAX] c khai bo li l bin ton cc nn hm max khng cn
truyn tham s mng vo cng c th s dng c. Tuy vy, khi lp trnh bn nn vit nh
chng trnh ban u l truyn tham s mng vo (dng tng qut) hm max c th thc hin
c trn nhiu mng khc nhau. Cn vi chng trnh sa li bn 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.
Bn lu rng khi truyn mng sang hm, khng to bn sao mng mi. V vy
mng truyn sang hm c dng tham bin. Ngha l gi tr ca cc phn t trong mng s b
nh hng nu c s thay i trn chng.
Gio trnh Lp trnh C cn bn Trang 81
Hanoi Aptech Computer Education Center

V d 14 : Tm s ln nht ca 3 mng a, b, c
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
43
44
45
46
47
48
/* 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
max = ia[i]; //gan so nay cho max
return imax; //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
Gio trnh Lp trnh C cn bn Trang 82
Hanoi Aptech Computer Education Center

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 lng phn t nhp vo)
v 1 tham s l mng 1 chiu kiu int. Dng 41, 43, 45 ln lt gi hm input vi cc tham s l
mng a, b, c. Khi hm input thc hin vic nhp liu th cc phn t trong mng 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
/* 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
Gio trnh Lp trnh C cn bn Trang 83
Hanoi Aptech Computer Education Center

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
67
68
69
70
71
72
73
74
75
76
77
78
79
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])
{
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
Gio trnh Lp trnh C cn bn Trang 84
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
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.
Vit thm hm tm s nh nht.
Gii thch chng trnh
Trong chng trnh khai bo bin in ton cc do bin ny s dng trong sut qu trnh
chy chng trnh. Tham s truyn vo hm l mng hai chiu di 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:
0 1 2 3 4 5 6 7 8

Hanoi Aptech Computer Education Center




0 1 2
0



Ging nh mng 1 chiu khi truyn mng 2 chiu sang hm cng khng to bn
sao mi.
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
8.2.2.1 Cch khai bo chui
V d 17 : char cname[30];
1
2
2 * 3 + 1
1 * 3 + 2
Gio trnh Lp trnh C cn bn Trang 85
Hanoi Aptech Computer Education Center

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 bn th li chng trnh trn vi d
liu nhp vo l Mai Lan, nhng khi in ra bn ch nhn c Mai. V hm scanf nhn 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
13
14
/* 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);
getch();
}
Gio trnh Lp trnh C cn bn Trang 86
Hanoi Aptech Computer Education Center

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.
i vi hm puts k t kt thc chui null (\0) c thay th bng k t newline
(\n). Hm gets v puts ch c 1 i s v khng s dng dng thc trong nhp liu cng nh
xut ra mn hnh.
8.2.2.3 Khi to chui
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 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
_
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 c
chiu di l 9.
8.2.2.4 Mng chui
Dng File Edit Search Run Compile Debug Project Option Window Help
1
2
3
4
5
6
7
8
9
/* 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",
Gio trnh Lp trnh C cn bn Trang 87
Hanoi Aptech Computer Education Center

10
11
12
13
14
15
16
"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
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.
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 hp nhau c chu
k l 4). Hy vit chng trnh cho php g vo nm dng lch (v d 1997), xut 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?
Gio trnh Lp trnh C cn bn Trang 88
Hanoi Aptech Computer Education Center

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. Gi s s phng trong mt khch sn c cho bi hng s NUM_ROOM. Vit:
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:
- 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 chui 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





Gio trnh Lp trnh C cn bn Trang 89








Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 90
Hanoi Aptech Computer Education Center


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
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.
Gio trnh Lp trnh C cn bn Trang 91
Hanoi Aptech Computer Education Center

V d trn cho thy *px v *py l 2 bin con tr tr n a ch ca 2 bin ix 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
6 ix
Sau php gn px = &ix v py = &iy th gi
tr ca px = 1203 v py = 1207
1204
1205
1206
1207
7 iy
1208
1209
1210

a ch vng nh
2015

*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.
2016
2017
1203 px
2018
2019
1207 py
2020
2021
2022
9.2.3 Truyn a ch sang hm
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
16
17
18
19
20
/* 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
*py = 5; //gan 5 cho noi dung cua py
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Gio trnh Lp trnh C cn bn Trang 92
Hanoi Aptech Computer Education Center

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
20
21
22
23
24
25
/* 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();
}

void add(int *ptr, int inum, int ia)
{
int ij;
for (ij = 0; ij < inum; ij++)
*(ptr) = *(ptr++) + ia;
}
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.
Gio trnh Lp trnh C cn bn Trang 93
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
245
2
246
Hanoi Aptech Computer Education Center

ptr 245
247
5
248
249
6
250
251
9
252


245
12
246
ptr 247
247
5
248
249
6
250
251
9
252
9.2.6 Con tr v chui
V d 5:

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
/* Chuong trinh nhap va in ra ten*/

#include <stdio.h>
#include <conio.h>

void main(void)
{
char *cgreeting = "Chao ban";
char cname[30];
puts("Cho biet ten cua ban: ");
gets(cname);
puts(cgreeting);
puts(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 chng trnh v quan st kt qu.
iarray
iarray + 1
iarray + 2
iarray + 3
iarray
iarray + 1
iarray + 2
iarray + 3
ptr ++
Gio trnh Lp trnh C cn bn Trang 94
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 C 1502 C
1503 h 1503 h
Hanoi Aptech Computer Education Center

1502
1504 a 1504 a
1505 o 1505 o
1506 1506
1507 b 1507 b
1508 a 1508 a
1509 n 1509 n
char * cgreeting = "Chao ban" char cgreeting[] = "Chao ban"
(bin con tr) (hng 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
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]= {"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
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.
cgreeting
cgreeting
Gio trnh Lp trnh C cn bn Trang 95
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).
a ch 0 1 2 3 4 5 6 7 8 9
cthang[0] 1010 J a n u a r y \0
cthang[1] 1020 F e b r u a r y \0
cthang[2] 1030 M a r c h \0
cthang[3] 1040 A p r i l \0
cthang[4] 1050 M a y \0
cthang[5] 1060 J u n e \0
cthang[6] 1070 J u l y \0
cthang[7] 1080 A u g u s t \0
cthang[8] 1090 S e p t e m b e r \0
cthang[9] 1100 O c t o b e r \0
cthang[10] 1110 N o v e m b e r \0
cthang[11] 1120 D e c e m b e r \0
Mng cc chui char cthang[12][10]]

cthang[0] 1010 1010 J a n u a r y \0
cthang[1] 1018 1018 F e b r u a r y \0
cthang[2] 1027 1027 M a r c h \0
cthang[3] 1033 1033 A p r i l \0
cthang[4] 1039 1039 M a y \0
cthang[5] 1043 1043 J u n e \0
cthang[6] 1048 1048 J u l y \0
cthang[7] 1053 1053 A u g u s t \0
cthang[8] 1060 1060 S e p t e m b e r \0
cthang[9] 1070 1070 O c t o b e r \0
cthang[10] 1078 1078 N o v e m b e r \0
cthang[11] 1087 1087 D e c e m b e r \0
Mng cc con tr tr n cc chui char *cthang[12]
Khi to mng cc con tr tr n cc chui chim t b nh hn khi to mng
chui.
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
/* Nhap danh sach ten va sap xep theo thu tu tang dan*/

#include <stdio.h>
#include <conio.h>
#inlcude <string.h>

#define MAXNUM 5
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 96
Hanoi Aptech Computer Education Center

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
#define MAXLEN 10

void main(void)
{
char cname[MAXNUM][MAXLEN]; //mang chuoi
char *cptr[MAXNUM]; //mang con tro tro den chuoi
char *ctemp;
int i, ij, icount = 0;

//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]);
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.
Gio trnh Lp trnh C cn bn Trang 97
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] 1010 1010 M i n h \0
cptr[1] 1016 1016 L a n \0
cptr[2] 1022 1022 A n h \0
cptr[3] 1028 1028 T r a n g \0
cptr[4] 1034 1034 Q u a n \0
Mng cc con tr tr n chui trc khi sp xp
cptr[0] 1022 1010 M i n h \0
cptr[1] 1016 1016 L a n \0
cptr[2] 1010 1022 A n h \0
cptr[3] 1034 1028 T r a n g \0
cptr[4] 1028 1034 Q u a n \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
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
/* In ma trn*/

#include <stdio.h>
#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();
}
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 98
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Kt qu in ra mn hnh
20 22 24 26 28
21 23 25 27 29
30 32 34 36 38
31 33 35 37 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 Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 99
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 vi 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
Hanoi Aptech Computer Education Center

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 hoten[30]

nv.manv 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 100
Hanoi Aptech Computer Education Center

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
Nhap vao ma nhan vien thu 2: 35
Chy v th li chng trnh vi d liu khc.
Quan st kt qu.
Gio trnh Lp trnh C cn bn Trang 101
Hanoi Aptech Computer Education Center

Nhap vao ho ten: Le Nguyen Tuan Anh
123 Le Thuy Doan Trang
35 Le Nguyen Tuan Anh
_
Trong chng trnh trn dng t hp 2 dng 20 v 21 gm 2 lnh gets, atoi
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.
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.
Dng 22 i chui sang s nguyn, v d trn sau khi dng ny thc hin gi tr
ca in = 62.
Gio trnh Lp trnh C cn bn Trang 102
Hanoi Aptech Computer Education Center

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
42
43
/* 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);
}

Gio trnh Lp trnh C cn bn Trang 103
Hanoi Aptech Computer Education Center

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();
}
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: 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.
Trong chng trnh trn dng t hp 2 dng 20 v 21 gm 2 lnh gets, atoi
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
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
/* 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);

//Ham nhap danh sach
void input(nhanvien snv[], int in)
Gio trnh Lp trnh C cn bn Trang 104
Hanoi Aptech Computer Education Center

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
{
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
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 bin ton cc, v khi nh ngha
hm input v output c s dng kiu d liu struct nhanvin.
Gio trnh Lp trnh C cn bn Trang 105
Bn lu rng khi truyn struct sang hm, khng to bn sao mng mi. V vy
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();
}
}
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.
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 ln lt 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 it bng ch thng
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 106
Hanoi Aptech Computer Education Center

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* 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;
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;
Gio trnh Lp trnh C cn bn Trang 107
Hanoi Aptech Computer Education Center

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
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; break;
case THU_HAI : engay_ke = THU_BA; break;
case THU_BA : engay_ke = THU_TU; break;
case THU_TU : engay_ke = THU_NAM; break;
case THU_NAM : engay_ke = THU_SAU; break;
case THU_SAU : engay_ke = THU_BAY; break;
case THU_BAY : engay_ke = CHU_NHAT; break;
}
return (engay_ke);
}
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 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
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.
_
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);
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 bin ton cc, v khi nh ngha
hm input v output c s dng kiu d liu struct nhanvin.
Gio trnh Lp trnh C cn bn Trang 108
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 im, 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 Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 109
Hanoi Aptech Computer Education Center


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) //mo file
{
printf("Khong the mo file!.\n");
exit(0);
}
else
for(i = 1; i <= in; i++)
fwrite(&i, sizeof(int), 1, f); //ghi file
fclose(f); //dong file

//Doc file
f = fopen("int_data.dat", "rb");
while(fread(&i, sizeof(int), 1, f) == 1)
printf("%d ", i);
fclose(f);
getch();
}
Gio trnh Lp trnh C cn bn Trang 110
Hanoi Aptech Computer Education Center

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: 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 lnh ny thc hin xong tr v
dng con tr FILE v gn cho f, nu kt qu tr v = NULL th khng th m c tp tin, tp tin
m mode "w" nu trn a c sn tp tin ny th ni dung ca n s b ghi , nu 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 cu trc, kch thc ca 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 cu trc thc
s c c, nu gi tr tr v = 0 bo hiu kt thc file.
T kha FILE phi vit bng ch in hoa. S dng fopen, fwrite, fread, fclose 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* 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)
Gio trnh Lp trnh C cn bn Trang 111
Hanoi Aptech Computer Education Center

20
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); //ghi mang vao file
fclose(f);

f = fopen("array.dat", "rb");
fread(ib, sizeof(ib), 1, f); //doc mang tu file
for (i = 0; i < 10; i++)
printf("%d ", ib[i]);
fclose(f);
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: 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
_
Chy v th li chng trnh vi d liu khc.
Quan st kt qu.
11.2.3 Ghi, c structure
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
/* 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);

Gio trnh Lp trnh C cn bn Trang 112
Hanoi Aptech Computer Education Center

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();
}
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
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.
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.
11.2.5 Mt s hm thao tc trn file khc
Xem bi Cc hm chun
Gio trnh Lp trnh C cn bn Trang 113
Hanoi Aptech Computer Education Center

11.3 Bi tp
Thm chc nng ghi, c file cc bi tp ca bi Mng v chui, Cc d liu t to.
Gio trnh Lp trnh C cn bn Trang 114
Hanoi Aptech Computer Education Center


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 mt 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 nhng tp hp con ca bi ton.
V d 1: tnh n!
n! = 1*2*3**(n-2)*(n-1)*n vi n >= 1 v 0! = 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
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);
}
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
Gio trnh Lp trnh C cn bn Trang 115
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
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) return(in * giaithua(in 1))
5
4
3
2
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) return(in * giaithua(in 1))
1
2
3
4
5
1 * giaithua(0) = 1 * 1 = 1
2 * giaithua(1) = 2 * 1 = 2
3 * giaithua(2) = 3 * 2 = 6
4 * giaithua(3) = 4 * 6 = 24
5 * giaithua(4) = 5 * 24 = 120
Kt qu sau cng ta c 5! = 120.
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 116


Hanoi Aptech Computer Education Center











Th t gi quy nh tr theo th t ngc li
V d 2: Dy s Fibonacci
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
Nhap vao so n: 10
Fibonacci(10) = 55.
Th li chng trnh vi s liu khc.
5!
5 * 4!
4 * 3!
3 * 2!
2 * 1!
1 * 0!
5! =120
1 * 0! = 1
5 * 4! = 120
4 * 3! = 24
3 * 2! = 6
2 * 1! = 2
Gio trnh Lp trnh C cn bn Trang 117
_
? S dng quy hay vng lp
Phng php quy khng phi bao gi cng l gii php hu hiu nht.Gii php
vng lp c hiu qu v mt thi gian v vng nh. Cn vi quy mi ln gi quy my phi
dnh mt s vng nh tr cc tr, thng s v bin cc b. Do , quy tn nhiu vng nh,
thi gian truyn i mc, thit lp vng nh trung gian v tr v kt qu Nhng s dng
phng php quy trng chng trnh p mt hn vng lp v tnh thuyt phc ca n. iu
ct li khi thit t chng trnh phi lm th no hm quy c th chm dt 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)







Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 118
Hanoi Aptech Computer Education Center


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 tho mi c tn mc 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 chn menu File -> Save As s xut hin hp
thoi Save File As
Save File As
E:\BORLANDC\BIN\NONAME00.CPP OK
Files
..\


Cancel

<========================> Help

E:\BORLANDC\BIN\NONAME00.CPP
Directory 12:00am
+ 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.
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 cp nht nu
c thay i.
+ Chn menu File -> Save As, xut hin hp thoi Save File As, thc hin cc bc nh
mc 2.1 (ngha l bn mun lu ni dung tp tin hin hnh vi ng dn, tn tp tin khc).
Gio trnh Lp trnh C cn bn Trang 119
Hanoi Aptech Computer Education Center

bit tp tin ang son tho lu hay cha, bn xem gc di tri ca s, 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, hp thoi Open a
File xut hin:
Name
D:\BAITAPC\*.CPP OK
Files
BT_IF1.CPP Replace
BT_FOR1.CPP
..\

Cancel

<========================> Help

D:\BAITAPC\*.CPP
BT_IF1.CPP 486 Oct 17, 2002 11:04am
+ 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 mc, tp tin ca D hin 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 hin 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

Di chuyn con tr ln trn mt dng

Di chuyn con tr xung di mt dng
Home Di chuyn con tr v u dng
End Di chuyn con tr v cui dng
PgUp (Page Up) Lt li li mt trang mn hnh
PgDn (Page Down) Lt ti mt trang mn hnh
Ctrl PgUp Di chuyn con tr v u tp tin
Ctrl PgDn Di chuyn con tr v cui tp tin
Gio trnh Lp trnh C cn bn Trang 120
Hanoi Aptech Computer Education Center

Backspace () Xa mt k t bn tri con tr
Del (Delete) Xa mt k t ti v tr con tr
Ins (Insert) Chuyn i gia ch ghi chn v ghi
Enter Xung mt dng
13.4.2 Cc phm thao tc trn khi
Phm / T hp phm Chc nng
Shift nh du chn mt k t bn phi
Shift nh du chn mt k t bn tri
Shift nh du chn mt hng trn v tr con tr
Shift nh du chn mt hng ti v tr con tr
Shift Home nh du chn t u hng n v tr con tr
Shift End nh du chn t v tr con tr n cui hng
Shift PgUp nh du chn mt trang lui mn hnh
Shift PgDn nh du chn mt trang ti mn hnh
Ctrl Shift nh du chn mt t bn tri
Ctrl Shift nh du chn mt t bn phi
Ctrl Shift End nh du chn t v tr con tr n cui tp tin
Ctrl Shift Home nh du chn t v tr con tr n u tp tin
13.4.3 Cc thao tc xa
Phm Chc nng
Backspace () Xa mt k t bn tri con tr
Del (Delete) Xa mt k t ti v tr con tr
Ctrl Y Xa dng ti v tr con tr
Ctr K Y Xa khi
Ctrl Q Y Xa t v tr con tr n cui dng
Ctrl T Xa mt t ti v tr con tr
Insert Bt / tt ch vit chn /
13.4.4 Cc thao tc copy, di chuyn
Phm / T hp phm Chc nng
Ctrl Insert Sao chp khi chn vo Clipboard
Shift Delete Ct khi chn vo Clipboard
Ctrl Delete Xa khi chn
Shift Insert Dn thng tin t Clipboard vo v tr con tr
Ctrl K R c thng tin t tp tin vo ca s son tho
Ctrl K W Ghi thng tin t ca s son tho vo tp tin
13.4.5 Cc thao tc khc
Phm / T hp phm Chc nng
F3 To tp tin mi hoc np tp tin t a vo ca s
Gio trnh Lp trnh C cn bn Trang 121
Hanoi Aptech Computer Education Center

son tho
Alt F3 ng tp tin ti ca s hin hnh
F2 Lu tp tin hin hnh
F6 Chuyn i qua li gia cc ca s ang son tho
F5 Chuyn i ca s son tho maximize restore
Alt Backspace Phc hi li thao tc trc
Ctrl K H n / hin du khi
Ctrl Q F Tm kim
Ctrl L Lp li ln tm kim sau cng
Ctrl Q A Tm kim v thay th
Ctrl Q [,
Ctrl Q ]
Xc nh cp ngoc bao 1 khi lnh
F1 Gi gip
Shift F1 Hin ca s gip theo mc
Ctrl F1
Hin ca s gip v hm, ton t tung ng
ti v tr con tr.
13.5 Ghi mt khi ra a
nh du chn khi bng cc phm thao tc trn khi. n t hp phm Ctrl - K - W, xut
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, xut hin 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, hp thoi Find Text xut 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.
+ Chn OK.
Khi tm xong, mun tm tip n t hp phm Ctrl - L hoc chn menu Search -> Search again.
13.8 Tm v thay th vn bn trong ni dung son tho
n t hp phm Ctrl - Q - A hoc chn menu Search -> Replace, hp thoi Find Text xut hin:
+ 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 tt c.
Gio trnh Lp trnh C cn bn Trang 122
Hanoi Aptech Computer Education Center

13.9 Sa li c php
Khi bin dch chng trnh, nu thnh cng bn s nhn c thng bo t ca 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 hin cha danh sch cc li.
Thng bo li u tin c lm sng v dng c li trong chng trnh cng c lm sng.km
theo du cho bit trnh bin dch pht hin v tr li. Dng phm mi tn di chuyn n cc
thng bo li khc, bn s thy vt sng trong chng trnh cng s chuyn n dng cha li
tng ng. Nu bn Enter ti dng thng bo li no th con tr s chuyn 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.
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 chun b thc hin, v
n s c thc hin ln bm phm F7 tip theo. Mi ln bm phm F7 dng ang uc lm sng s
c thc hin, sau tr v mu bnh thng, v ty theo ni dung ca dng m mt 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 li gi hm c khai bo
trong chng trnh. S khc nhau gia F7 v F8 ch xy ra khi dng c lm sng c li gi 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 vic g ri s c
gii ta, khng c dng no c lm sng v kt thc qu trnh g ri.
Gio trnh Lp trnh C cn bn Trang 123
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 ca bin
trong mi bc thc hin d tm ra nguyn nhn chng trnh thc hin sai.
lm iu ta phi nhp vo cc bin cn theo di, bng cch chn mc Add watch ca menu
Break/Watch hoc c th bm Ctrl-F7, sau nhp tn bin vo ti v tr con tr trong ca s Add watch
v bm Enter. nhp thm tn bin vo ca s ny phi lp li chc nng ny hoc bm 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 bm phm F6. Mi bin trn ca s Watch thc
hin trn 1 dng. Khi ca s Watch c chn s c 1 dng c lm sng ch rng bin ang c
chn. Gi tr trong ca s Watch s thay i theo kt qu ca tng bc thc 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 chuyn 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 Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 124

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). Nhng do bn cht nh phn ca cc thit b
in t cho nn hu ht dng biu din d liu v cc php i s u thc hin 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 thng. Gi tr ca N k hiu ny c
sp xp t 0 n N-1.
V d 2: 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 thng ch vit ch biu din 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, BF) thay v phi vit 10, 1115 (2 ch s)
14.2 Quy tc
biu din mt s ca mt h m, ta dng ch s t gc di phi s .
01101
2
: biu th s nh phn.
082
8
: biu th s bt phn.
23
16
: 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 thc sau chuyn i t cc h
m sang h thp phn (c s 10) :

X = a
n
a
n-1
... a
1
a
0
= a
n
b
n
+ a
n-1
b
n-1
+... + a
1
b
1
+ a
0
b
0
(*)
trong ,
- b : l c s h m.
- a
0
a
n
: 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 Nh phn Bt phn Thp lc phn
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 125
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

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 = 01011
2
, chuyn sang h 10 ta dng cng thc (*)
X = 0*2
4
+ 1*2
3
+ 0*2
2
+ 1*2
1
+ 1*2
0

= 0 + 8 + 0 + 2 + 1
= 11
V d 4: X = 1011010
2
, chuyn sang h 10 ta dng cng thc (*)
X = 1*2
6
+ 0*2
5
+ 1*2
4
+ 1*2
3
+ 0*2
2
+ 1*2
1
+ 0*2
0

= 64 + 0 + 16 + 8 + 0 + 2 + 0
= 90
Chuyn i t h 10 sang h 2
V d 5: X = 11











V d 6: X = 90












11 2
1 5
11 chia 2 = 5 d 1
5 chia 2 = 2 d 1
2 chia 2 = 1 d 0
1 chia 2 = 0 d 1
2
1 2 2
0 1 2
1 0
1011
2
kt qu h nh phn 1011
2
Hanoi Aptech Computer Education Center

kt qu h nh phn
90 2
0 45 2
1 22 2
0
11 2
1 5 2
1 2 2
0 1 2
1 0
90 chia 2 = 2 d 0
45 chia 2 = 1 d 1
22 chia 2 = 0 d 0
11 chia 2 = 5 d 1
5 chia 2 = 2 d 1
2 chia 2 = 1 d 0
1 chia 2 = 0 d 1
1011010
2
1011010
2

Gio trnh Lp trnh C cn bn Trang 126


14.3.2 Chuyn i gia h 8 v h 10
Chuyn i t h 8 sang h 10
V d 7: X = 2106
8
, chuyn sang h 10 ta dng cng thc (*)
X = 2*8
3
+ 1*8
2
+ 0*8
1
+ 6*8
0

= 1024 + 64 + 0 + 6
= 1094
V d 8: X = 130
8
, chuyn sang h 10 ta dng cng thc (*)
X = 1*8
2
+ 3*8
1
+ 0*8
0

= 64 + 24 + 0
= 88
Chuyn i t h 10 sang h 8
V d 9: X = 1094










V d 10: X = 88









1094
8
6 136
1094 chia 8 = 136 d 6
136 chia 8 = 17 d 0
17 chia 8 = 2 d 1
2 chia 8 = 0 d 2
8
0 17 8
1 2 8
2 0
2106
8
kt qu h bt phn 2106
8
Hanoi Aptech Computer Education Center

14.3.3 Chuyn i gia h 16 v h 10
Chuyn i t h 16 sang h 10
V d 11: X = F40
16
, chuyn sang h 10 ta dng cng thc (*)
X = 15*16
2
+ 4*16
1
+ 0*16
0

= 3840 + 64 + 0
= 3904
V d 12: X = 1D
16
, chuyn sang h 10 ta dng cng thc (*)
X = 1*16
1
+ 13*16
0

130
8

kt qu h bt phn
88 chia 8 = 11 d 0
11 chia 8 = 1 d 3
1 chia 8 = 0 d 1
88 8
0 11 8
3 1 8
1 0
130
8
Gio trnh Lp trnh C cn bn Trang 127
= 16 + 13
= 29

Chuyn i t h 10 sang h 16
V d 13
Hanoi Aptech Computer Education Center

: X = 3904

3904 16




3904 chia 16 = 244 d 0
244 chia 16 = 15 d 4
15 chia 16 = 0 d 15
0 244 16
4 15 16
15 0



V d 14: X = 29








14.3.4 Chuyn i gia h 2 v h 16
Chuyn i t h 2 sang h 16
V d 15: X = 01011
2
, chuyn sang h 16 ta tra trong bng (**)
X = B
16
Din gii : 0 1011
2
0 B
16
= B
16


V d 16: X = 1011010
2
, chuyn sang h 16 ta tra trong bng (**)
X = 5A
16

Din gii : 101 1010
2
5 A
16
= 5A
16


Chuyn i t h 16 sang h 2
V d 17: X = B
16
, chuyn sang h 2 ta tra trong bng (**)
X = 1011
2
Din gii : B
16
1011
2
= 1011
2


V d 18: X = 5A
16
, chuyn sang h 2 ta tra trong bng (**)
X = 1011010
2

Din gii : 5 A
16
0101 1010
2
= 1011010
2


kt qu h thp lc phn
F40
16
F40
16

S 15 tng ng
trong h 16 l F
(xem bng (**))
kt qu h thp lc phn
29 chia 16 = 1 d 13
1 chia 16 = 0 d 1
29 16
13 1 16
1 0
S 13 tng ng
trong h 16 l D
(xem bng (**))
1D
16
1D
16

Gio trnh Lp trnh C cn bn Trang 128
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:
Hanoi Aptech Computer Education Center

15.2.1 Php ton s hc
+ : cng p dng trn tt c cc ton hng c kiu d liu char, int
: tr float, double (k c long, short, unsigned)
* : nhn
/ : chia
% : ly phn d 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 / 2 3 = 4
7 + 2 * ((4 + 3) * 4 + 8) = 65
ch s dng cp ngoc () trong biu thc, cp ngoc n c thc hin theo th 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
* Th t u tin: > , >= , < , <= == , !=

Kt qu ca php ton quan h l s nguyn kiu int, bng 1 nu ng, bng 0 nu 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 Ton t quan h

V d 3:
4 > 10 c gi tr 0 (sai)
Gio trnh Lp trnh C cn bn Trang 129
4 >= 4 c gi tr 1 (ng)
3 == 5 c gi tr 0 (sai)
2 <= 1 c gi tr 0 (sai)
6 != 4 c gi tr 1 (ng)
6 3 < 4 c gi tr 1 (ng), tng ng (6 3) < 4
2 * 4 < 3 + 2 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 Ton hng b !a a && b a || b
Khc 0
Khc 0
Bng 0
Bng 0
Khc 0
Bng 0
Khc 0
Bng 0
0 (sai)
0 (sai)
1 (ng)
1 (ng)
1 (ng)
0 (sai)
0 (sai)
0 (sai)
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 ~a a & b a | b a ^ b
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
V d 5:
a = 13 i ra h nh phn 1101
b = 10 i ra h nh phn 1010
1101 1101 1101
& 1010 | 1010 ^ 1010
= 1000 = 1111 = 0111
= 8 = 15 = 7 (dng thp phn)
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn Trang 130
Hanoi Aptech Computer Education Center

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
( ) [ ] ->
! ~ & * ++ (type) sizeof
* / %
+
<< >>
< <= > >=
== !=
&
^
|
&&
||
? :
= += = *= /= %= <<= >>= &= ^= |=
,
Tri sang phi
Phi sang tri
Tri sang phi
Tri sang phi
Tri sang phi
Tri sang phi
Tri sang phi
Tri sang phi
Tri sang phi
Tri sang phi
Tri sang phi
Tri sang phi
Phi sang tri
Phi sang tri
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 biu thc sau:
a + b + c a % c * 2 a * (a % b)
Gio trnh Lp trnh C cn bn Trang 131
Hanoi Aptech Computer Education Center

a / b c 2 * b + 3 * (a c) a * (b + (c 4 * 3))
a + c / a c * (b / a) 5 * a 6 / b
a % b (a * b) % c 5 % b % c
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:
x + y + z z / (y + x) x / y z * y
5 * y + 6 * (x z) (z / y) + x 2.5 * x / z (y + 6)
x / z 2 * y / 3 * z 5 * 6 / ((x + y ) / z)
x % z 2 * y / (3 * z) x / y*(6 + ((zy)+3.4))
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) z = i / j i %= j
x = (x + y * 1.2) a = b = d i += (j 3)
i = j y =x k = (j = = 5) ? i : j
k = (x + y) x *= 2 k = (j > 5) ? i : j
k = c i /= j i += j *= i /= 2
i = j = 1.1 i += 2 a = (c < d) ? c : d
z = k = x z = (x >= 0) ? x : 0 i = (j > 0) ? j : 0
k = z = x z = (y >= 0) ? y : 0 i = (i*9*(3+(8*j/3)))




Gio trnh Lp trnh C cn bn Trang 132
Hanoi Aptech Computer Education Center


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); Phi khai bo stdlib.h
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 thng
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);
for (i = 0; i < len; i++)
string[i] = toupper(string[i]); //i t k t trong string thnh ch thng
Gio trnh Lp trnh C cn bn Trang 133
Hanoi Aptech Computer Education Center


16.2 Cc hm x l chui k t
16.2.1 strcat
char *strcat(char *dest, const char *src); Phi khai bo string.h
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); Phi khai bo string.h
Chuyn chui s sang ch hoa
V d: char *s = "Borland C";
s = strlwr(s); //kt qu s = "BORLAND C"
Gio trnh Lp trnh C cn bn Trang 134
Hanoi Aptech Computer Education Center

16.2.7 strlen
int strlen(const char *s); Phi khai bo string.h
Tr v di chui s.
V d: char *s = "Borland C";
int len_s;
len_s = strlen(s); //kt qu len_s = 9
16.3 Cc hm ton hc
16.3.1 abs
int abs(int x); 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); Phi khai bo math.h
Tnh x m y
V d: double x = 2.0, y = 3.0, z;
z = pow(x, y); //kt qu z = 8.0
16.3.6 sqrt
double sqrt(double x); Phi khai bo math.h
Tnh cn bc 2 ca x.
V d: double x = 4.0, y;
y = sqrt(x); //kt qu y = 2.0

Gio trnh Lp trnh C cn bn Trang 135
16.4 Cc hm x l file
16.4.1 rewind
void rewind(FILE *stream); Phi khai bo stdio.h
a con tr v u file.
16.4.2 ftell
long ftell(FILE *stream); Phi khai bo stdio.h
Tr v v tr con tr file hin ti.
16.4.3 fseek
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 Aptech Computer Education Center

You might also like