You are on page 1of 135

Gio trnh Lp trnh C cn bn

BI 1 :
1.1

Smith
Nguyen
Studio.
MC LC

Trang 1

NGN NG LP TRNH & PHNG PHP LP TRNH ...................... 7

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 :
2.1

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

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 :
3.1

CC THNH PHN TRONG NGN NG C ......................................... 18

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

HanoiAptech Computer Education Center

Thanghv

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 2

4.2.1 Hm printf ...................................................................................................................... 21


4.2.2 Hm scanf ....................................................................................................................... 24
4.3

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

BI 5 :
5.1

CU TRC R NHNH C IU KIN ................................................ 26

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 :
6.1

CU TRC VNG LP .......................................................................... 51

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 :
7.1

HM ......................................................................................................... 65

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

Smith Nguyen Studio.

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 :
8.1

MNG V CHUI ................................................................................... 72

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 :
9.1

CON TR ................................................................................................ 90

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

Smith Nguyen Studio.

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

Smith Nguyen Studio.

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

Smith Nguyen Studio.

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

Smith
Nguyen Studio.
Bi 1 :

Trang 7

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

1.2.1.3

Smith Nguyen Studio.

Trang 8

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.


Input

Process

Output

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

# Bi tp
Xc nh Input, Process, Output ca cc chng trnh sau:
1. i t tin VND sang tin USD.
2. Tnh im trung bnh ca hc sinh gm cc mn Ton, L, Ha.
3. Gii phng trnh bc 2: ax2 + bx + c = 0
4. i t sang radian v i t radian sang
(cng thc / = a/180, vi : radian, a: )
5. Kim tra 2 s a, b ging nhau hay khc nhau.
HanoiAptech Computer Education Center

Thanghv

Gio trnh Lp trnh C cn bn

1.2.3.2

Smith Nguyen Studio.

Trang 9

S dng lu (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).
Hnh dng (symbol)

Hnh ng (Activity)
D liu vo (Input)
X l (Process)
D liu ra (Output)
Quyt nh (Decision), s dng iu kin
Lung x l (Flow lines)
Gi CT con, hm (Procedure, Function)
Bt u, kt thc (Begin, End)
im ghp ni (Connector)

V d 6: Chun b c ph

V d 7: M t v d 3

V d 8: M t v d 4

Bt u

Bt u

Bt u

C ph, nc si

LCB, ngy cng

Gi tr a, b

Ha c ph vo nc si

Nhn LCB vi ngy cng

Chia b cho a

B ng vo

Kt qu lng

Nghim x

Khuy u hn hp

Kt thc

Kt thc

C ph sn sng
Kt thc
HanoiAptech Computer Education Center

Thanghv

Gio trnh Lp trnh C cn bn

V d 9: Cng 2 s

Smith Nguyen Studio.

Trang 10

V d 10: so snh 2 s

Bt u

Bt u

a, b

S a, S b

c=a+b

Khng

S a c bng
S b khng?

C
Kt thc

S a bng S b

S a khng bng S b

V d 11: Kim tra tnh hp l ca im


Kt thc

Bt u

V d 12: Xp lon vo thng

im

Bt u
Khng

im >=0 v
im <=10 ?

Thng = 0 Lon
1 Lon

C
im hp l

im khng hp l

Kt thc

Thm 1 Lon vo thng


Cha

V d 13: Kim tra loi s

Thng = 24 Lon?
Bng

Bt u

Kt thc
S
V d 14: Kim tra tnh hp l ca im
S > 0 ?

Bt u

S dng

Khng
S < 0 ?

im
C

S m

Khng
S khng

Sai

im >=0 v
im <=10 ?
ng

Kt thc
HanoiAptech Computer Education Center

Kt thc
Thanghv

Gio trnh Lp trnh C cn bn

# Bi tp

Smith Nguyen Studio.

Trang 11

V lu cho cc chng trnh sau:


1. i t tin VND sang tin USD.
2. Tnh im trung bnh ca hc sinh gm cc mn Ton, L, Ha.
3. Gii phng trnh bc 2: ax2 + bx + c = 0
4. i t sang radian v i t radian sang
(cng thc / = a/180, vi : radian, a: )
5. Kim tra 2 s a, b ging nhau hay khc nhau.

HanoiAptech Computer Education Center

Thanghv

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 2 :

Trang 12

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

1 []

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
Ta hng:ct

Thanh trt dc
Thanh trt ngang
Thanh chc nng

1:1

F1 Help F2 Save F3 Open Alt - F9 Compile F9 Make F10 Menu


HanoiAptech Computer Education Center

Thanghv

Gio trnh Lp trnh C cn bn

2.2.1.2

Thot

Smith Nguyen Studio.

Trang 13

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

Thanghv

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
\t
\r
\a

: Nhy xung dng k tip canh v ct u tin.


: Canh ct tab ngang.
: Nhy v u hng, khng xung hng.
: Ting ku bip.

+ Cc k t c bit:
\\ : In ra du \
\" : In ra du "
\' : In ra du '

 By gi bn sa li dng th 6 bng cu lnh printf("\tBai hoc C dau tien.\a\n");, sau


dch v chy li chng trnh, quan st kt qu.

) Kt qu in ra mn hnh
Bai hoc C dau tien.
_
Khi chy chng trnh bn nghe ting bip pht ra t loa.

 Mi khi chy chng trnh bn thy rt bt tin trong vic xem kt qu phi n t hp
phm Alt F5. khc phc tnh trng ny bn sa li chng trnh nh sau:
Dng File Edit Search Run Compile Debug Project Option Window Help

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

HanoiAptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu
Thanghv

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

2.2.2.3

V d 3

Smith Nguyen Studio.

Trang 16

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

HanoiAptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu
Thanghv

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Smith Nguyen Studio.

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
volatile
break
continue
enum
goto
long
short
switch
while
typedef
static
near
huge
extern
default
case
union
struct
pascal
if
far
do
cdecl
unsigned
signed
register
int
float
double
char
) 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.
HanoiAptech Computer Education Center

Thanghv

Gio trnh Lp trnh C cn bn

TT
1
2
3
4
5
6
7
8
9
10
11

Kiu d liu
(Type)
unsigned char
char
enum
unsigned int
short int
int
unsigned long
long
float
double
long double

Smith Nguyen Studio.

Trang 19

Kch thc
(Length)
1 byte
1 byte
2 bytes
2 bytes
2 bytes
2 bytes
4 bytes
4 bytes
4 bytes
8 bytes
10 bytes

Min gi tr
(Range)
0 n 255
128 n 127
32,768 n 32,767
0 n 65,535
32,768 n 32,767
32,768 n 32,767
0 n 4,294,967,295
2,147,483,648 n 2,147,483,647
3.4 * 1038 n 3.4 * 1038
1.7 * 10308 n 1.7 * 10308
3.4 * 104932 n 1.1 * 104932

3.2.4 Ghi ch
Trong khi lp trnh cn phi ghi ch gii thch cc bin, hng, thao tc x l gip cho
chng trnh r rng d hiu, d nh, d sa cha v ngi khc c vo d hiu. Trong C c
cc ghi ch sau: // hoc /* ni dung ghi ch */
V d 3 :
void main()
{
int a, b;
//khai bao bien t kieu int
a = 1;
//gan 1 cho a
b =3;
//gan 3 cho b
/* thuat toan tim so lon nhat la
neu a lon hon b thi a lon nhat
nguoc lai b lon nhat */
if (a > b) printf("max: %d", a);
else printf("max: %d", b);
}
Khi bin dch chng trnh, C gp cp du ghi ch s khng dch ra ngn ng my.
Tm li, i vi ghi ch dng // dng ghi ch mt hng v dng /* . */ c th ghi ch
mt hng hoc nhiu hng.
3.2.5 Khai bo bin
3.2.5.1

