Professional Documents
Culture Documents
Giao - Trinh - Lap - Trinh - C - Nguyen Son Ha PDF
Giao - Trinh - Lap - Trinh - C - Nguyen Son Ha PDF
MC LC
BI 1 : NGN NG LP TRNH & PHNG PHP LP TRNH ...................... 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
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
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
4.2 Ni dung.............................................................................................................................. 21
4.3 Bi tp................................................................................................................................. 25
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................................................................................................................................. 47
5.3.1 S dng lnh if ............................................................................................................... 47
5.3.2 S dng lnh switch ....................................................................................................... 48
5.4 Bi tp lm thm................................................................................................................ 49
6.2 Ni dung.............................................................................................................................. 50
6.2.1 Lnh for........................................................................................................................... 50
6.2.2 Lnh break...................................................................................................................... 55
6.2.3 Lnh continue................................................................................................................. 55
6.2.4 Lnh while....................................................................................................................... 55
6.2.5 Lnh dowhile .............................................................................................................. 57
6.2.6 Vng lp lng nhau ........................................................................................................ 59
6.2.7 So snh s khc nhau ca cc vng lp ....................................................................... 60
6.3 Bi tp................................................................................................................................. 60
BI 7 : HM.........................................................................................................63
7.2 Ni dung.............................................................................................................................. 63
7.2.1 Cc v d v hm............................................................................................................ 63
7.2.2 Tham s dng tham bin v tham tr........................................................................... 66
7.3 Bi tp................................................................................................................................. 69
8.2 Ni dung.............................................................................................................................. 70
8.2.1 Mng................................................................................................................................ 70
8.2.1.1 Cch khai bo mng............................................................................................... 70
8.2.1.2 Tham chiu n tng phn t mng .................................................................... 70
8.2.1.3 Nhp d liu cho mng .......................................................................................... 71
8.2.1.4 c d liu t mng ............................................................................................... 71
8.2.1.5 S dng bin kiu khc.......................................................................................... 72
8.2.1.6 K thut Sentinal.................................................................................................... 72
8.2.1.7 Khi to mng......................................................................................................... 73
8.2.1.8 Khi to mng khng bao hm kch thc.......................................................... 74
8.2.1.9 Mng nhiu chiu ................................................................................................... 74
8.2.1.10 Tham chiu n tng phn t mng 2 chiu ....................................................... 74
8.2.1.11 Nhp d liu cho mng 2 chiu ............................................................................. 75
8.2.1.12 c d liu t mng 2 chiu .................................................................................. 75
8.2.1.13 S dng bin kiu khc trong mng 2 chiu........................................................ 76
8.2.1.14 Khi to mng 2 chiu ........................................................................................... 76
8.2.1.15 Dng mng 1 chiu lm tham s cho hm ........................................................... 77
8.2.1.16 Dng mng 2 chiu lm tham s cho hm ........................................................... 80
8.2.2 Chui ............................................................................................................................... 82
8.2.2.1 Cch khai bo chui ............................................................................................... 82
8.2.2.2 Hm nhp (gets), xut (puts) chui....................................................................... 83
8.2.2.3 Khi to chui......................................................................................................... 84
8.2.2.4 Mng chui.............................................................................................................. 84
8.3 Bi tp................................................................................................................................. 85
BI 9 : CON TR ................................................................................................87
9.2 Ni dung.............................................................................................................................. 87
9.2.1 Con tr? .......................................................................................................................... 87
9.2.2 Khi bo bin con tr .................................................................................................... 87
9.2.3 Truyn a ch sang hm ............................................................................................... 88
9.2.4 Con tr v mng............................................................................................................. 89
9.2.5 Con tr tr n mng trong hm ................................................................................. 89
9.2.6 Con tr v chui............................................................................................................. 90
9.2.7 Khi to mng con tr tr n chui ........................................................................... 91
9.2.8 X l con tr tr n chui ........................................................................................... 92
9.2.9 Con tr tr n con tr.................................................................................................. 94
9.3 Bi tp................................................................................................................................. 95
10.2 Ni dung.............................................................................................................................. 96
10.2.1 Structure ......................................................................................................................... 96
10.2.1.1 Khai bo kiu structure ......................................................................................... 96
10.2.1.2 Cch khai bo bin c kiu structure ................................................................... 96
10.2.1.3 Tham chiu cc phn t trong structure.............................................................. 96
10.2.1.4 Khi to structure .................................................................................................. 98
10.2.1.5 Structure lng nhau................................................................................................ 99
10.2.1.6 Truyn structure sang hm ................................................................................. 100
10.2.2 Enum ............................................................................................................................. 102
10.2.2.1 nh ngha kiu enum .......................................................................................... 102
10.2.2.2 Cch khai bo bin c kiu enum ....................................................................... 102
10.2.2.3 S dng enum trong chng trnh .....................................................................103
BI 11 : TP TIN .................................................................................................106
BI 12 : QUY .................................................................................................110
BI 14 : CC H M ........................................................................................120
Bi 1 :
NGN NG LP TRNH & PHNG PHP LP TRNH
1.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha, cc bc lp trnh.
- Xc nh d liu vo, ra.
- Phn tch cc bi ton n gin.
- Khi nim so snh, lp.
- Th hin bi ton bng lu .
1.2 L thuyt
D liu vo (Input)
X l (Process)
D liu ra (Output)
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
B ng vo Kt qu lng Nghim x
C ph sn sng
Kt thc
a, b S a, S b
c=a+b
S a c bng Khng
S b khng?
c
C
Kt thc S a bng S b S a khng bng S b
V d 11: Kim tra tnh hp l ca im
Bt u Kt thc
C 1 Lon
im hp l im khng hp l
Thm 1 Lon vo thng
Kt thc
Cha
Thng = 24 Lon?
V d 13: Kim tra loi s
Bng
Bt u
Kt thc
S
V d 14: Kim tra tnh hp l ca im
C Bt u
S > 0 ? S dng
Khng
im
C
S < 0 ? S m
Khng Sai im >=0 v
im <=10 ?
S khng
ng
Kt thc Kt thc
Trng TH GII TIN HC 39 Nguyn Sn H, P5, Q3 T: 8.344.480 Website: www.infoworldschool.com
Gio trnh Lp trnh C cn bn Trang 11
# Bi tp
V lu cho cc chng trnh sau:
1. i t tin VND sang tin USD.
2. Tnh im trung bnh ca hc sinh gm cc mn Ton, L, Ha.
3. Gii phng trnh bc 2: ax2 + bx + c = 0
4. i t sang radian v i t radian sang
(cng thc / = a/180, vi : radian, a: )
5. Kim tra 2 s a, b ging nhau hay khc nhau.
Bi 2 :
LM QUEN LP TRNH C QUA CC V D N GIN
2.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- Ngn ng C.
- Mt s thao tc c bn ca trnh son tho C.
- Cch lp trnh trn C.
- Tip cn mt s lnh n gin thng qua cc v d.
- Nm bt c mt s k nng n gin.
2.2 Ni dung
2.2.1.1 Khi ng
Nhp lnh ti du nhc DOS: g BC (Enter) (nu ng dn c ci t bng lnh
path trong c cha ng dn n th mc cha tp tin BC.EXE). Nu ng dn cha c
ci t ta tm xem th mc BORLANDC nm a no. Sau ta g lnh sau:
< a>:\BORLANDC\BIN\BC (Enter)
Nu bn mun va khi ng BC va son tho chng trnh vi mt tp tin c tn do
chng ta t, th g lnh: BC [ng dn]<tn file cn son tho>, nu tn file cn son tho
c th c np ln, nu cha c s c to mi.
Khi ng ti Windows: Bn vo menu Start, chn Run, bn g vo hp Open 1 trong
cc dng lnh nh nhp ti DOS. Hoc bn vo Window Explorer, chn a cha th mc
BORLANDC, vo th mc BORLANDC, vo th mc BIN, khi ng tp tin BC.EXE.
V d: Bn g D:\BORLANDC\BIN\BC E:\BAITAP_BC\VIDU1.CPP
Cu lnh trn c ngha khi ng BC v np tp tin VIDU1.CPP cha trong th mc
BAITAP_BC trong a E. Nu tp tin ny khng c s c to mi.
Mn hnh sau khi khi ng thnh cng
File Edit Search Run Compile Debug Project Option Window Help
[] NONAME00.CPP 1 []
Thanh Menu
Hp ng Tn tp tin S ca ca s
Hp ni rng ca s
* 1:1
F1 Help F2 Save F3 Open Alt - F9 Compile F9 Make F10 Menu
2.2.2.1 V d 1
Dng File Edit Search Run Compile Debug Project Option Window Help
1 /* Chuong trinh in ra cau bai hoc C dau tien */
2 #include <stdio.h>
3
4 void main(void)
5 {
6 printf("Bai hoc C dau tien.");
7 }
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.
+ Cc k t iu khin:
\n : Nhy xung dng k tip canh v ct u tin.
\t : Canh ct tab ngang.
\r : Nhy v u hng, khng xung hng.
\a : Ting ku bip.
+ Cc k t c bit:
\\ : In ra du \
\" : In ra du "
\' : In ra du '
By gi bn sa li dng th 6 bng cu lnh printf("\tBai hoc C dau tien.\a\n");, sau
dch v chy li chng trnh, quan st kt qu.
) Kt qu in ra mn hnh
Bai hoc C dau tien.
_
Khi chy chng trnh bn nghe ting bip pht ra t loa.
Mi khi chy chng trnh bn thy rt bt tin trong vic xem kt qu phi n t hp
phm Alt F5. khc phc tnh trng ny bn sa li chng trnh nh sau:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 /* Chuong trinh in ra cau bai hoc C dau tien */
2 #include <stdio.h>
3 #include <conio.h>
4
5 void main(void)
6 {
7 printf("\t\tBai hoc C \rdau tien.\n");
8 getch();
9 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
dau tien. Bai hoc C
_
Dng th 3: cha pht biu tin x l #include <conio.h>. V trong chng trnh ny ta
s dng hm th vin ca C l getch, do bn cn phi c khai bo ca hm th vin ny
bo cho trnh bin dch C bit. Nu khng khai bo chng trnh s bo li.
Dng th 8: getch();, ch nhn 1 k t bt k t bn phm, nhng khng in ra mn hnh.
V th ta s dng hm ny khi chy chng trnh xong s dng li mn hnh kt qu, sau
ta n phm bt k s quay li mn hnh son tho.
) 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.
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
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.
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
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.
Bi 4 :
NHP / XUT D LIU
4.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha, cch s dng hm printf, scanf
- S dng khun dng, k t c bit, k t iu khin trong printf, scanf.
4.2 Ni dung
4.2.1 Hm printf
Kt xut d liu c nh dng.
C php
printf ("chui nh dng"[, i mc 1, i mc 2,]);
) Khi s dng hm phi khai bo tin x l #include <stdio.h>
- printf: tn hm, phi vit bng ch thng.
- i mc 1,: l cc mc d kin cn in ra mn hnh. Cc i mc ny c th l bin,
hng hoc biu thc phi c nh tr trc khi in ra.
- chui nh dng: c t trong cp nhy kp (" "), gm 3 loi:
+ i vi chui k t ghi nh th no in ra ging nh vy.
+ i vi nhng k t chuyn i dng thc cho php kt xut gi tr ca cc i mc
ra mn hnh tm gi l m nh dng. Sau y l cc du m t nh dng:
%c : K t n
%s : Chui
%d : S nguyn thp phn c du
%f : S chm ng (k hiu thp phn)
%e : S chm ng (k hiu c s m)
%g : S chm ng (%f hay %g)
%x : S nguyn thp phn khng du
%u : S nguyn hex khng du
%o : S nguyn bt phn khng du
l : Tin t dng km vi %d, %u, %x, %o ch s nguyn di (v d %ld)
+ Cc k t iu khin v k t c bit
\n : Nhy xung dng k tip canh v ct u tin.
\t : Canh ct tab ngang.
\r : Nhy v u hng, khng xung hng.
\a : Ting ku bip.
\\ : In ra du \
\" : In ra du "
\' : In ra du '
%%: In ra du %
V d 1: printf("Bai hoc C dau tien. \n");
k t iu khin
chui k t
) Kt qu in ra mn hnh
Bai hoc C dau tien.
_
V d 3: gi s bin i c gi tr = 5
xut gi tr bin i
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
) Kt qu in ra mn hnh
Tong cua 2 so 7 va 4 la 11.
_
2 k t (mc d nh dng l 1)
3 k t
5 k t
V d 6: sa li v d 5
printf("%7d%7d%7d.\n", a, b, c);
printf("%7d%7d%7d.\n", 165, 2, 965);
) Kt qu in ra mn hnh
6 1234 62 S canh v bn phi b rng trng.
165 2 965
_
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 S canh v bn tri b rng trng.
165 2 965
_
printf("%7.2d%7.2d%7.2d.\n", a, b, c);
s s l
) Kt qu in ra mn hnh
6.40 1234.56 62.30 S canh v bn phi b rng trng.
_
7 k t
) B rng trng bao gm: phn nguyn, phn l v du chm ng
V d 10: gi s float a = 6.4, b = 1234.55, c = 62.34
printf("%10.1d%10.1d%10.1d.\n", a, b, c);
printf("%10.1d%10.1d%10.1d.\n", 165, 2, 965);
) Kt qu in ra mn hnh
6.4 1234.6 62.3 S canh v bn phi b rng trng.
165.0 2.0 965.0
_
printf("%-10.2d%-10.2d%-10.2d.\n", a, b, c);
printf("%-10.2d%-10.2d%-10.2d.\n", 165, 2, 965);
) Kt qu in ra mn hnh
6.40 1234.55 62.34 S canh v bn tri b rng trng.
165.00 2.00 965.00
_
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.
Bi 5 :
CU TRC R NHNH C IU KIN
(Cu trc chn)
5.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha lnh, khi lnh.
- C php, ngha, cch s dng lnh if, lnh switch.
- Mt s bi ton s dng lnh if, switch thng qua cc v d.
- So snh, nh gi mt s bi ton s dng lnh if hoc switch.
- Cch s dng cc cu trc lng nhau.
5.2 Ni dung
5.2.1.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)
Ra
Nhp a, b
max = a
Sai
b>a
ng
max = b
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 Cho chy li chng trnh v th li vi:
Nhap vao so b : 8 a = 7, b = 9
So lon nhat = 10. 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
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. M t bng lu
Bt u
Nhp a, b
Sai
a>b
ng
tam = a
a=b
b = tam
In a, b
Kt thc
#include <stdio.h>
#include <conio.h>
void main(void)
{
int ia, ib, itam;
printf("Nhap vao so a: ");
scanf("%d", &ia);
printf("Nhap vao so b: ");
scanf("%d", &ib);
if (biu thc lun l) ) t kha if, else phi vit bng ch thng
khi lnh 1; ) kt qu ca biu thc lun l phi l
else ng ( 0) hoc sai (= 0)
khi lnh 2;
Lu
Vo
) nu biu thc lun l ng th
thc hin khi lnh 1 v thot khi if
Sai
bthc lun l ngc li
thc hin khi lnh 2 v thot khi if.
ng
khi lnh 1 khi lnh 2
# Nu khi lnh 1, khi lnh 2 bao gm t 2
lnh tr ln th phi t trong du { }
Ra
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 Cho chy li chng trnh v th li vi:
Nhap vao so b : 8 a = 6, b = 6
a khac b. a = 1, b = 5
_ 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
Trng TH GII TIN HC 39 Nguyn Sn H, P5, Q3 T: 8.344.480 Website: www.infoworldschool.com
Gio trnh Lp trnh C cn bn Trang 32
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".
Nhp c
Sai
c >= 'a' v c <= 'z'
ng
c = c 32
Kt thc
if (biu thc lun l 1) ) t kha if, else if, else phi vit bng ch thng
khi lnh 1; ) kt qu ca biu thc lun l 1, 2..n phi l
else if (biu thc lun l 2) ng ( 0) hoc sai (= 0)
khi lnh 2;
else if (biu thc lun l n-1) # Nu khi lnh 1, 2n bao gm t 2 lnh
khi lnh n-1; tr ln th phi t trong du { }
else
khi lnh n;
ng Sai
BTLL n-1
ng
khi lnh 1 khi lnh 2 khi lnh n-1 khi lnh n
Ra
Trng TH GII TIN HC 39 Nguyn Sn H, P5, Q3 T: 8.344.480 Website: www.infoworldschool.com
Gio trnh Lp trnh C cn bn Trang 34
V d 7: Vit chng trnh nhp vo 2 s nguyn a, b. In ra thng bo "a ln hn b" nu
a>b, in ra thng bo "a nh hn b" nu a<b, in ra thng bo "a bng b" nu a=b.
a. Phc ha li gii
Trc tin so snh a vi b. Nu a > b th in ra thng bo "a ln hn b", ngc li nu a < b
th in ra thng bo "a nh hn b", ngc vi 2 trng hp trn th in ra thng bo "a bng b".
b. M t quy trnh thc hin (gii thut)
Ngn ng t nhin Ngn ng C
- Khai bo 2 bin a, b kiu s nguyn - int ia, ib;
- Nhp vo gi tr a - printf("Nhap vao so a: ");
scanf("%d", &ia);
- Nhp vo gi tr b - printf("Nhap vao so b: ");
scanf("%d", &ib);
- Nu a > b th - if (ia > ib)
in ra thng bo "a ln hn b" printf("a lon hon b.\n");
Ngc li Nu a < b th else if (ia < ib)
in ra thng bo "a nh hn b" printf("a nho hon b.\n");
Ngc li th else
in ra thng bo "a bng b" printf("a bang b.\n");
c. M t bng lu
Bt u
Nhp a, b
Sai Sai
a>b a<b
ng ng
"a lon hon b" "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)
{
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)
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 Cho chy li chng trnh v th li vi:
Nhap vao so b : 7 a = 8, b = 4
a nho hon b 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".
Nhp c
Sai
c >= 'a' v c <= 'z'
ng
c = c 32 Sai
c >= 'A' v c <= 'Z'
ng
Ki tu hoa = c
c = c + 32 Sai
c >= '0' v c <= '9'
Ki tu thuong=c ng
Ktu nhap la so c Ban da nhap ktu c
Kt thc
#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 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);
Nhp diem
diem >= 0 ng
v diem <= 10
Sai
diem >=9
Sai Sai
diem >=8
ng
Sai
diem >=7
ng
Sai
diem >=6
ng
Sai
diem >=5
ng
ng
diem khong hop le Xuat sac Gioi Kha TBKha TBinh Yeu
Kt thc
#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 Cho chy li chng trnh v th li vi:
Xep loai = TBKha. diem = 4, diem = 9, diem = 7, diem = 12
_ Quan st v nhn xt kt qu
e. Bn thm v chng trnh
Trong chng trnh trn cu trc else if c lng vo trong cu trc 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.
Nhp a, b, c
Sai ng
a>b
Sai ng Sai ng
b>c a>c
Kt thc
#include <stdio.h>
#include <conio.h>
void main(void)
{
int ia, ib, ic;
printf("Nhap vao so a: ");
C
break ?
Khng
ng
= gi tr 2 ? lnh 2
C
break ?
Khng
ng
= gi tr n ? lnh n
C
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: ");
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
Trng TH GII TIN HC 39 Nguyn Sn H, P5, Q3 T: 8.344.480 Website: www.infoworldschool.com
Gio trnh Lp trnh C cn bn Trang 43
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:
case 9: printf("Quy 3.\n");
break;
case 10:
case 11:
case 12:printf("Quy 4.\n");
break;
};
else
printf("Thang khong hop le.\n");
getch();
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
Nhap vao thang: 4 Cho chy li chng trnh v th li vi:
Quy 2. thang = 7, thang = 1, thang = 13, thang = -4
_ Quan st v nhn xt kt qu
Lu
) Khi gi tr ca biu thc bng gi tr i th lnh
Vo
i s c thc hin. Nu sau lnh i khng c
lnh break th s tip tc thc hin lnh i +
Biu thc 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
ng
= gi tr 1 ? lnh 1 s c thc hin.
C
break ?
Khng
ng
= gi tr 2 ? lnh 2
C
break ?
Khng
ng
= gi tr n ? lnh n
C
break ?
Khng
gi tr 1, 2 n lnh n
C
break ?
Khng
Ra
#include <stdio.h>
#include <conio.h>
void main(void)
{
int i;
printf("Nhap vao so 1, 2 hoc 3: ");
scanf("%d", &i);
switch(i)
{
case 3: printf("*");
case 2: printf("*");
case 1: printf("*");
break;
default: printf("Ban nhap phai nhap vao so 1, 2 hoac 3.\n");
};
getch();
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
Nhap vao so 1, 2 hoc 3: 3 Cho chy li chng trnh v th li vi:
*** i = 1, i = 3, i = 0, i = 4
_ Quan st kt qu
b. Bn thm v chng trnh
Trong chng trnh trn. Nu bn nhp vo 1, 2, 3 s in ra s sao tng ng. Ngoi cc s
ny chng trnh s in ra cu thng bo "Bn phi nhp vo s 1, 2 hoc 3".
V d 15: Vit li chng trnh V d 13
a. Vit chng trnh
File Edit Search Run Compile Debug Project Option Window Help
/* Chuong trinh nhap vao thang. In ra quy tuong ung */
#include <stdio.h>
#include <conio.h>
void main(void)
{
int ithang;
printf("Nhap vao thang: ");
scanf("%d", &ithang);
switch(ithang)
{
#include <stdio.h>
#include <conio.h>
void main(void)
{
int imenu, isubmenu;
printf("-------------------------\n");
printf(" MAIN MENU \n");
printf("-------------------------\n");
printf("1. File\n");
Bi 6 :
CU TRC VNG LP
6.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha, cch hot ng ca vng lp.
- C php, ngha, cch s dng lnh for, while, dowhile.
- ngha v cch s dng lnh break, continue.
- Mt s bi ton s dng lnh for, while, dowhile thng qua cc v d.
- So snh, nh gi mt s bi ton s dng lnh for, while hoc dowhile.
- Cu trc vng lp lng nhau.
6.2 Ni dung
Lu
Vo
) kim tra iu kin
nu ng ng th
Sai thc hin khi lnh;
iu kin
lp li kim tra iu kin
ng nu sai
thot khi vng lp.
khi lnh
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 (;)
+ 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.
Trng TH GII TIN HC 39 Nguyn Sn H, P5, Q3 T: 8.344.480 Website: www.infoworldschool.com
Gio trnh Lp trnh C cn bn Trang 51
+ 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 /* Chuong trinh in ra cau "Vi du su dung vong lap for" 3 lan */
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 #define MSG "Vi du su dung vong lap for.\n"
7
8 void main(void)
9 {
10 int i;
11 for(i = 1; i<=3; i++) /hoac for(i = 1; i<=3; i+=1)
12 printf("%s", MSG);
13 getch();
14 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
Vi du su dung vong lap for. Bn thay 2 dng 11 v 12 bng cu lnh
Vi du su dung vong lap for. for(i=1; i<=3; i++, printf("%s", MSG));
Vi du su dung vong lap for. 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 /* Chuong trinh nhap vao 3 so va tinh tong */
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 void main(void)
7 {
8 int i, in, is;
9 is = 0;
10 for(i = 1; i<=3; i++)
11 {
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 /* Chuong trinh in ra cau "Vi du su dung vong lap while" 3 lan */
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 #define MSG "Vi du su dung vong lap while.\n"
7
8 void main(void)
9 {
10 int i = 0;
11 while (i++ < 3)
12 printf("%s", MSG);
13 getch();
14 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
Vi du su dung vong lap while. Bn thay 2 dng 11 v 12 bng cu lnh
Vi du su dung vong lap while. while(printf("%s", MSG), ++i < 3);
Vi du su dung vong lap while. 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.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 /* Chuong trinh tnh tong cac so nguyen tu 1 den n */
2
3 #include <stdio.h>
4 #include <conio.h>
5
Trng TH GII TIN HC 39 Nguyn Sn H, P5, Q3 T: 8.344.480 Website: www.infoworldschool.com
Gio trnh Lp trnh C cn bn Trang 57
6 void main(void)
7 {
8 int i = 0, in, is = 0;
9 printf("Nhap vao so n: ");
10 scanf("%d", &in);
11 while (i++ < in)
12 is = is + i; //hoac is += i;
13 printf("Tong: %d", is);
14 getch();
15 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
Nhap vao so n : 5 Bn thay cc dng t 11 n 12 bng cu lnh:
Tong: 15. while(is = is+i, i++ < in);
_ Chy li chng trnh, quan st v nhn xt kt qu.
V d 13: Thay dng for(; (c = getchar()) != DAU_CHAM; ) v d 5 thnh dng while
((c = getchar()) != DAU_CHAM)
) Chy li chng trnh, quan st v nhn xt kt qu.
V d 14: v d 6, thay dng int dem; thnh dng int dem = 0; , thay dng for(idem=0;
(c = getchar()) != DAU_CHAM; ) thnh dng while ((c = getchar()) != DAU_CHAM)
) Chy li chng trnh, quan st v nhn xt kt qu.
V d 15: v d 7 v 8, thay dng for( ; ; ) thnh dng while(1)
) Chy li chng trnh, quan st v nhn xt kt qu.
6.2.5 Lnh dowhile
Vng lp thc hin lp li cho n khi biu thc sai.
C php lnh
do
khi lnh;
while (biu thc);
) t kha do, while phi vit bng ch thng
# Nu khi lnh bao gm t 2 lnh tr ln th phi t trong du { }
Lu
Vo
) Thc hin
khi lnh
khi lnh Kim tra biu thc
Nu ng th
ng lp li thc hin khi lnh
biu thc
Nu sai th
kt thc vng lp
Sai
(khi lnh c thi hnh 1 ln)
Ra
Bi 7 :
HM
7.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- Khi nim, cch khai bo v hm.
- Cch truyn tham s, tham bin, tham tr.
- S dng bin cc b, ton cc trong hm.
- S dng tin x l #define
7.2 Ni dung
Hm l mt chng trnh con thc hin mt khi cng vic c lp i lp li nhiu ln trong
khi chy chng trnh hoc dng tch mt khi cng vic c th chng trnh phc tp.
7.2.1 Cc v d v hm
V d 1:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 #include <stdio.h>
2 #include <conio.h>
3
4 // khai bao prototype
5 void line();
6
7 // ham in 1 dong dau
8 void line()
9 {
10 int i;
11 for(i = 0; i < 19; i++)
12 printf("*");
13 printf("\n");
14 }
15
16 void main(void)
17 {
18 line();
19 printf("* Minh hoa ve ham *");
20 line();
21 getch();
22 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
*****************
* Minh hoa ve ham *
*****************
_
void main(void)
{ gi thc hin hm line void line()
line(); {
printf("* Minh hoa ve ham *"); int i;
line(); for(i = 0; i < 19; i++)
getch(); printf("*");
} quay v chng trnh chnh printf("\n");
thc hin lnh k tip }
Dng File Edit Search Run Compile Debug Project Option Window Help
1 #include <stdio.h>
2 #include <conio.h>
3
4 // khai bao prototype
5 int power(int, int);
6
7 // ham tinh so mu
8 int power(int ix, int in)
9 {
10 int i, ip = 1;
11 for(i = 1; i <= in; i++)
12 ip *= ix;
13 return ip;
14 }
15
16 void main(void)
17 {
18 printf("2 mu 2 = %d.\n", power(2, 2));
19 printf("2 mu 3 = %d.\n", power(2, 3));
20 getch();
}
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
2 mu 2 = 4.
2 mu 3 = 8.
_
void main(void)
{ gi thc hin hm power
printf("2 mu 2 = %d.\n", power(2, 2)); int power(int ix, int in)
{
printf("2 mu 3 = %d.\n", power(2, 3)); int i, ip = 1;
getch(); for(i = 1; i <= in; i++)
} quay v chng trnh ip *= ix;
chnh thc hin lnh k return ip;
tip }
V d 6:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 #include <stdio.h>
2 #include <conio.h>
3
4 #define PI 3.14
5
6 // khai bao prototype
7 float area();
8
9 //khai bao bien toan cuc
10 float frad;
11
12 void main(void)
13 {
14 printf("Nhap vao ban kinh hinh cau : ");
15 scanf("%f", &frad);
16 printf("Dien tich hinh cau: %10.3f.\n", area());
17 getch();
18 }
19
20 // ham tinh dien tich hinh cau
21 float area()
22 {
23 return (4*PI*frad*frad);
24 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
Nhap vao ban kinh hinh cau: 3.2
Dien tich hinh cau: 128.614
_
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.
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.
ia
10 phn t
8.2.1.2 Tham chiu n tng phn t mng
Sau khi mng c khai bo, mi phn t trong mng u c ch s tham chiu. Ch
s bt u t 0 n n-1 (vi n l kch thc mng). Trong v d trn, ta khai bo mng 10 phn
t th ch s bt u t 0 n 9.
0 1 2 3 4 5 6 7 8 9
ia
ia[2] ia[7]
ia[2], ia[7] l phn t th 3, 8 trong mng xem nh l mt bin kiu int.
) Kt qu in ra mn hnh
Nhap vao phan tu thu 1: 1.2 Bn chy li chng trnh v th li vi s liu khc.
Nhap vao phan tu thu 2: 3 Quan st kt qu.
Nhap vao phan tu thu 3: 4.6
Nhap vao phan tu thu 4: -9
Tong : 8.80
_
) 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.
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 0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
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
1 /* Chuong trinh ve chu H lon */
2
3 #include <stdio.h>
4 #include <conio.h>
5 #define MAX 5
6
7 int H[MAX][MAX] = {{1, 0, 0, 0, 1},
8 {1, 0, 0, 0, 1},
9 {1, 1, 1, 1, 1},
10 {1, 0, 0, 0, 1},
0 1 2
0
1*3+2
1
2*3+1
2
) Ging nh mng 1 chiu khi truyn mng 2 chiu sang hm cng khng to bn
sao mi.
8.2.2 Chui
Chui c xem nh l mt mng 1 chiu gm cc phn t c kiu char nh mu t, con s
v bt c k t c bit nh +, -, *, /, $, #
Theo quy c, mt chui s c kt thc bi k t null ('\0' : k t rng).
V d: chui "Infoworld" c lu tr nh sau:
I n f o w o r l d \0
K t kt thc chui
8.2.2.1 Cch khai bo chui
V d 17 : char cname[30];
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 /* Chuong trinh nhap va in ra ten*/
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 void main(void)
7 {
8 char cname[30];
9 printf("Cho biet ten cua ban: ");
10 scanf("%s", cname);
Trng TH GII TIN HC 39 Nguyn Sn H, P5, Q3 T: 8.344.480 Website: www.infoworldschool.com
Gio trnh Lp trnh C cn bn Trang 83
11 printf("Chao ban %s\n", cname);
12 getch();
13 }
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 Chy li chng trnh v th nhp tn: Mai Lan, Thanh Nhi
Chao ban Minh 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.
Bi 9 :
CON TR
9.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha, cch khai bo con tr
- S dng con tr trong mng, chui
- Truyn mng v chui gia cc hm qua con tr
- X l mng d dng qua con tr
9.2 Ni dung
a ch vng nh
2015
2016
2017 *px l ni dung ca px v *py l ni dung
1203 px
2018 ca py. Nn khi thc hin 2 php cng gn
2019 *px += 10 v *py += 10 th gi tr ca ix
1207 py
2020 s l 16 v gi tr iy s l 17.
2021
2022
9.2.3 Truyn a ch sang hm
V d 2:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 /* Khoi tao 2 so */
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 void init (int, int);
7
8 void main(void)
9 {
10 int ix, iy;
11 init(&ix, &iy);
12 printf("x = %d, y = %d\n", ix, iy);
13 getch();
14 }
15
16 void init(int *px, int *py)
17 {
18 *px = 3; //gan 3 cho noi dung cua px
19 *py = 5; //gan 5 cho noi dung cua py
20 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
x = 3, y = 5 Chy chng trnh v quan st kt qu.
_
iarray 245
12
246
iarray + 1 247
ptr 247 5
248
iarray + 2 249
6
250
iarray + 3 251
9
252
9.2.6 Con tr v chui
V d 5:
Dng File Edit Search Run Compile Debug Project Option Window Help
1 /* Chuong trinh nhap va in ra ten*/
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 void main(void)
7 {
8 char *cgreeting = "Chao ban";
9 char cname[30];
10 puts("Cho biet ten cua ban: ");
11 gets(cname);
12 puts(cgreeting);
13 puts(cname);
14 getch();
15 }
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: Chy chng trnh v quan st kt qu.
Minh
Chao ban
Minh
_
) Kt qu in ra mn hnh
20 22 24 26 28 Chy chng trnh v quan st kt qu.
21 23 25 27 29
30 32 34 36 38
31 33 35 37 39
_
) 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.
Bi 10 :
CC KIU D LIU T TO
10.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha, cch khai structure, emum
- Nhp, xut structure.
- Khi to structure, enum
- Mt s k thut thao tc trn structure, enum
- Dng struct tham s cho hm.
10.2 Ni dung
10.2.1 Structure
i vi mng, ch c th lu nhiu thng tin c cng kiu d liu. Nhng vi structure ta c
th lu thng tin nh mt mng c nhiu kiu d liu khc nhau.
10.2.1.1 Khai bo kiu structure
V d 1: khai bo mt structure v thng tin nhn vin
t kha tn struct
struct nhanvien
{
Cc thnh int manv; cc phn t ca struct
phn c char hoten[30];
bc trong mc };
du chm phy kt thc struct
nhanvien int manv char hoten[30]
V d trn nh ngha kiu d liu mi c tn l struct nhanvin. Mi bin kiu ny gm 2
phn t: bin nguyn c tn l manv v bin chui c tn hoten.
) struct phi vit bng ch thng
10.2.1.2 Cch khai bo bin c kiu structure
V d 2: struct nhanvien nv; hoc nhanvien nv;
Khai bo bin nv c kiu struct nhanvien
) va to structure nhanvien va khai bo bin nv
struct nhanvien
{
int manv;
char hoten[30];
} nv;
10.2.1.3 Tham chiu cc phn t trong structure
nv manv hoten[30]
nv.manv nv.hoten
tham chiu n manv trong nv ta vit nh sau: nv.manv (l bin c kiu int)
cc gi tr lit k
cc gi tr c bc trong mc
Cc tn th (SUN, MON SAT) trong day s c nh s ln lt t 0 n 6 (SUN
l 1, MON l 2 SAT l 6). Nu bn mun bt u bng gi tr khc th gn gi tr mong mun
vo v tr k tip s tng ln 1.
) enum phi vit bng ch thng
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;
Bi 11 :
TP TIN
11.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha ca vic s dng tp tin (file)
- M, ng file
- Ghi, c file s nguyn, mng, chui.
- Mt s hm x l tp tin.
11.2 Ni dung
) Kt qu in ra mn hnh
Nhap vao so n: 10 Chy v th li chng trnh vi d liu khc.
1 2 3 4 5 6 7 8 9 10 Quan st kt qu.
_
Bi 12 :
QUY
12.1 Mc tiu
Sau khi hon tt bi ny hc vin s hiu v vn dng cc kin thc k nng c bn sau:
- ngha, phng php hot ng ca quy.
- C th thay vng lp bng quy.
12.2 Ni dung
Bt c mt hm no c th triu gi hm khc, nhng y mt hm no c th t
triu gi chnh mnh. Kiu hm nh th c gi l hm quy.
Phng php quy thng dng ph bin trong nhng ng dng m cch gii quyt c th
c th hin bng vic p dng lin tip cng gii php cho nhng tp hp con ca bi ton.
V d 1: tnh n!
n! = 1*2*3**(n-2)*(n-1)*n vi n >= 1 v 0! = 1.
Dng File Edit Search Run Compile Debug Project Option Window Help
1 /* Ham tinh giai thua */
2
3 #include <stdio.h>
4 #include <conio.h>
5
6 void main(void)
7 {
8 int in;
9 long giaithua(int);
10 printf("Nhap vao so n: ");
11 scanf("%d", &in);
12 printf("%d! = %ld.\n", in, giaithua(in));
13 getch();
14 }
15
16 long giaithua(int in)
17 {
18 int i;
19 long ltich = 1;
20 if (in == 0)
21 return (1L);
22 else
23 {
24 for (i = 1; i <= in; i++)
25 ltich *= i;
26 return (ltich);
27 }
28 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Kt qu in ra mn hnh
Nhap vao so n: 5 Th li chng trnh vi s liu khc.
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 /* Ham tinh giai thua */
2
3 long giaithua(int in)
4 {
5 int i;
6 if (in == 0)
7 return (1L);
8 else
9 return (in * giaithua(in 1));
10 }
F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu
) Chy li chng trnh, quan st, nhn xt v nh gi kt qu
) Gii thch hot ng ca hm quy giaithua
V d gi tr truyn vo hm giaithua qua bin in = 5.
Th t gi thc hin hm giaithua
giaithua(in) return(in * giaithua(in 1))
5 5 * giaithua(4) = 5 * ?
4 4 * giaithua(3) = 4 * ?
3 3 * giaithua(2) = 3 * ?
2 2 * giaithua(1) = 2 * ?
1 1 * giaithua(0) = 1 * ?
Khi tham s in = 0 th return v gi tr 1L (gi tr 1 kiu long). Lc ny cc gi tr ?
bt u nh tr theo th t ngc li.
nh tr theo th t ngc li
giaithua(in) return(in * giaithua(in 1))
1 1 * giaithua(0) = 1 * 1 = 1
2 2 * giaithua(1) = 2 * 1 = 2
3 3 * giaithua(2) = 3 * 2 = 6
4 4 * giaithua(3) = 4 * 6 = 24
5 5 * giaithua(4) = 5 * 24 = 120
Kt qu sau cng ta c 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
Bi 13 :
TRNH SON THO CA BORLAND C
BC c h thng menu nhiu cp. chn mt mc trong Menu bn n phm F10 (kch hot
Menu), dng cc phm mi tn di chuyn vt sng n mc mun chn n Enter hoc n phm c k
t i mu (phm chn nhanh mu ). C th chn nhanh mc menu trn thanh menu chnh bn n
t hp phm Alt + phm c k t mu . V d: n t hp phm Alt + F kch hot menu File.
13.1 M tp tin son tho mi
Chn menu File -> chn mc New -> to file son tho mi c tn mc nh l
NONAME00.CPP, NONAME01.CPP ty theo s ln mc New c chn.
13.2 Lu tp tin
Save File As
E:\BORLANDC\BIN\NONAME00.CPP OK
Files
..\
Cancel
<========================> Help
E:\BORLANDC\BIN\NONAME00.CPP
Directory 12:00am
+ Chn ng dn cn lu tp tin hp Files, chn ..\ tr v th mc cha th mc hin ti.
+ t tn tp tin hp Save File As
+ Chn OK
+ Hoc c th g [ a:][ng dn]<tn tp tin>, chn OK.
) Dng phm TAB chuyn i vt sng gia cc mc trong hp thoi.
V d: mun lu tp tin c tn BT_IF1.CPP vo th mc D:\BAITAPC
+ Bn g vo hp Save File As D: -> Enter (OK), danh sch cc th mc, tp tin ca D hin th
hp Files, chn th mc BAITAPC hp Files, g tn BT_IF1.CPP vo hp Save File As, chn OK.
+ Hoc nu bn nh r ng dn, g vo hp Save File As D:\BAITAPC\BT_IF1, chn OK.
13.2.2 Nu l tp tin lu t nht 1 ln hoc c m bng lnh Open:
+ n F2 hoc chn menu File -> Save, ni dung tp tin hin hnh s c cp nht nu
c thay i.
+ Chn menu File -> Save As, xut hin hp thoi Save File As, thc hin cc bc nh
mc 2.1 (ngha l bn mun lu ni dung tp tin hin hnh vi ng dn, tn tp tin khc).
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
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.
Bi 14 :
CC H M
14.1 Khi nim
Cc ch s c bn ca mt h m l cc ch s dng biu din mi s trong h m y.
H m thng gp nht l h thp phn (h 16). Nhng do bn cht nh phn ca cc thit b
in t cho nn hu ht dng biu din d liu v cc php i s u thc hin bng h nh phn
(h 2). H bt phn (h 8) rt t dng v h thp phn (h 10) l h chng ta ang s dng biu
din mt con s no trong cuc sng hng ngy.
V d 1: H nh phn gm 2 ch s : 0, 1
H bt phn gm 8 ch s : 0, 1, 2, 3, 4, 5, 6, 7
H thp phn gm 10 ch s : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
H thp lc phn gm 16 ch s : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Cc ch s trong mt h m c sp xp theo quy tc: Bt k c s N nguyn dng
no, c N k hiu khc nhau biu din cc s trong h thng. Gi tr ca N k hiu ny c
sp xp t 0 n N-1.
V d 2: H nh phn c c s N = 2 : cc ch s c nh t 0..1
H bt phn c c s N = 8 : cc ch s c nh t 0..7
H thp phn c c s N = 10 : cc ch s c nh t 0..9
H thp lc phn c c s N = 16 : cc ch s c nh t 0..9, A..F
Do h thp lc phn c 16 ch s, m trong h thng ch vit ch biu din c 9 ch
s, v vy ngi ta chn cc k t A..F biu din 10..15 v n cng c xem nh 1 ch s
(A, BF) thay v phi vit 10, 1115 (2 ch s)
14.2 Quy tc
biu din mt s ca mt h m, ta dng ch s t gc di phi s .
011012 : biu th s nh phn.
0828 : biu th s bt phn.
2316 : biu th s thp lc phn.
i vi h thp phn ta c th ghi ch s hoc khng ghi (nhm hiu), v s thp phn l s
m ta s dng quen thuc hng ngy. Do , ta s dng cng thc sau chuyn i t cc h
m sang h thp phn (c s 10) :
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.
11 2 11 chia 2 = 5 d 1
1 5 2
5 chia 2 = 2 d 1
1 2 2
2 chia 2 = 1 d 0
0 1 2
1 0 1 chia 2 = 0 d 1
V d 6: X = 90
90 chia 2 = 2 d 0
90 2
45 45 chia 2 = 1 d 1
0 2
1 22 2 22 chia 2 = 0 d 0
0 11 2 11 chia 2 = 5 d 1
1 5 2
5 chia 2 = 2 d 1
1 2 2
0 1 2 2 chia 2 = 1 d 0
1 0 1 chia 2 = 0 d 1
10110102 kt qu h nh phn 10110102
V d 10: X = 88
88 8 88 chia 8 = 11 d 0
0 11 8 11 chia 8 = 1 d 3
3 1 8
1 chia 8 = 0 d 1
1 0
1308 kt qu h bt phn 1308
V d 14: X = 29
29 16 29 chia 16 = 1 d 13
13 1 16 S 13 tng ng
1 chia 16 = 0 d 1
1 0 trong h 16 l D
(xem bng (**))
1D16 kt qu h thp lc phn 1D16
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
Bi 15 :
BIU THC V PHP TON
15.1 Biu thc
L s phi hp ca nhng ton t v ton hng.
V d 1:
a+b
b = 1 + 5 * 2/i
a = 6 % (7 + 1)
x++ * 2/4 + 5 power(i, 2)
Ton hng s dng trong biu thc c th l hng s, bin, hm.
15.2 Php ton
Trong C c 4 nhm ton t chnh yu sau y:
15.2.1 Php ton s hc
+ : cng p dng trn tt c cc ton hng c kiu d liu char, int
: tr float, double (k c long, short, unsigned)
* : nhn
/ : chia
% : ly phn d p dng trn cc ton hng c kiu d liu char, int, long
* Th t u tin: o du +, ( ) *, / , % +,
V d 2:
10%4 = 2 (10 chia 4 d 2); 9%3 = 0 (9 chia 3 d 0)
3 * 5 + 4 = 19
6+2/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 Ton t quan h
V d 3:
4 > 10 c gi tr 0 (sai)
* Th t u tin: ! && ||
V d 4:
!(2 <= 1) c gi tr 1 (ng)
5 && 10 c gi tr 1 (ng)
!6 c gi tr 0 (sai)
1 && 0 c gi tr 0 (sai)
1 || 0 c gi tr 1 (ng)
* Th t u tin gia cc ton t:
! Ton t s hc Ton t quan h && ||
Bi 16 :
MT S HM CHUN THNG DNG
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
16.2.1 strcat
char *strcat(char *dest, const char *src); ) Phi khai bo string.h
Thm chui src vo sau chui dest.
16.2.2 strcpy
char *strcpy(char *dest, const char *src); ) Phi khai bo string.h
Chp chui src vo dest.
V d: char destination[25];
char *blank = " ", *c = "C++", *borland = "Borland";
strcpy(destination, borland); //chp chui borland vo destination
strcat(destination, blank); //thm chui blank vo sau chui destination
strcat(destination, c); //thm chui c vo sau chui destination
16.2.3 strcmp
int *strcmp(const char *s1, const char *s2); ) Phi khai bo string.h
So snh chui s1 vi chui s2. Kt qu tr v:
< 0 nu s1 < s2
= 0 nu s1 = s2
> 0 nu s1 > s2
V d: char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "aaa";
strcmp(buf1, buf2); //kt qu tr v - 1
strcmp(buf1, buf3); //kt qu tr v 0
strcmp(buf2, buf3); //kt qu tr v 1
16.2.4 strcmpi
int *strcmp(const char *s1, const char *s2); ) Phi khai bo string.h
So snh chui s1 vi chui s2 khng phn bit ch hoa, ch thng. Kt qu tr v:
< 0 nu s1 < s2
= 0 nu s1 = s2
> 0 nu s1 > s2
V d: char *buf1 = "aaa", *buf2 = "AAA";
strcmp(buf1, buf2); //kt qu tr v 0
16.2.5 strlwr
char *strlwr(char *s); ) Phi khai bo string.h
Chuyn chui s sang ch thng
V d: char *s = "Borland C";
s = strlwr(s); //kt qu s = "borland c"
16.2.6 strupr
char *strupr(char *s); ) Phi khai bo string.h
Chuyn chui s sang ch hoa
V d: char *s = "Borland C";
s = strlwr(s); //kt qu s = "BORLAND C"
16.3.1 abs
int abs(int x); ) Phi khai bo stblib.h
Cho gi tr tuyt i ca s nguyn x.
V d: int num = - 123;
num = abs(num); //kt qu num = 123
16.3.2 labs
long int labs(long int x); ) Phi khai bo stblib.h
Cho gi tr tuyt i ca s nguyn di x.
V d: int num = - 12345678L;
num = labs(num); //kt qu num = 12345678
16.3.3 rand
int rand(void); ) Phi khai bo stblib.h
Cho 1 gi tr ngu nhin t 0 n 32767
V d: int num;
randomize(); //dng hm ny khi u b s ngu nhin
num = rand(); //kt qu num = 1 con s trong khong 0..32767
16.3.4 random
int random(int num); ) Phi khai bo stblib.h
Cho 1 gi tr ngu nhin t 0 n 32767
V d: int n;
randomize();
n = random(100); //kt qu n = 1 con s trong khong 0..99
16.3.5 pow
double pow(double x, double y); ) Phi khai bo math.h
Tnh x m y
V d: double x = 2.0, y = 3.0, z;
z = pow(x, y); //kt qu z = 8.0
16.3.6 sqrt
double sqrt(double x); ) Phi khai bo math.h
Tnh cn bc 2 ca x.
V d: double x = 4.0, y;
y = sqrt(x); //kt qu y = 2.0
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).