Tn bin

Cch t tn bin nh mc 2.
3.2.5.2

Khai bo bin

C php
Kiu d liu Danh sch tn bin;
) Kiu d liu: 1 trong cc kiu mc 3
Danh sch tn bin: gm cc tn bin c cng kiu d liu, mi tn bin cch nhau du
phy (,), cui cng l du chm phy (;).
) Khi khai bo bin nn t tn bin theo quy tc Hungarian Notation
V d 4 :
int ituoi;
//khai bo bin ituoi c kiu int
float fTrongluong; //khai bo bin fTrongluong c kiu long
char ckitu1, ckitu2; //khai bo bin ckitu1, ckitu2 c kiu char
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Smith
Nguyen Studio.
Bi 4 :

Trang 21

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

Smith Nguyen Studio.

Trang 22

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

V d 2: printf("Ma dinh dang \\\" in ra dau \" . \n");


k t iu khin
k t c bit
chui k t

) Kt qu in ra mn hnh
Ma dinh dang \" in ra dau ".
_
V d 3:

gi s bin i c gi tr = 5
xut gi tr bin i
printf("So ban vua nhap la: %d . \n", i);
i mc l bin (kiu int)
k t iu khin
chui k t
m nh dng (kiu int)

) Kt qu in ra mn hnh
So ban vua nhap la: 5.
_
V d 4:

gi s bin a c gi tr = 7 v b c gi tr = 4
xut gi tr biu thc a+b
xut gi tr bin b
xut gi tr bin a
printf("Tong cua 2 so %d va %d la %d . \n", a, b, a+b);
i mc 3 l biu thc c
gi tr l kiu int
i mc 1, 2 l bin (kiu int)
k t iu khin
chui k t
m nh dng (kiu int)

) Kt qu in ra mn hnh
Tong cua 2 so 7 va 4 la 11.
_
V d 5:

sa li v d 4
printf("Tong cua 2 so %5d va %3d la %1d . \n", a, b, a+b);
B rng trng

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 23

) Kt qu in ra mn hnh
7 va 4 la 11.

Tong cua 2 so
_

2 k t (mc d nh dng l 1)
3 k t
5 k t
V d 6:

sa li v d 5
printf("Tong cua 2 so %-5d va %-3d la %-1d . \n", a, b, a+b);

) Kt qu in ra mn hnh
Tong cua 2 so 7
_

va 4 la 11.
2 k t (mc d nh dng l 1)
3 k t
5 k t

) Du tr trc b rng trng s ko kt qu sang tri


V d 7:

sa li v d 4
printf("Tong cua 2 so %02d va %02d la %04d . \n", a, b, a+b);

) Kt qu in ra mn hnh
Tong cua 2 so 07 va 04 la 0011.
_
thm 2 s 0 trc -> 4 k t
thm 1 s 0 trc -> 2 k t
thm 1 s 0 trc -> 2 k t
V d 8: gi s int a = 6, b = 1234, c = 62
printf("%7d%7d%7d.\n", a, b, c);
printf("%7d%7d%7d.\n", 165, 2, 965);

) Kt qu in ra mn hnh
6 1234 62
165
2 965
_

S canh v bn phi b rng trng.

printf("%-7d%-7d%-7d.\n", a, b, c);
printf("%-7d%-7d%-7d.\n", 165, 2, 965);

) Kt qu in ra mn hnh
6
165
_

1234
2

62
965

S canh v bn tri b rng trng.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

62.3
965.0

S canh v bn phi b rng trng.

printf("%-10.2d%-10.2d%-10.2d.\n", a, b, c);
printf("%-10.2d%-10.2d%-10.2d.\n", 165, 2, 965);

) Kt qu in ra mn hnh
6.40
1234.55
165.00 2.00
_

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


Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 25

V d 12: scanf("%d%d", &a, &b);

) Nhp vo 2 s a, b phi cch nhau bng khong trng hoc enter.


V d 13: scanf("%d/%d/%d", &ngay, &thang, &nam);

) Nhp vo ngy, thng, nm theo dng ngay/thang/nam (20/12/2002)


V d 14: scanf("%d%*c%d%*c%d", &ngay, &thang, &nam);

) Nhp vo ngy, thng, nm vi du phn cch /, -,; ngoi tr s.


V d 15: scanf("%2d%2d%4d", &ngay, &thang, &nam);

) Nhp vo ngy, thng, nm theo dng dd/mm/yyyy.


4.3 Bi tp
1. Vit chng trnh i mt s nguyn h 10 sang h 2.
2. Vit chng trnh i mt s nguyn h 10 sang h 16.
3. Vit chng trnh c v 2 s nguyn v in ra kt qu ca php (+), php tr (-), php
nhn (*), php chia (/). Nhn xt kt qu chia 2 s nguyn.
4. Vit chng trnh nhp vo bn knh hnh cu, tnh v in ra din tch, th tch ca
hnh cu .
Hng dn: S = 4R2 v V = (4/3)R3.
5. Vit chng trnh nhp vo mt s a bt k v in ra gi tr bnh phng (a2), lp
phng (a3) ca a v gi tr a4.
6. Vit chng trnh c t bn phm 3 s nguyn biu din ngy, thng, nm v xut
ra mn hnh di dng "ngay/thang/nam" (ch ly 2 s cui ca nm).
7. Vit chng trnh nhp vo s giy t 0 n 86399, i s giy nhp vo thnh dng
"gio:phut:giay", mi thnh phn l mt s nguyn c 2 ch s.
V d: 02:11:05

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 5 :

Trang 26

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)
khi lnh;
Hanoi Aptech Computer Education Center

) t kha if phi vit bng ch thng


) kt qu ca biu thc lun l phi l
ng ( 0) hoc sai (= 0)

Gio trnh Lp trnh C cn bn

Lu

Vo
bthc lun l

Smith Nguyen Studio.

Trang 27

Sai

ng

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

khi lnh
Ra

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

Ngn ng C
- int ia, ib, imax;
- printf("Nhap vao so a: ");
scanf("%d", &ia);
- printf("Nhap vao so b: ");
scanf("%d", &ib);
- imax = ia;
- if (ib > ia)
imax = ib;
- printf("So lon nhat = %d.\n", imax);

) 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

c. M t bng lu

Smith Nguyen Studio.

Trang 28

Bt u
Nhp a, b
max = a
b>a

Sai

ng
max = b
So lon nhat = max
Kt thc

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Ngn ng C
- int ia, ib, itam;
- printf("Nhap vao so a: ");
scanf("%d", &ia);
- printf("Nhap vao so b: ");
scanf("%d", &ib);
- if (ia > ib)
{
itam = ia;
ia = ib;
ib = itam;
}
- printf("%d, %d\n", ia, ib);

c. M t bng lu
Bt u
Nhp a, b
a>b

Sai

ng
tam = a
a=b
b = tam

In a, b
Kt thc

d. Vit chng trnh


File Edit Search Run Compile Debug Project Option Window Help

/* Chuong trinh hoan vi 2 so a, b neu a > b */


#include <stdio.h>
#include <conio.h>
void main(void)
{
int ia, ib, itam;
printf("Nhap vao so a: ");
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
Cho chy li chng trnh v th li vi:
a = 1, b = 8
a = 2, b = 2
Quan st v nhn kt qu

Nhap vao so a : 10
Nhap vao so b : 8
8, 10
_
5.2.2.2

Dng 2 (if )

Quyt nh s thc hin 1 trong 2 khi lnh cho trc.


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

if (biu thc lun l)


khi lnh 1;
else
khi lnh 2;
Lu
Vo
bthc lun l

Sai

ng
khi lnh 1

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

khi lnh 2

Ra

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

Ngn ng C

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 31

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

- Khai bo 2 bin a, b kiu s nguyn


- Nhp vo gi tr a
- Nhp vo gi tr b
- Nu a = b th
in ra thng bo "a bng b"
Ngc li (cn khng th)
in ra thng bo "a khc b"
c. M t bng lu

Bt u
Nhp a, b
Sai

a= b
ng
a bang b

a khac b

Kt thc

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

Cho chy li chng trnh v th li vi:


a = 6, b = 6
a = 1, b = 5

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
- Khai bo bin c kiu k t
- Nhp vo k t c

Ngn ng 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
Nhp c
c >= 'a' v c <= 'z'

Sai

ng
c = c 32
Ki tu hoa = c

Ki tu vua nhap = c

Kt thc

d. Vit chng trnh


File Edit Search Run Compile Debug Project Option Window Help

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
Cho chy li chng trnh v th li vi:
c = '!', c = '2', c = 'A', c = 'u'
Quan st v nhn xt kt qu

Nhap vao mot ki tu: g


Ki tu hoa la: G.
_
5.2.2.3

Cu trc else if

Quyt nh s thc hin 1 trong n khi lnh cho trc.


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

if (biu thc lun l 1)


khi lnh 1;
else if (biu thc lun l 2)
khi lnh 2;

else if (biu thc lun l n-1)


khi lnh n-1;
else
khi lnh n;

# Nu khi lnh 1, 2n bao gm t 2 lnh


tr ln th phi t trong du { }

Lu
Vo
BTLL 1
ng

Sai
BTLL 2

ng
Hanoi Aptech Computer Education Center

Sai

Nu biu thc lun l 1 ng th


thc hin khi lnh 1 v thot khi cu trc if
Ngc li Nu biu thc lun l 2 ng th
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.

BTLL n-1
ng

Sai

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
- Khai bo 2 bin a, b kiu s nguyn
- Nhp vo gi tr a

Ngn ng C
- int ia, ib;
- printf("Nhap vao so a: ");
scanf("%d", &ia);
- printf("Nhap vao so b: ");
scanf("%d", &ib);
- if (ia > ib)
printf("a lon hon b.\n");
else if (ia < ib)
printf("a nho hon b.\n");
else
printf("a bang b.\n");

- Nhp vo gi tr b
- Nu a > b th
in ra thng bo "a ln hn b"
Ngc li Nu a < b th
in ra thng bo "a nh hn b"
Ngc li th
in ra thng bo "a bng b"
c. M t bng lu
Bt u
Nhp a, b
a>b
ng
"a lon hon b"

Sai

a<b

Sai

ng
"a nho hon b"

"a bang b"

Kt thc

d. Vit chng trnh


File Edit Search Run Compile Debug Project Option Window Help

/* Chuong trinh nhap vao 2 so nguyen a, b. In ra thong bao a > b, a < b, a = b */


#include <stdio.h>
#include <conio.h>
void main(void)
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 35

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

Ngn ng C
- char c;
- printf("Nhap vao 1 ki tu: ");
scanf("%c", &c);
- if (c >= 'a' && c <= 'z')
{
c = c 32;
printf("Ki tu hoa la: %c.\n", c);
};
else if(c >= 'A' && c <= 'Z')
{
c = c + 32;
printf("Ki tu thuong la: %c.\n", c);

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
Nhp c

c >= 'a' v c <= 'z'

Sai

ng
c = c 32

Ki tu hoa = c

c >= 'A' v c <= 'Z'

Sai

ng
c = c + 32

c >= '0' v c <= '9'

Ki tu thuong=c

ng
Ktu nhap la so c

Kt thc

e. Vit chng trnh


File Edit Search Run Compile Debug Project Option Window Help

/* Chuong trinh nhap vao ki tu c. Doi ra hoa, thuong */


#include <stdio.h>
#include <conio.h>
void main(void)
{
char c;
printf("Nhap vao 1 ki tu: ");
scanf("%c", &c);
if (c >= 'a' && c <= 'z')
{
c = c 32;

//hoac if(c >= 97 && c <= 122)


//doi thanh chu in hoa

Hanoi Aptech Computer Education Center

Sai

Ban da nhap ktu c

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 37

printf("Ki tu hoa la: %c.\n", c);

};
else if(c >= 'A' && c <= 'Z')
//hoac if(c >= 65 && c <= 90)
{
c = c + 32;
//doi thanh chu thuong
printf("Ki tu thuong la: %c.\n", c);
};
else if(c >= '0' && c <= '9')
//hoac if(c >= 48 && c <= 57)
printf("Ki tu Ban vua nhap la so %c.\n", c);
else
printf("Ban da nhap ki tu %c.\n", c);
getch();
}
F1 Help

Alt-F8 Next Msg

Alt-F7 Prev Msg

Alt - F9 Compile

F9 Make

F10 Menu

) Kt qu in ra mn hnh
Nhap vao mot ki tu: g
Ki tu hoa la: G.
_
5.2.2.4

Cho chy li chng trnh v th li vi:


c = '!', c = '2', c = 'a', c = 'Z'
Quan st v nhn xt kt qu

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:

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

if (n > 0)
{
if (a > b)
x = a;
}
else
x = b;

Smith Nguyen Studio.

Trang 38

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
- Khai bo bin diem kiu s thc
- Nhp vo im s

Ngn ng C

- 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
Bt u
Nhp diem

diem >= 0
v diem <= 10

ng
diem >=9

Sai

Sai
diem >=8

ng
Hanoi Aptech Computer Education Center
ng

Sai
diem >=7
ng

Sai
diem >=6

Sai

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 39

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.
_
e. Bn thm v chng trnh
Hanoi Aptech Computer Education Center

Cho chy li chng trnh v th li vi:


diem = 4, diem = 9, diem = 7, diem = 12
Quan st v nhn xt kt qu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
- Khai bo 3 bin a, b, c kiu s nguyn
- Nhp vo s a

Ngn ng C
- int ia, ib, ic;
- printf("Nhap vao so a: ");
scanf("%d", &ia);
- printf("Nhap vao so b: ");
scanf("%d", &ib);
- printf("Nhap vao so c: ");
scanf("%d", &ic);
- if (ia > ib)
- 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);

- 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
c. M t bng lu

Bt u
Nhp a, b, c
Sai

Sai

c ln nht

b>c

ng

a>b

ng

Sai

b ln nht

Hanoi Aptech Computer Education Center

c ln nht

Kt thc

a>c

ng

a ln nht

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 41

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.


Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

C php lnh

Smith Nguyen Studio.

Trang 42

) t kha switch, case, break


phi vit bng ch thng
) biu thc phi l c kt qu l
gi tr hng nguyn (char, int, long,)
) Lnh 1, 2n c th gm nhiu lnh, nhng
khng cn t trong cp du { }

switch (biu thc)


{
case gi tr 1 : lnh 1;
break;
case gi tr 2 : lnh 2;
break;

case gi tr n : lnh n;
[break;]
}
Lu
Vo

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

Biu thc

...

= gi tr 1 ?

ng

lnh 1
C

break ?
Khng
= gi tr 2 ?

ng

lnh 2
C

break ?
Khng
= gi tr n ?

ng

lnh n
break ?

Khng
Ra

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: ");
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 43

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
Cho chy li chng trnh v th li vi:
thang = 7, thang = 1, thang = 13, thang = -4
Quan st v nhn xt kt qu

Nhap vao thang: 4


Quy 2.
_

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
) t kha switch, case, break, default
phi vit bng ch thng
) biu thc phi l c kt qu l
gi tr nguyn (char, int, long,)
) Lnh 1, 2n c th gm nhiu lnh, nhng
khng cn t trong cp du { }

switch (biu thc)


{
case gi tr 1 : lnh 1;
break;
case gi tr 2 : lnh 2;
break;

case gi tr n : lnh n;
break;
default
: lnh;
[break;]
}
Lu
Vo
Biu thc

...

= gi tr 1 ?

ng

lnh 1

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

break ?

Khng
= gi tr 2 ?

ng

lnh 2

Hanoi Aptech Computer Education Center break ?


Khng

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 45

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
***
_
b. Bn thm v chng trnh
Hanoi Aptech Computer Education Center

Cho chy li chng trnh v th li vi:


i = 1, i = 3, i = 0, i = 4
Quan st kt qu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 46

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 47

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

Cho chy li chng trnh v th li vi:


mc chn chc nng khc

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Trang 48

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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 = p * ( p a ) * ( p b) * p c) , vi p l 1/2 chu vi ca tam gic.
Hng dn: a, b, c l 3 cnh ca tam gic phi tha iu kin sau:
(a + b) > c v (a + c) > b v (b + c) > a
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 50

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.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 6 :

Trang 51

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

Vo

iu kin

Sai

ng
khi lnh

) kim tra iu kin


nu ng ng th
thc hin khi lnh;
lp li kim tra iu kin
nu sai
thot khi vng lp.

Ra

Gii thch:
+ Biu thc 1: khi to gi tr ban u cho bin iu khin.
+ Biu thc 2: l quan h logic th hin iu kin tip tc vng lp.
+ Biu thc 3: php gn dng thay i gi tr bin iu khin.
Nhn xt:
+ Biu thc 1 bao gi cng ch c tnh ton mt ln khi gi thc hin for.
+ Biu thc 2, 3 v thn for c th thc hin lp li nhiu ln.
Lu :
+ Biu thc 1, 2, 3 phi phn cch bng du chm phy (;)

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 52

+ 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++)
printf("%s", MSG);
getch();
}
F1 Help

/hoac for(i = 1; i<=3; i+=1)

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;

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

10
11
12
13
14
15
16
17
18 }

Smith Nguyen Studio.

Trang 53

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

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

Hanoi Aptech Computer Education Center

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 54

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

a
a
4
4
.
_

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 55

9 {
char c;
10
int idem;
11
for(idem = 0; (c = getchar()) != DAU_CHAM; )
12
idem++;
13
printf("So ki tu: %d.\n", idem);
14
getch();
15
16 }
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
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

Smith Nguyen Studio.

Trang 56

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

Gio trnh Lp trnh C cn bn

while (biu thc)


khi lnh;

Smith Nguyen Studio.

Trang 57

) t kha while phi vit bng ch thng


# Nu khi lnh bao gm t 2 lnh tr ln th phi t trong du { }
Lu

Vo

Sai

biu thc
ng
khi lnh

) 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

Ra

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


Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Nhap vao so n : 5
Tong: 15.
_

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

khiEducation
lnh
Hanoi Aptech Computer
Center
ng

biu thc

) Thc hin
khi lnh

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 59

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

9
10
11
12
13
14
15
16
17
18
19
20
21 }

Smith Nguyen Studio.

Trang 60

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
Bn li chng trnh vi s liu khc.
Nhap vao nam hien tai: 2002
Quan st, nh gi v nhn xt kt qu.
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)
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

) Kt qu in ra mn hnh
Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Nhap vao chieu dai: 10


Nhap vao chieu rong: 5
**********
**********
**********
**********
**********
_

Smith Nguyen Studio.

Trang 61

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;
while (ij++ <= 9)
printf("%d", i);
printf("\n");
i++;
}
getch();
}
F1 Help

Alt-F8 Next Msg

//khoi tao lai ij = 0 cho lan in ke tiep


//in 1 hang 10 so i
//xuong dong khi in xong 1 hang
//tang i len 1 cho vong lap ke tiep

Alt-F7 Prev Msg

Alt - F9 Compile

F9 Make

F10 Menu

) Kt qu in ra mn hnh
0000000000
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999
_

Thay dng 11, 12 thnh cu lnh


for (ij = 0; ij <= 9; ij++)
Chy li chng trnh.
Quan st, nh gi v nhn xt kt qu.

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 62

- 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
Pn = anxn + an-1xn-1 + + a1x1 + a0
Hng dn a thc c th vit li
Pn = ((anx + an-1)x + an-2)x + + a0
Nh vy trc tin tnh anx + an-1, ly kt qu nhn vi x, sau ly kt qu nhn vi
x cng thm an-2, ly kt qu nhn vi x n gi l bc ca a thc.
15. Vit chng trnh tnh xn vi x, n c nhp vo t bn phm.
16. Vit chng trnh nhp vo 1 s t 0 n 9. In ra ch s tng ng. V d: nhp vo
s 5, in ra "Nm".
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% .
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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)
x
xn
- 1 + + ...
2
n +1

32. Vit chng trnh nhp vo N s nguyn, m xem c bao nhiu s m, bao nhiu s
dng v bao nhiu s khng.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Hanoi Aptech Computer Education Center

Trang 64

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 7 :

Trang 65

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

) Kt qu in ra mn hnh
*****************
* Minh hoa ve ham *
*****************
_
Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
void main(void)
{
printf("2 mu 2 = %d.\n", power(2, 2));

truyn gi tr vo hm
gi thc hin hm power

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


getch();
}

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

17
18
19
20
21
22 }

Smith Nguyen Studio.

Trang 68

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

igio = #
gi thc hin hm time

time(igio, iphut);

printf("%02d:%02d\n", igio, iphut);


getch();

quay v chng trnh chnh


thc hin lnh k tip
igio = ig = 3
iphut = ip = 5

void time(int &ig, int &ip)


{
ig = ip / 60;
ip %= 60;
}

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

Kt qu in ra:
void main(void)
{
int ia = 5, ib = 5;
thamtri(ia, ib);
printf("a = %d, b = %d", ia, ib); a = 5, b = 5
thambien(ia, ib);
printf("a = %d, b = %d", ai, ib); a = 6, b = 6
}

) 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

Smith Nguyen Studio.

Trang 69

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

) Kt qu in ra mn hnh
Nhap vao 1 so nguyen: 3
3 la so le.
3 la so duong.
_
Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 70

# 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

) Kt qu in ra mn hnh

Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 71

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.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

ia
ia[2]
Hanoi Aptech Computer Education Center

ia[7]

Smith Nguyen Studio.

Gio trnh Lp trnh C cn bn

Trang 73

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.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 74

/ 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--;
//Tinh tong
for(int ij = 0; ij < i; ij++)
fsum += fa[ij];

//giam i di 1 lan cuoi cung tang 1 truoc khi thoat


//cong don tung phan tu vao isum

printf("Tong : %5.2f\n", fsum);


getch();

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

24 }

F1 Help

Smith Nguyen Studio.

Trang 75

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)
{
printf("Mang da day!\n");
i++;
break;
}

//kiem tra phan tu buoc sang 51


//thong bao "Mang da day"
//tang i len 1 do dong 17 giam i xuong 1
//thoat khoi vong lap 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;

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

11
12
13
14
15
16
17
18
19
20 }

Smith Nguyen Studio.

Trang 76

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
Bn chy li chng trnh v th li vi s liu khc.
Quan st kt qu.

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
_

/ 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
5 hng

10 ct
8.2.1.10 Tham chiu n tng phn t mng 2 chiu
Sau khi c khai bo, mi phn t trong mng 2 chiu u c 2 ch s tham chiu,
ch s hng v ch s ct. Ch s hng bt u t 0 n s hng 1 v ch s 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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

0
1
2
3
4

Smith Nguyen Studio.

Trang 77

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

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 }

Smith Nguyen Studio.

Trang 78

for (i = 0; i < in; i++)


//vng for c gi tr i chy t 0 n in-1 cho hng
for (ij = 0; ij < in; ij++)
//vng for c gi tr ij chy t 0 n in-1 cho ct
{
printf("Nhap vao phan tu ia[%d][%d]: ", i + 1, ij + 1);
scanf("%d", &ia[i][ij]);
}
//In ma tran
for (i = 0; i < in; i++)
{
for (ij = 0; ij < in; ij++)
printf("%3d ", ia[i][ij]);
printf("\n");
}
printf("\n");

//vng for c gi tr i chy t 0 n in-1 cho hng


//vng for c gi tr ij chy t 0 n in-1 cho ct
//xung dng in hng k tip
//Tao khoang cach giua 2 ma tran

//In ma tran theo thu tu nguoc


for (i = in-1; i >= 0; i--)
//vng for c gi tr i chy t in-1 n 0 cho hng
{
for (ij = in-1; ij >= 0 in; ij--) //vng for c gi tr ij chy t in-1 n 0 cho ct
printf("%3d ", ia[i][ij]);
printf("\n");
//xung dng in hng k tip
}
getch();

F1 Help

Alt-F8 Next Msg

Alt-F7 Prev Msg

Alt - F9 Compile

F9 Make

F10 Menu

) Kt qu in ra mn hnh
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

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.

15 6
4 7
_

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

Gio trnh Lp trnh C cn bn

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

Smith Nguyen Studio.

Trang 79

/* 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

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

Hanoi Aptech Computer Education Center

F10 Menu

Gio trnh Lp trnh C cn bn

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

Smith Nguyen Studio.

Trang 80

int i, imax;
imax = ia[0];
for (i = 1; i < in; i++)
if (imax < ia[i])
imax = ia[i];
return imax;

//cho phan tu dau tien la max


//neu so dang xet > max
//gan so nay cho max
//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.
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 81

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

) Kt qu in ra mn hnh
Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

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

Smith Nguyen Studio.

Trang 82

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

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

Smith Nguyen Studio.

Trang 83

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

) Kt qu in ra mn hnh
Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 84

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
_

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

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

0
1
2

1*3+2
2*3+1

) 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

\0
K t kt thc chui

8.2.2.1

Cch khai bo chui

V d 17 : char cname[30];
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 85

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn


F1 Help

Smith Nguyen Studio.

Alt-F8 Next Msg

Trang 86

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

10
11
12
13
14
15
16 }

Smith Nguyen Studio.

Trang 87

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 88

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Hanoi Aptech Computer Education Center

Trang 89

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 9 :

Trang 90

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 91

) 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
1204
1205
1206
1207
1208
1209
1210
a ch vng nh
2015
2016
2017
2018
2019
2020
2021
2022

ix

iy

1203

px

1207

py

Sau php gn px = &ix v py = &iy th gi


tr ca px = 1203 v py = 1207

*px l ni dung ca px v *py l ni dung


ca py. Nn khi thc hin 2 php cng gn
*px += 10 v *py += 10 th gi tr ca ix
s l 16 v gi tr iy s l 17.

9.2.3 Truyn a ch sang hm


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

Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 92

) 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

) Kt qu in ra mn hnh
12 15 16 19
_

Chy chng trnh v quan st kt qu.

Hanoi Aptech Computer Education Center

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
iarray
245
2
246
iarray + 1
247
ptr
245
5
248
iarray + 2
249
6
250
iarray + 3
251
9
252
ptr ++
iarray
ptr

iarray + 1

247

iarray + 2
iarray + 3

245
246
247
248
249
250
251
252

12
5
6
9

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

) Kt qu in ra mn hnh
Cho biet ten cua ban:
Minh
Chao ban
Minh
_

Chy chng trnh v quan st kt qu.

Hanoi Aptech Computer Education Center

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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.

cgreeting
1502

1502

1503

cgreeting

1502

1503

1504

1504

1505

1505

1506

1506

1507

1507

1508

1508

1509

1509

char * cgreeting = "Chao ban"


(bin con tr)

char cgreeting[] = "Chao ban"


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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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
1010
1020
1030
1040
1050
1060
1070
1080
1090
1100
1110
1120

cthang[0]
cthang[1]
cthang[2]
cthang[3]
cthang[4]
cthang[5]
cthang[6]
cthang[7]
cthang[8]
cthang[9]
cthang[10]
cthang[11]

0
J
F
M
A
M
J
J
A
S
O
N
D

1
a
e
a
p
a
u
u
u
e
c
o
e

2
n
b
r
r
y
n
l
g
p
t
v
c

3
u
r
c
i
\0
e
y
u
t
o
e
e

4
a
u
h
l

5
r
a
\0
\0

6
y
r

7
\0
y

\0
\0
s
e
b
m
m

t
m
e
b
b

\0
b
r
e
e

e
\0
r
r

\0

\0

\0
\0

Mng cc chui char cthang[12][10]]


cthang[0]
cthang[1]
cthang[2]
cthang[3]
cthang[4]
cthang[5]
cthang[6]
cthang[7]
cthang[8]
cthang[9]
cthang[10]
cthang[11]

1010
1018
1027
1033
1039
1043
1048
1053
1060
1070
1078
1087

1010 J
1018 F
1027 M
1033 A
1039 M
1043 J
1048 J
1053 A
1060 S
1070 O
1078 N
1087 D

a
e
a
p
a
u
u
u
e
c
o
e

n
b
r
r
y
n
l
g
p
t
v
c

u
r
c
i
\0
e
y
u
t
o
e
e

a
u
h
l

r
a
\0
\0

y
r

\0
y

\0
\0
s
e
b
m
m

t
m
e
b
b

\0
b
r
e
e

e
\0
r
r

\0

\0

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

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

Smith Nguyen Studio.

Trang 96

void main(void)
{
char cname[MAXNUM][MAXLEN];
char *cptr[MAXNUM];
char *ctemp;
int i, ij, icount = 0;

//mang chuoi
//mang con tro tro den chuoi

//nhap danh sach ten


while (icount < MAXNUM)
{
printf("Nhap vao ten nguoi thu %d: ", icount + 1);
gets(cname[icount]);
cptr[icount++] = cname[icount];
//con tro den ten
}
//sap xep danh sach theo thu tu tang dan
for (i = 0; i < icount 1; i ++)
for (ij = i + 1; ij < icount; ij ++)
if (strcmp(cptr[i], cptr[ij]) > 0)
{
ctemp = cptr[i];
cptr[i] = cptr[ij];
cptr[ij] = ctemp;
}
//In danh sach da sap xep
printf("Danh sach sau khi sap xep:\n");
for (i = 0; i < icount; i ++)
printf("Ten nguoi thu %d : %s\n", i + 1, cptr[i]);
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
_
Hanoi Aptech Computer Education Center

Chy li chng trnh v th nhp vi d liu


khc.
Quan st kt qu.

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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]
cptr[1]
cptr[2]
cptr[3]
cptr[4]

1010
1016
1022
1028
1034

1010
1016
1022
1028
1034

M
L
A
T
Q

i
a
n
r
u

n
n
h
a
a

h
\0
\0
n
n

\0
g
\0

\0

Mng cc con tr tr n chui trc khi sp xp


cptr[0]
cptr[1]
cptr[2]
cptr[3]
cptr[4]

1022
1016
1010
1034
1028

1010
1016
1022
1028
1034

M
L
A
T
Q

i
a
n
r
u

n
n
h
a
a

h
\0
\0
n
n

\0
g
\0

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

int i, ij, ix = 10;

{{10, 12, 14, 16, 18},


{11, 13, 15, 17, 19},
{20, 22, 24, 26, 28},
{21, 23, 25, 27, 29}};

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

\0

Gio trnh Lp trnh C cn bn


F1 Help

Smith Nguyen Studio.

Alt-F8 Next Msg

Trang 98

Alt-F7 Prev Msg

Alt - F9 Compile

F9 Make

F10 Menu

) Kt qu in ra mn hnh
20
21
30
31
_

22
23
32
33

24
25
34
35

26
27
36
37

28
29
38
39

Chy chng trnh v quan st kt qu.

) Gii thch chng trnh


Trong chng trnh dng c mng chui char cname[MAXNUM][MAXLEN] v mng
con tr tr n chui char *cptr[MAXNUM];.
9.3 Bi tp
Lm li cc bi tp bi Mng v chui s dng bin con tr.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 10 :

Trang 99

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
nhanvien

int manv

char hoten[30]

V d trn nh ngha kiu d liu mi c tn l struct nhanvin. Mi bin kiu ny gm 2


phn t: bin nguyn c tn l manv v bin chui c tn hoten.
) struct phi vit bng ch thng
10.2.1.2 Cch khai bo bin c kiu structure
V d 2: struct nhanvien nv; hoc nhanvien nv;
Khai bo bin nv c kiu struct nhanvien
) va to structure nhanvien va khai bo bin nv
struct nhanvien
{
int manv;
char hoten[30];
} nv;
10.2.1.3 Tham chiu cc phn t trong structure
nv

manv
nv.manv

hoten[30]
nv.hoten

tham chiu n manv trong nv ta vit nh sau: nv.manv (l bin c kiu int)
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 100

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

Chy v th li chng trnh vi d liu khc.


Quan st kt qu.

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 101

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Hanoi Aptech Computer Education Center

Trang 102

Gio trnh Lp trnh C cn bn

44
45
46
47
48
49
50 }

Smith Nguyen Studio.

Trang 103

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

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

Smith Nguyen Studio.

Trang 104

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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


it bng ch thng

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 106

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;

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

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

Smith Nguyen Studio.

Trang 107

break;
case CHU_NHAT:
fLuongNgay = fLuongCB * PHU_TROI_CN;
break;

}
fTongLuong += fLuongNgay * igio;
} while (ngay != CHU_NHAT);
printf("Tong luong tuan = %8.2f dong.\n", fTongLuong);
getch();
}
//ham chon ngay ke tiep
ngay_tuan ngay_mai(ngay_tuan en)
{
ngay_tuan engay_ke;
switch(en)
{
case CHU_NHAT : engay_ke = THU_HAI;
case THU_HAI : engay_ke = THU_BA;
case THU_BA
: engay_ke = THU_TU;
case THU_TU
: engay_ke = THU_NAM;
case THU_NAM : engay_ke = THU_SAU;
case THU_SAU : engay_ke = THU_BAY;
case THU_BAY : engay_ke = CHU_NHAT;
}
return (engay_ke);
}
F1 Help

Alt-F8 Next Msg

Alt-F7 Prev Msg

break;
break;
break;
break;
break;
break;
break;

Alt - F9 Compile

F9 Make

F10 Menu

) Kt qu in ra mn hnh
Nhap vao luong can ban: 250
Nhap vao so gio lam viec tu Thu hai den Chu nhat:
Nhap vao gio lam viec ngay Thu Hai: 7
Nhap vao gio lam viec ngay Thu Ba: 8
Nhap vao gio lam viec ngay Thu Tu: 6
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.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

10.3 Bi tp

Smith Nguyen Studio.

Trang 108

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

Smith
Nguyen Studio.
Bi 11 :

Trang 109

TP TIN
11.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha ca vic s dng tp tin (file)
- M, ng file
- Ghi, c file s nguyn, mng, chui.
- Mt s hm x l tp tin.
11.2 Ni dung
11.2.1 V d ghi, c s nguyn
Dng File Edit Search Run Compile Debug Project Option Window Help

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

/* Ghi n so nguyen vao file va doc ra tu file*/


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main(void)
{
FILE *f;
int in, i;
printf("Nhap vao so n: ");
scanf("%d", &in);
//Ghi file
if((f = fopen("int_data.dat", "wb")) == NULL)
{
printf("Khong the mo file!.\n");
exit(0);
}
else
for(i = 1; i <= in; i++)
fwrite(&i, sizeof(int), 1, f);
fclose(f);
//Doc file
f = fopen("int_data.dat", "rb");
while(fread(&i, sizeof(int), 1, f) == 1)
printf("%d ", i);
fclose(f);
getch();
}

Hanoi Aptech Computer Education Center

//mo file

//ghi file
//dong file

Gio trnh Lp trnh C cn bn


F1 Help

Smith Nguyen Studio.

Alt-F8 Next Msg

Trang 110

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)

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

20
21
22
23
24
25
26
27
28
29
30
31
32
33 }

Smith Nguyen Studio.

Trang 111

printf("Khong the mo file!\n");


exit(0);
}
fwrite(ia, sizeof(ia), 1, f);
fclose(f);

//ghi mang vao file

f = fopen("array.dat", "rb");
fread(ib, sizeof(ib), 1, f);
for (i = 0; i < 10; i++)
printf("%d ", ib[i]);
fclose(f);
getch();

F1 Help

Alt-F8 Next Msg

//doc mang tu file

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

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 }

Smith Nguyen Studio.

Trang 112

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

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

11.3 Bi tp

Smith Nguyen Studio.

Trang 113

Thm chc nng ghi, c file cc bi tp ca bi Mng v chui, Cc d liu t to.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 12 :

Trang 114

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

Hanoi Aptech Computer Education Center

Alt - F9 Compile

F9 Make

F10 Menu

Smith Nguyen Studio.

Gio trnh Lp trnh C cn bn

Trang 115

) Kt qu in ra mn hnh

Th li chng trnh vi s liu khc.

Nhap vao so n: 5
5! = 120.
_

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)
5
4
3
2
1

return(in * giaithua(in 1))


5 * giaithua(4) = 5 * ?
4 * giaithua(3) = 4 * ?
3 * giaithua(2) = 3 * ?
2 * giaithua(1) = 2 * ?
1 * giaithua(0) = 1 * ?

Khi tham s in = 0 th return v gi tr 1L (gi tr 1 kiu long). Lc ny cc gi tr ?


bt u nh tr theo th t ngc li.
nh tr theo th t ngc li
giaithua(in)
1

return(in * giaithua(in 1))


1 * giaithua(0) = 1 * 1 =
1

2 * giaithua(1) = 2 *

1 =

3 * giaithua(2) = 3 *

2 =

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

Smith Nguyen Studio.

Gio trnh Lp trnh C cn bn

Trang 116

5!

5! =120

5 * 4!

5 * 4! = 120

4 * 3!

4 * 3! = 24

3 * 2!

3 * 2! = 6

2 * 1!

2 * 1! = 2

1 * 0!

1 * 0! = 1

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

) Kt qu in ra mn hnh
Nhap vao so n: 10
Fibonacci(10) = 55.

Th li chng trnh vi s liu khc.

Hanoi Aptech Computer Education Center

F9 Make

F10 Menu

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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

Smith
Nguyen Studio.
Bi 13 :

Trang 118

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
<========================>
E:\BORLANDC\BIN\NONAME00.CPP
Directory

Help

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 119

) 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

Home
End
PgUp (Page Up)
PgDn (Page Down)
Ctrl PgUp
Ctrl PgDn

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
Di chuyn con tr v u dng
Di chuyn con tr v cui dng
Lt li li mt trang mn hnh
Lt ti mt trang mn hnh
Di chuyn con tr v u tp tin
Di chuyn con tr v cui tp tin

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Backspace ()
Del (Delete)
Ins (Insert)
Enter

Smith Nguyen Studio.

Trang 120

Xa mt k t bn tri con tr
Xa mt k t ti v tr con tr
Chuyn i gia ch ghi chn v ghi
Xung mt dng

13.4.2 Cc phm thao tc trn khi


Phm / T hp phm
Shift
Shift
Shift
Shift
Shift Home
Shift End
Shift PgUp
Shift PgDn
Ctrl Shift
Ctrl Shift
Ctrl Shift End
Ctrl Shift Home

Chc nng
nh du chn mt k t bn phi
nh du chn mt k t bn tri
nh du chn mt hng trn v tr con tr
nh du chn mt hng ti v tr con tr
nh du chn t u hng n v tr con tr
nh du chn t v tr con tr n cui hng
nh du chn mt trang lui mn hnh
nh du chn mt trang ti mn hnh
nh du chn mt t bn tri
nh du chn mt t bn phi
nh du chn t v tr con tr n cui tp tin
nh du chn t v tr con tr n u tp tin

13.4.3 Cc thao tc xa
Phm
Backspace ()
Del (Delete)
Ctrl Y
Ctr K Y
Ctrl Q Y
Ctrl T
Insert

Chc nng
Xa mt k t bn tri con tr
Xa mt k t ti v tr con tr
Xa dng ti v tr con tr
Xa khi
Xa t v tr con tr n cui dng
Xa mt t ti v tr con tr
Bt / tt ch vit chn /

13.4.4 Cc thao tc copy, di chuyn


Phm / T hp phm
Ctrl Insert
Shift Delete
Ctrl Delete
Shift Insert
Ctrl K R
Ctrl K W

Chc nng
Sao chp khi chn vo Clipboard
Ct khi chn vo Clipboard
Xa khi chn
Dn thng tin t Clipboard vo v tr con tr
c thng tin t tp tin vo ca s son tho
Ghi thng tin t ca s son tho vo tp tin

13.4.5 Cc thao tc khc


Phm / T hp phm
F3

Chc nng
To tp tin mi hoc np tp tin t a vo ca s

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Alt F3
F2
F6
F5
Alt Backspace
Ctrl K H
Ctrl Q F
Ctrl L
Ctrl Q A
Ctrl Q [,
Ctrl Q ]
F1
Shift F1
Ctrl F1

Smith Nguyen Studio.

Trang 121

son tho
ng tp tin ti ca s hin hnh
Lu tp tin hin hnh
Chuyn i qua li gia cc ca s ang son tho
Chuyn i ca s son tho maximize restore
Phc hi li thao tc trc
n / hin du khi
Tm kim
Lp li ln tm kim sau cng
Tm kim v thay th
Xc nh cp ngoc bao 1 khi lnh

Gi gip
Hin ca s gip theo mc
Hin ca s gip v hm, ton t tung ng
ti v tr con tr.

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

Gio trnh Lp trnh C cn bn

13.9 Sa li c php

Smith Nguyen Studio.

Trang 122

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.

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

13.10.3 Dng ca s Watch

Smith Nguyen Studio.

Trang 123

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

Smith
Nguyen Studio.
Bi 14 :

Trang 124

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.
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 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 .
011012 : biu th s nh phn.
0828 : biu th s bt phn.
: biu th s thp lc phn.
2316
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 = anan-1 ... a1a0 = anbn + an-1bn-1 +... + a1b1 + a0b0

(*)

trong ,
- b
: l c s h m.
- a0an : l cc ch s trong mt h m.
- X
: l s thuc mt h m c s b.
Bng cc gi tr tng ng h thp phn, nh phn, bt phn, thp lc phn. (**)
Thp phn
0
1
2
3
4
5

Nh phn
0000
0001
0010
0011
0100
0101

Hanoi Aptech Computer Education Center

Bt phn
0
1
2
3
4
5

Thp lc phn
0
1
2
3
4
5

Gio trnh Lp trnh C cn bn


6
7
8
9
10
11
12
13
14
15

Smith Nguyen Studio.

Trang 125

0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

6
7
10
11
12
13
14
15
16
17

6
7
8
9
A
B
C
D
E
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 = 010112 , chuyn sang h 10 ta dng cng thc (*)


X = 0*24 + 1*23 + 0*22 + 1*21 + 1*20
= 0+8+0+2+1
= 11

V d 4:

X = 10110102, chuyn sang h 10 ta dng cng thc (*)


X = 1*26 + 0*25 + 1*24 + 1*23 + 0*22 + 1*21 + 0*20
= 64 + 0 + 16 + 8 + 0 + 2 + 0
= 90
Chuyn i t h 10 sang h 2
V d 5:

X = 11

11

chia

chia

chia

chia

kt qu h nh phn

10112
V d 6:

11

X = 90

90

45

22

11

1
1

1011010
Hanoi Aptech Computer Education
Center
2

10112
90

chia

45

chia

22

chia

11

chia

chia

chia

chia

kt qu h nh phn

10110102

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

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 = 21068 , chuyn sang h 10 ta dng cng thc (*)


X = 2*83 + 1*82 + 0*81 + 6*80
= 1024 + 64 + 0 + 6
= 1094

V d 8:

X = 1308 , chuyn sang h 10 ta dng cng thc (*)


X = 1*82 + 3*81 + 0*80
= 64 + 24 + 0
= 88

Chuyn i t h 10 sang h 8
V d 9:
1094
6

X = 1094
8
136

17

1094

chia

= 136

136

chia

17

17

chia

chia

kt qu h bt phn

21068

21068

V d 10: X = 88
88

11

1308

88

chia

11

11

chia

chia

kt qu h bt phn

1308

14.3.3 Chuyn i gia h 16 v h 10


Chuyn i t h 16 sang h 10
V d 11: X = F4016 , chuyn sang h 10 ta dng cng thc (*)
X = 15*162 + 4*161 + 0*160
= 3840 + 64 + 0
= 3904
V d 12: X = 1D16 , chuyn sang h 10 ta dng cng thc (*)
X = 1*161 + 13*160
Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 127

= 16 + 13
= 29

Chuyn i t h 10 sang h 16
V d 13: X = 3904
3904 16
0

3904

chia

16 = 244

244

chia

16 =

15

15

chia

16 =

244 16
4

15 16
15

F4016

d 15

kt qu h thp lc phn

F4016

29

chia

16 =

d 13

chia

16 =

S 15 tng ng
trong h 16 l F
(xem bng (**))

V d 14: X = 29
29 16
13

16

1D16

kt qu h thp lc phn

1D16

14.3.4 Chuyn i gia h 2 v h 16


Chuyn i t h 2 sang h 16
V d 15: X = 010112 , chuyn sang h 16 ta tra trong bng (**)
X = B16
Din gii : 0 10112
0 B16
= B16
V d 16: X = 10110102, chuyn sang h 16 ta tra trong bng (**)
X = 5A16
Din gii : 101 10102
5 A16
= 5A16
Chuyn i t h 16 sang h 2
V d 17: X = B16 , chuyn sang h 2 ta tra trong bng (**)
X = 10112
Din gii :
B16
10112
= 10112
V d 18: X = 5A16, chuyn sang h 2 ta tra trong bng (**)
X = 10110102
Din gii :
5
A16
0101 10102 = 10110102
Hanoi Aptech Computer Education Center

S 13 tng ng
trong h 16 l D
(xem bng (**))

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 15 :

Trang 128

BIU THC V PHP TON


15.1 Biu thc
L s phi hp ca nhng ton t v ton hng.
V d 1:
a+b
b = 1 + 5 * 2/i
a = 6 % (7 + 1)
x++ * 2/4 + 5 power(i, 2)
Ton hng s dng trong biu thc c th l hng s, bin, hm.
15.2 Php ton
Trong C c 4 nhm ton t chnh yu sau y:
15.2.1 Php ton s hc
+

*
/
%

:
:
:
:
:

cng
tr
nhn
chia
ly phn d

p dng trn tt c cc ton hng c kiu d liu char, int


float, double (k c long, short, unsigned)
p dng trn cc ton hng c kiu d liu char, int, long

* Th t u tin: o du +, ( ) *, / , %
+,
V d 2:
10%4 = 2 (10 chia 4 d 2); 9%3 = 0 (9 chia 3 d 0)
3 * 5 + 4 = 19
6+2/23=4
7 + 2 * ((4 + 3) * 4 + 8) = 65

) 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
V d 3:
4 > 10

Ton t quan h

c gi tr 0 (sai)

Hanoi Aptech Computer Education Center

Gio trnh Lp trnh C cn bn

4 >= 4
3 == 5
2 <= 1
6 != 4
63<4
2 * 4 < 3 + 2

Smith Nguyen Studio.

Trang 129

c gi tr 1 (ng)
c gi tr 0 (sai)
c gi tr 0 (sai)
c gi tr 1 (ng)
c gi tr 1 (ng), tng ng (6 3) < 4
c gi tr 0 (sai), tng ng (2 * 4) < (3 + 2)

15.2.3 Php ton lun l


! : NOT (php ph nh)
&& : AND (php v)
|| : OR (php hoc)
Ton hng a
Khc 0
Khc 0
Bng 0
Bng 0

Ton hng b
Khc 0
Bng 0
Khc 0
Bng 0

* Th t u tin: ! &&

!a
0 (sai)
0 (sai)
1 (ng)
1 (ng)

a && b
1 (ng)
0 (sai)
0 (sai)
0 (sai)

a || b
1 (ng)
1 (ng)
1 (ng)
0 (sai)

||

V d 4:
!(2 <= 1)
c gi tr 1 (ng)
5 && 10
c gi tr 1 (ng)
!6
c gi tr 0 (sai)
1 && 0
c gi tr 0 (sai)
1 || 0
c gi tr 1 (ng)
* Th t u tin gia cc ton t:
!

Ton t s hc

Ton t quan h

&&

||

15.2.4 Php ton trn bit (bitwise)


&
|
^
>>
<<
~

: v (AND)
: hoc (OR)
: hoc loi tr (XOR)
: dch phi
: dch tri
: o
Bit a
Bit b
0
0
1
0
0
1
1
1

~a
1
1
0
0

V d 5:
a = 13
i ra h nh phn
b = 10
i ra h nh phn
1101
1101
& 1010
| 1010
= 1000
= 1111
= 8
= 15
Hanoi Aptech Computer Education Center

a&b
0
0
0
1

a|b
0
1
1
1

a^b
0
1
1
0

1101
1010
1101
^ 1010
= 0111
= 7

(dng thp phn)

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 130

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=6i=i+3
i *= 3
i=9i=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
Tri sang phi
( ) [ ] ->
1
Phi sang tri
! ~ & * ++ (type) sizeof
2
Tri sang phi
* / %
3
Tri
sang phi
+

4
Tri sang phi
<< >>
5
Tri sang phi
< <= > >=
6
Tri sang phi
== !=
7
Tri sang phi
&
8
Tri sang phi
^
9
Tri sang phi
|
10
Tri sang phi
&&
11
Tri sang phi
||
12
Phi sang tri
? :
13
Phi sang tri
= += = *= /= %= <<= >>= &= ^= |=
14
Tri sang phi
,
15
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

Hanoi Aptech Computer Education Center

a * (a % b)

Gio trnh Lp trnh C cn bn

a/bc
a+c/a
a%b

Smith Nguyen Studio.

Trang 131

2 * b + 3 * (a c)
c * (b / a)
(a * b) % c

a * (b + (c 4 * 3))
5*a6/b
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
5 * y + 6 * (x z)
x/z
x%z

z / (y + x)
(z / y) + x
2*y/3*z
2 * y / (3 * z)

x/yz*y
2.5 * x / z (y + 6)
5 * 6 / ((x + y ) / 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)
x = (x + y * 1.2)
i=j
k = (x + y)
k=c
i = j = 1.1
z=k=x
k=z=x

z=i/j
a=b=d
y =x
x *= 2
i /= j
i += 2
z = (x >= 0) ? x : 0
z = (y >= 0) ? y : 0

Hanoi Aptech Computer Education Center

i %= j
i += (j 3)
k = (j = = 5) ? i : j
k = (j > 5) ? i : j
i += j *= i /= 2
a = (c < d) ? c : d
i = (j > 0) ? j : 0
i = (i*9*(3+(8*j/3)))

Gio trnh Lp trnh C cn bn

Smith
Nguyen Studio.
Bi 16 :

Trang 132

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

Gio trnh Lp trnh C cn bn

Smith Nguyen Studio.

Trang 133

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);
Chuyn chui s sang ch thng
V d: char *s = "Borland C";
s = strlwr(s);

) Phi khai bo string.h

//kt qu s = "borland c"

16.2.6 strupr
char *strupr(char *s);
Chuyn chui s sang ch hoa
V d: char *s = "Borland C";
s = strlwr(s);
Hanoi Aptech Computer Education Center

) Phi khai bo string.h

//kt qu s = "BORLAND C"

Gio trnh Lp trnh C cn bn

16.2.7 strlen

Smith Nguyen Studio.

int strlen(const char *s);


Tr v di chui s.
V d: char *s = "Borland C";
int len_s;
len_s = strlen(s);

Trang 134

) Phi khai bo string.h

//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
) Phi khai bo stblib.h

int random(int num);

Cho 1 gi tr ngu nhin t 0 n 32767


V d: int n;
randomize();
n = random(100);
//kt qu n = 1 con s trong khong 0..99
16.3.5 pow
double pow(double x, double y);
Tnh x m y
V d: double x = 2.0, y = 3.0, z;
z = pow(x, y);

) Phi khai bo math.h

//kt qu z = 8.0

16.3.6 sqrt
double sqrt(double x);
Tnh cn bc 2 ca x.
V d: double x = 4.0, y;
y = sqrt(x);

Hanoi Aptech Computer Education Center

) Phi khai bo math.h

//kt qu y = 2.0

Gio trnh Lp trnh C cn bn

16.4 Cc hm x l file

Smith Nguyen Studio.

Trang 135

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