Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu đang bị lỗi
File tài liệu này hiện đang bị hỏng, chúng tôi đang cố gắng khắc phục.
Bài giảng NGÔN NGỮ LẬP TRÌNH C/C++ - PHẠM HỒNG THÁI pptx
Nội dung xem thử
Mô tả chi tiết
Đ I H C QU C GIA HÀ N I Ạ Ọ Ố Ộ
TR NG Đ I H C CÔNG NGH ƯỜ Ạ Ọ Ệ
Khoa Công ngh Thông tin ệ
PH M H NG THÁI Ạ Ồ
Bài gi ng ả
NGÔN NG L P TRÌNH C/C++ Ữ Ậ
Hà N i – 2003 ộ
L I NÓI Đ U Ờ Ầ
Ngôn ng l p trình (NNLT) C/C++ là m t trong nh ng ngôn ng l p trình ữ ậ ộ ữ ữ ậ
h ng đ i t ng m nh và ph bi n hi n nay do tính m m d o và đa năng c a nó. ướ ố ượ ạ ổ ế ệ ề ẻ ủ
Không ch các ng d ng đ c vi t trên C/C++ mà c nh ng ch ng trình h th ng ỉ ứ ụ ượ ế ả ữ ươ ệ ố
l n đ u đ c vi t h u h t trên C/C++. C++ là ngôn ng l p trình h ng đ i t ng ớ ề ượ ế ầ ế ữ ậ ướ ố ượ
đ c phát tri n trên n n t ng c a C, không nh ng kh c ph c m t s nh c đi m ượ ể ề ả ủ ữ ắ ụ ộ ố ượ ể
c a ngôn ng C mà quan tr ng h n, C++ cung c p cho ng i s d ng (NSD) m t ủ ữ ọ ơ ấ ườ ử ụ ộ
ph ng ti n l p trình theo k thu t m i: l p trình h ng đ i t ng. Đây là k thu t ươ ệ ậ ỹ ậ ớ ậ ướ ố ượ ỹ ậ
l p trình đ c s d ng h u h t trong các ngôn ng m nh hi n nay, đ c bi t là các ậ ượ ử ụ ầ ế ữ ạ ệ ặ ệ
ngôn ng ho t đ ng trong môi tru ng Windows nh Microsoft Access, Visual ữ ạ ộ ờ ư
Basic, Visual Foxpro …
Hi n nay NNLT C/C++ đã đ c đ a vào gi ng d y trong h u h t các tr ng ệ ượ ư ả ạ ầ ế ườ
Đ i h c, Cao đ ng đ thay th m t s NNLT đã cũ nh FORTRAN, Pascal … T p ạ ọ ẳ ể ế ộ ố ư ậ
bài gi ng này đ c vi t ra v i m c đích đó, trang b ki n th c và k năng th c hành ả ượ ế ớ ụ ị ế ứ ỹ ự
cho sinh viên b t đ u h c vào NNLT C/C++ t i Khoa Công ngh , Đ i h c Qu c gia ắ ầ ọ ạ ệ ạ ọ ố
Hà N i. Đ phù h p v i ch ng trình, t p bài gi ng này ch đ c p m t ph n nh ộ ể ợ ớ ươ ậ ả ỉ ề ậ ộ ầ ỏ
đ n k thu t l p trình h ng đ i t ng trong C++, đó là các k thu t đóng gói d ế ỹ ậ ậ ướ ố ượ ỹ ậ ữ
li u, ph ng th c và đ nh nghĩa m i các toán t . Tên g i c a t p bài gi ng này nói ệ ươ ứ ị ớ ử ọ ủ ậ ả
lên đi u đó, có nghĩa n i dung c a bài gi ng th c ch t là NNLT C đ c m r ng ề ộ ủ ả ự ấ ượ ở ộ
v i m t s đ c đi m m i c a C++. V k thu t l p trình h ng đ i t ng (trong ớ ộ ố ặ ể ớ ủ ề ỹ ậ ậ ướ ố ượ
C++) s đ c trang b b i m t giáo trình khác. Tuy nhiên đ ng n g n, trong t p bài ẽ ượ ị ở ộ ể ắ ọ ậ
gi ng này tên g i C/C++ s đ c chúng tôi thay b ng C++. ả ọ ẽ ượ ằ
N i dung t p bài gi ng này g m 8 ch ng. Ph n đ u g m các ch ng t 1 đ n ộ ậ ả ồ ươ ầ ầ ồ ươ ừ ế
6 ch y u trình bày v NNLT C++ trên n n t ng c a k thu t l p trình c u trúc. Các ủ ế ề ề ả ủ ỹ ậ ậ ấ
ch ng còn l i (ch ng 7 và 8) s trình bày các c u trúc c b n trong C++ đó là k ươ ạ ươ ẽ ấ ơ ả ỹ
thu t đóng gói (l p và đ i t ng) và đ nh nghĩa phép toán m i cho l p. ậ ớ ố ượ ị ớ ớ
Tuy đã có nhi u c g ng nh ng do th i gian và trình đ ng i vi t có h n nên ề ố ắ ư ờ ộ ườ ế ạ
ch c ch n không tránh kh i sai sót, vì v y r t mong nh n đ c s góp ý c a b n đ c ắ ắ ỏ ậ ấ ậ ượ ự ủ ạ ọ
đ bài gi ng ngày càng m t hoàn thi n h n. ể ả ộ ệ ơ
Tác gi . ả
Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
CH NG 1 ƯƠ
CÁC KHÁI NI M C B N C A C++ Ệ Ơ Ả Ủ
Các y u t c b n ế ố ơ ả
Môi tr ng làm vi c c a C++ ườ ệ ủ
Các b c đ t o và th c hi n m t ch ng trình ướ ể ạ ự ệ ộ ươ
Vào/ra trong C++
I. CÁC Y U T C B N Ế Ố Ơ Ả
M t ngôn ng l p trình (NNLT) b c cao cho phép ng i s d ng (NSD) bi u ộ ữ ậ ậ ườ ử ụ ể
hi n ý t ng c a mình đ gi i quy t m t v n đ , bài toán b ng cách di n đ t g n v i ệ ưở ủ ể ả ế ộ ấ ề ằ ễ ạ ầ ớ
ngôn ng thông th ng thay vì ph i di n đ t theo ngôn ng máy (dãy các kí hi u 0,1). ữ ườ ả ễ ạ ữ ệ
Hi n nhiên, các ý t ng NSD mu n trình bày ph i đ c vi t theo m t c u trúc ch t ch ể ưở ố ả ượ ế ộ ấ ặ ẽ
th ng đ c g i là thu t toán ho c gi i thu t và theo đúng các qui t c c a ngôn ng ườ ượ ọ ậ ặ ả ậ ắ ủ ữ
g i là cú pháp ho c văn ph m. Trong giáo trình này chúng ta bàn đ n m t ngôn ng ọ ặ ạ ế ộ ữ
l p trình nh v y, đó là ngôn ng l p trình C++ và làm th nào đ th hi n các ý t ng ậ ư ậ ữ ậ ế ể ể ệ ưở
gi i quy t v n đ b ng cách vi t thành ch ng trình trong C++. ả ế ấ ề ằ ế ươ
Tr c h t, trong m c này chúng ta s trình bày v các qui đ nh b t bu c đ n gi n ướ ế ụ ẽ ề ị ắ ộ ơ ả
và c b n nh t. Thông th ng các qui đ nh này s đ c nh d n trong quá trình h c ơ ả ấ ườ ị ẽ ượ ớ ầ ọ
ngôn ng , tuy nhiên đ có m t vài khái ni m t ng đ i h th ng v NNLT C++ chúng ữ ể ộ ệ ươ ố ệ ố ề
ta trình bày s l c các khái ni m c b n đó. Ng i đ c đã t ng làm quen v i các ơ ượ ệ ơ ả ườ ọ ừ ớ
NNLT khác có th đ c l t qua ph n này. ể ọ ướ ầ
1. B ng ký t c a C++ ả ự ủ
H u h t các ngôn ng l p trình hi n nay đ u s d ng các kí t ti ng Anh, các kí ầ ế ữ ậ ệ ề ử ụ ự ế
hi u thông d ng và các con s đ th hi n ch ng trình. Các kí t c a nh ng ngôn ng ệ ụ ố ể ể ệ ươ ự ủ ữ ữ
khác không đ c s d ng (ví d các ch cái ti ng Vi t). D i đây là b ng kí t đ c ượ ử ụ ụ ữ ế ệ ướ ả ự ượ
phép dùng đ t o nên nh ng câu l nh c a ngôn ng C++. ể ạ ữ ệ ủ ữ
− Các ch cái la tinh (vi t th ng và vi t hoa): a .. z và A .. Z. Cùng m t ch cái ữ ế ườ ế ộ ữ
nh ng vi t th ng phân bi t v i vi t hoa. Ví d ch cái 'a' là khác v i 'A'. ư ế ườ ệ ớ ế ụ ữ ớ
− D u g ch d i: _ ấ ạ ướ
− Các ch s th p phân: 0, 1, . ., 9. ữ ố ậ
1Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
− Các ký hi u toán h c: +, -, *, /, % , &, ||, !, >, <, = ... ệ ọ
− Các ký hi u đ c bi t khác: , ;: [ ], {}, #, d u cách, ... ệ ặ ệ ấ
2. T khoá ừ
M t t khoá là m t t đ c qui đ nh tr c trong NNLT v i m t ý nghĩa c đ nh, ộ ừ ộ ừ ượ ị ướ ớ ộ ố ị
th ng dùng đ ch các lo i d li u ho c k t h p thành câu l nh. NSD có th t o ra ườ ể ỉ ạ ữ ệ ặ ế ợ ệ ể ạ
nh ng t m i đ ch các đ i t ng c a mình nh ng không đ c phép trùng v i t ữ ừ ớ ể ỉ ố ượ ủ ư ượ ớ ừ
khoá. D i đây chúng tôi li t kê m t vài t khoá th ng g p, ý nghĩa c a các t này, s ướ ệ ộ ừ ườ ặ ủ ừ ẽ
đ c trình bày d n trong các đ m c liên quan. ượ ầ ề ụ
auto, break, case, char, continue, default, do, double, else, externe, float,
for, goto, if, int, long, register, return, short, sizeof, static, struct, switch,
typedef, union, unsigned, while ...
M t đ c tr ng c a C++ là các t khoá luôn luôn đ c vi t b ng ch th ng. ộ ặ ư ủ ừ ượ ế ằ ữ ườ
3. Tên g i ọ
Đ phân bi t các đ i t ng v i nhau chúng c n có m t tên g i. H u h t m t đ i ể ệ ố ượ ớ ầ ộ ọ ầ ế ộ ố
t ng đ c vi t ra trong ch ng trình thu c 2 d ng, m t d ng đã có s n trong ngôn ượ ượ ế ươ ộ ạ ộ ạ ẵ
ng (ví d các t khoá, tên các hàm chu n ...), m t s do NSD t o ra dùng đ đ t tên ữ ụ ừ ẩ ộ ố ạ ể ặ
cho h ng, bi n, ki u, hàm ... các tên g i do NSD t đ t ph i tuân theo m t s qui t c ằ ế ể ọ ự ặ ả ộ ố ắ
sau:
− Là dãy ký t liên ti p (không ch a d u cách) và ph i b t đ u b ng ch cái ự ế ứ ấ ả ắ ầ ằ ữ
ho c g ch d i. ặ ạ ướ
− Phân bi t kí t in hoa và th ng. ệ ự ườ
− Không đ c trùng v i t khóa. ượ ớ ừ
− S l ng ch cái dùng đ phân bi t tên g i có th đ c đ t tuỳ ý. ố ượ ữ ể ệ ọ ể ượ ặ
− Chú ý các tên g i có s n c a C++ cũng tuân th theo đúng qui t c trên. ọ ẵ ủ ủ ắ
Trong m t ch ng trình n u NSD đ t tên sai thì trong quá trình x lý s b (tr c ộ ươ ế ặ ử ơ ộ ướ
khi ch y ch ng trình) máy s báo l i (g i là l i văn ph m). ạ ươ ẽ ỗ ọ ỗ ạ
Ví d 1 : ụ
• Các tên g i sau đây là đúng (đ c phép): i, i1, j, tinhoc, tin_hoc, luu_luong ọ ượ
• Các tên g i sau đây là sai (không đ c phép): 1i, tin hoc, luu-luong-nuoc ọ ượ
• Các tên g i sau đây là khác nhau: ha_noi, Ha_noi, HA_Noi, HA_NOI, ... ọ
2 Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
4. Chú thích trong ch ng trình ươ
M t ch ng trình th ng đ c vi t m t cách ng n g n, do v y thông th ng bên ộ ươ ườ ượ ế ộ ắ ọ ậ ườ
c nh các câu l nh chính th c c a ch ng trình, NSD còn đ c phép vi t vào ch ng ạ ệ ứ ủ ươ ượ ế ươ
trình các câu ghi chú, gi i thích đ làm rõ nghĩa h n ch ng trình. M t chú thích có th ả ể ơ ươ ộ ể
ghi chú v nhi m v , m c đích, cách th c c a thành ph n đang đ c chú thích nh ề ệ ụ ụ ứ ủ ầ ượ ư
bi n, h ng, hàm ho c công d ng c a m t đo n l nh ... Các chú thích s làm cho ế ằ ặ ụ ủ ộ ạ ệ ẽ
ch ng trình sáng s a, d đ c, d hi u và vì v y d b o trì, s a ch a v sau. ươ ủ ễ ọ ễ ể ậ ễ ả ử ữ ề
Có 2 cách báo cho ch ng trình bi t m t đo n chú thích: ươ ế ộ ạ
− N u chú thích là m t đo n kí t b t kỳ liên ti p nhau (trong 1 dòng ho c trên ế ộ ạ ự ấ ế ặ
nhi u dòng) ta đ t đo n chú thích đó gi a c p d u đóng m chú thích /* (m ) ề ặ ạ ữ ặ ấ ở ở
và */ (đóng).
− N u chú thích b t đ u t m t v trí nào đó cho đ n h t dòng, thì ta đ t d u // ế ắ ầ ừ ộ ị ế ế ặ ấ ở
v trí đó. Nh v y // s d ng cho các chú thích ch trên 1 dòng. ị ư ậ ử ụ ỉ
Nh đã nh c trên, vai trò c a đo n chú thích là làm cho ch ng trình d hi u ư ắ ở ủ ạ ươ ễ ể
đ i v i ng i đ c, vì v y đ i v i máy các đo n chú thích s đ c b qua. L i d ng đ c ố ớ ườ ọ ậ ố ớ ạ ẽ ượ ỏ ợ ụ ặ
đi m này c a chú thích đôi khi đ t m th i b qua m t đo n l nh nào đó trong ch ng ể ủ ể ạ ờ ỏ ộ ạ ệ ươ
trình (nh ng không xoá h n đ kh i ph i gõ l i khi c n dùng đ n) ta có th đ t các d u ư ẳ ể ỏ ả ạ ầ ế ể ặ ấ
chú thích bao quanh đo n l nh này (ví d khi ch y th ch ng trình, g l i ...), khi c n ạ ệ ụ ạ ử ươ ỡ ỗ ầ
s d ng l i ta có th b các d u chú thích. ử ụ ạ ể ỏ ấ
Chú ý: C p d u chú thích /* ... */ không đ c phép vi t l ng nhau, ví d dòng chú ặ ấ ượ ế ồ ụ
thích sau là không đ c phép ượ
/* Đây là đo n chú thích /* ch a đo n chú thích này */ nh đo n chú thích con */ ạ ứ ạ ư ạ
c n ph i s a l i nh sau: ầ ả ử ạ ư
• ho c ch gi l i c p d u chú thích ngoài cùng ặ ỉ ữ ạ ặ ấ
/* Đây là đo n chú thích ch a đo n chú thích này nh đo n chú thích con */ ạ ứ ạ ư ạ
• ho c chia thành các đo n chú thích liên ti p nhau ặ ạ ế
/* Đây là đo n chú thích */ /*ch a đo n chú thích này*/ /*nh đo n chú thích con */ ạ ứ ạ ư ạ
II. MÔI TR NG LÀM VI C C A C++ ƯỜ Ệ Ủ
1. Kh i đ ng - Thoát kh i C++ ở ộ ỏ
Kh i đ ng C++ cũng nh m i ch ng trình khác b ng cách nh p đúp chu t lên ở ộ ư ọ ươ ằ ấ ộ
bi u t ng c a ch ng trình. Khi ch ng trình đ c kh i đ ng s hi n ra giao di n ể ượ ủ ươ ươ ượ ở ộ ẽ ệ ệ
g m có menu công vi c và m t khung c a s bên d i ph c v cho so n th o. M t con ồ ệ ộ ử ổ ướ ụ ụ ạ ả ộ
3Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
tr nh p nháy trong khung c a s và chúng ta b t đ u nh p n i dung (văn b n) ch ng ỏ ấ ử ổ ắ ầ ậ ộ ả ươ
trình vào trong khung c a s so n th o này. M c đích c a giáo trình này là trang b ử ổ ạ ả ụ ủ ị
nh ng ki n th c c b n c a l p trình thông qua NNLT C++ cho các sinh viên m i b t ữ ế ứ ơ ả ủ ậ ớ ắ
đ u nên chúng tôi v n ch n trình bày giao di n c a các trình biên d ch quen thu c là ầ ẫ ọ ệ ủ ị ộ
Turbo C ho c Borland C. V các trình biên d ch khác đ c gi có th t tham kh o trong ặ ề ị ộ ả ể ự ả
các tài li u liên quan. ệ
Đ k t thúc làm vi c v i C++ (so n th o, ch y ch ng trình ...) và quay v môi ể ế ệ ớ ạ ả ạ ươ ề
tr ng Windows chúng ta n Alt-X. ườ ấ
2. Giao di n và c a s so n th o ệ ử ổ ạ ả
a. Mô t chung ả
Khi g i ch y C++ trên màn hình s xu t hi n m t menu x xu ng và m t c a s ọ ạ ẽ ấ ệ ộ ổ ố ộ ử ổ
so n th o. Trên menu g m có các nhóm ch c năng: File, Edit, Search, Run, Compile, ạ ả ồ ứ
Debug, Project, Options, Window, Help. Đ kích ho t các nhóm ch c năng, có th ể ạ ứ ể
ấ ữ ể ị ủ ứ ữ ạ ướ ụ ể n Alt+ch cái bi u th cho menu c a ch c năng đó (là ch cái có g ch d i). Ví d đ
m nhóm ch c năng File n Alt+F, sau đó d ch chuy n h p sáng đ n m c c n ch n r i ở ứ ấ ị ể ộ ế ụ ầ ọ ồ
ấ ể ậ ệ ộ ố ứ ượ ắ ớ n Enter. Đ thu n ti n cho NSD, m t s các ch c năng hay dùng còn đ c g n v i
m t t h p các phím cho phép ng i dùng có th ch n nhanh ch c năng này mà không ộ ổ ợ ườ ể ọ ứ
c n thông qua vi c m menu nh đã mô t trên. M t s t h p phím c th đó s ầ ệ ở ư ả ở ộ ố ổ ợ ụ ể ẽ
đ c trình bày vào cu i ph n này. Các b ch ng trình d ch h tr ng i l p trình m t ượ ố ầ ộ ươ ị ỗ ợ ườ ậ ộ
môi tr ng tích h p t c ngoài ch c năng so n th o, nó còn cung c p nhi u ch c năng, ườ ợ ứ ứ ạ ả ấ ề ứ
ti n ích khác giúp ng i l p trình v a có th so n th o văn b n ch ng trình v a g i ệ ườ ậ ừ ể ạ ả ả ươ ừ ọ
ch y ch ng trình v a g l i … ạ ươ ừ ỡ ỗ
Các ch c năng liên quan đ n so n th o ph n l n gi ng v i các b so n th o khác ứ ế ạ ả ầ ớ ố ớ ộ ạ ả
(nh WinWord) do v y chúng tôi ch trình bày tóm t t mà không trình bày chi ti t ư ậ ỉ ắ ế ở
đây.
b. Các ch c năng so n th o ứ ạ ả
Gi ng h u h t các b so n th o văn b n, b so n th o c a Turbo C ho c Borland ố ầ ế ộ ạ ả ả ộ ạ ả ủ ặ
C cũng s d ng các phím sau cho quá trình so n th o: ử ụ ạ ả
− D ch chuy n con tr : các phím mũi tên cho phép d ch chuy n con tr sang ị ể ỏ ị ể ỏ
trái, ph i m t kí t ho c lên trên, xu ng d i 1 dòng. Đ d ch chuy n nhanh ả ộ ự ặ ố ướ ể ị ể
có các phím nh Home (v đ u dòng), End (v cu i dòng), PgUp, PgDn (lên, ư ề ầ ề ố
xu ng m t trang màn hình). Đ d ch chuy n xa h n có th k t h p các phím ố ộ ể ị ể ơ ể ế ợ
này cùng phím Control (Ctrl, ^) nh ^PgUp: v đ u t p, ^PgDn: v cu i t p. ư ề ầ ệ ề ố ệ
− Chèn, xoá, s a: Phím Insert cho phép chuy n ch đ so n th o gi a chèn và ử ể ế ộ ạ ả ữ
đè. Các phím Delete, Backspace cho phép xoá m t kí t t i v trí con tr và ộ ự ạ ị ỏ
4 Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
tr c v trí con tr (xoá lùi). ướ ị ỏ
− Các thao tác v i kh i dòng: Đ đánh d u kh i dòng (th c ch t là kh i kí t ớ ố ể ấ ố ự ấ ố ự
li n nhau b t kỳ) ta đ a con tr đ n v trí đ u n Ctrl-KB và Ctrl-KK t i v trí ề ấ ư ỏ ế ị ầ ấ ạ ị
cu i. Cũng có th thao tác nhanh h n b ng cách gi phím Shift và dùng các ố ể ơ ằ ữ
phím d ch chuy n con tr quét t v trí đ u đ n v trí cu i, khi đó kh i kí t ị ể ỏ ừ ị ầ ế ị ố ố ự
đu c đánh d u s chuy n m u n n. M t kh i đ c đánh d u có th dùng đ ợ ấ ẽ ể ầ ề ộ ố ượ ấ ể ể
c t, dán vào m t n i khác trong văn b n ho c xoá kh i văn b n. Đ th c hi n ắ ộ ơ ả ặ ỏ ả ể ự ệ
thao tác c t dán, đ u tiên ph i đ a kh i đã đánh d u vào b nh đ m b ng ắ ầ ả ư ố ấ ộ ớ ệ ằ
nhóm phím Shift-Delete (c t), sau đó d ch chuy n con tr đ n v trí m i c n ắ ị ể ỏ ế ị ớ ầ
hi n n i dung v a c t và n t h p phím Shift-Insert. M t đo n văn b n đ c ệ ộ ừ ắ ấ ổ ợ ộ ạ ả ượ
ghi vào b nh đ m có th đ c dán nhi u l n vào nhi u v trí khác nhau b ng ộ ớ ệ ể ượ ề ầ ề ị ằ
cách l p l i t h p phím Shift-Insert t i các v trí khác nhau trong văn b n. Đ ặ ạ ổ ợ ạ ị ả ể
xoá m t kh i dòng đã đánh d u mà không ghi vào b nh đ m, dùng t h p ộ ố ấ ộ ớ ệ ổ ợ
phím Ctrl-Delete. Khi m t n i dung m i ghi vào b nh đ m thì nó s xoá ộ ộ ớ ộ ớ ệ ẽ
(ghi đè) n i dung cũ đã có, do v y c n cân nh c đ s d ng phím Ctrl-Delete ộ ậ ầ ắ ể ử ụ
(xoá và không l u l i n i dung v a xoá vào b đ m) và Shift-Delete (xoá và ư ạ ộ ừ ộ ệ
l u l i n i dung v a xoá) m t cách phù h p. ư ạ ộ ừ ộ ợ
− T h p phím Ctrl-A r t thu n l i khi c n đánh d u nhanh toàn b văn b n. ổ ợ ấ ậ ợ ầ ấ ộ ả
c. Ch c năng tìm ki m và thay th ứ ế ế
Ch c năng này dùng đ d ch chuy n nhanh con tr văn b n đ n t c n tìm. Đ ứ ể ị ể ỏ ả ế ừ ầ ể
th c hi n tìm ki m b m Ctrl-QF, tìm ki m và thay th b m Ctrl-QA. Vào t ho c ự ệ ế ấ ế ế ấ ừ ặ
nhóm t c n tìm vào c a s Find, nhóm thay th (n u dùng Ctrl-QA) vào c a s ừ ầ ử ổ ế ế ử ổ
Replace và đánh d u vào các tuỳ ch n trong c a s bên d i sau đó n Enter. Các tuỳ ấ ọ ử ổ ướ ấ
ch n g m: không phân bi t ch hoa/th ng, tìm t đ c l p hay đ ng trong t khác, tìm ọ ồ ệ ữ ườ ừ ộ ậ ứ ừ
trong toàn văn b n hay ch trong ph n đ c đánh d u, chi u tìm đi đ n cu i hay ng c ả ỉ ầ ượ ấ ề ế ố ượ
v đ u văn b n, thay th có h i l i hay không h i l i … Đ d ch chuy n con tr đ n các ề ầ ả ế ỏ ạ ỏ ạ ể ị ể ỏ ế
vùng khác nhau trong m t menu hay c a s ch a các tuỳ ch n ta s d ng phím Tab. ộ ử ổ ứ ọ ử ụ
d. Các ch c năng liên quan đ n t p ứ ế ệ
− Ghi t p lên đĩa: Ch n menu File\Save ho c phím F2. N u tên t p ch a có (còn ệ ọ ặ ế ệ ư
mang tên Noname.cpp) máy s yêu c u cho tên t p. Ph n m r ng c a tên t p ẽ ầ ệ ầ ở ộ ủ ệ
đ c m c đ nh là CPP. ượ ặ ị
− So n th o t p m i: Ch n menu File\New. Hi n ra c a s so n th o tr ng và ạ ả ệ ớ ọ ệ ử ổ ạ ả ắ
tên file t m th i l y là Noname.cpp. ạ ờ ấ
− So n th o t p cũ: Ch n menu File\Open ho c n phím F3, nh p tên t p ho c ạ ả ệ ọ ặ ấ ậ ệ ặ
d ch chuy n con tr trong vùng danh sách t p bên d i đ n tên t p c n so n ị ể ỏ ệ ướ ế ệ ầ ạ
r i n Enter. Cũng có th áp d ng cách này đ so n t p m i khi không nh p ồ ấ ể ụ ể ạ ệ ớ ậ
5Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
vào tên t p c th . ệ ụ ể
− Ghi t p đang so n th o lên đĩa v i tên m i: Ch n menu File\Save As và nh p ệ ạ ả ớ ớ ọ ậ
tên t p m i vào r i n Enter. ệ ớ ồ ấ
e. Ch c năng d ch và ch y ch ng trình ứ ị ạ ươ
− Ctrl-F9: Kh i đ ng ch c năng d ch và ch y toàn b ch ng trình. ở ộ ứ ị ạ ộ ươ
− F4: Ch y ch ng trình t đ u đ n dòng l nh hi n t i (đang ch a con tr ) ạ ươ ừ ầ ế ệ ệ ạ ứ ỏ
− F7: Ch y t ng l nh m t c a hàm main(), k c các l nh con trong hàm. ạ ừ ệ ộ ủ ể ả ệ
− F8: Ch y t ng l nh m t c a hàm main(). Khi đó m i l i g i hàm đ c xem là ạ ừ ệ ộ ủ ỗ ờ ọ ượ
m t l nh (không ch y t ng l nh trong các hàm đ c g i). ộ ệ ạ ừ ệ ượ ọ
Các ch c năng liên quan đ n d ch ch ng trình có th đ c ch n thông qua menu ứ ế ị ươ ể ượ ọ
Compile (Alt-C).
f. Tóm t t m t s phím nóng hay dùng ắ ộ ố
− Các phím kích ho t menu: Alt+ch cái đ i di n cho nhóm menu đó. Ví d ạ ữ ạ ệ ụ
Alt-F m menu File đ ch n các ch c năng c th trong nó nh Open (m ở ể ọ ứ ụ ể ư ở
file), Save (ghi file lên đĩa), Print (in n i dung văn b n ch ng trình ra máy ộ ả ươ
in), … Alt-C m menu Compile đ ch n các ch c năng d ch ch ng trình. ở ể ọ ứ ị ươ
− Các phím d ch chuy n con tr khi so n th o. ị ể ỏ ạ ả
− F1: m c a s tr giúp. Đây là ch c năng quan tr ng giúp ng i l p trình nh ở ử ổ ợ ứ ọ ườ ậ ớ
tên l nh, cú pháp và cách s d ng. ệ ử ụ
− F2: ghi t p lên đĩa. ệ
− F3: m t p cũ ra s a ch a ho c so n th o t p m i. ở ệ ử ữ ặ ạ ả ệ ớ
− F4: ch y ch ng trình đ n v trí con tr . ạ ươ ế ị ỏ
− F5: Thu h p/m r ng c a s so n th o. ẹ ở ộ ử ổ ạ ả
− F6: Chuy n đ i gi a các c a s so n th o. ể ổ ữ ử ổ ạ ả
− F7: Ch y ch ng trình theo t ng l nh, k c các l nh trong hàm con. ạ ươ ừ ệ ể ả ệ
− F8: Ch y ch ng trình theo t ng l nh trong hàm chính. ạ ươ ừ ệ
− F9: D ch và liên k t ch ng trình. Th ng dùng ch c năng này đ tìm l i cú ị ế ươ ườ ứ ể ỗ
pháp c a ch ng trình ngu n tr c khi ch y. ủ ươ ồ ướ ạ
− Alt-F7: Chuy n con tr v n i gây l i tr c đó. ể ỏ ề ơ ỗ ướ
− Alt-F8: Chuy n con tr đ n l i ti p theo. ể ỏ ế ỗ ế
6 Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
− Ctrl-F9: Ch y ch ng trình. ạ ươ
− Ctrl-Insert: L u kh i văn b n đ c đánh d u vào b nh đ m. ư ố ả ượ ấ ộ ớ ệ
− Shift-Insert: Dán kh i văn b n trong b nh đ m vào văn b n t i v trí con tr . ố ả ộ ớ ệ ả ạ ị ỏ
− Shift-Delete: Xoá kh i văn b n đ c đánh d u, l u nó vào b nh đ m. ố ả ượ ấ ư ộ ớ ệ
− Ctrl-Delete: Xoá kh i văn b n đ c đánh d u (không l u vào b nh đ m). ố ả ượ ấ ư ộ ớ ệ
− Alt-F5: Chuy n sang c a s xem k t qu c a ch ng trình v a ch y xong. ể ử ổ ế ả ủ ươ ừ ạ
− Alt-X: thoát C++ v l i Windows. ề ạ
3. C u trúc m t ch ng trình trong C++ ấ ộ ươ
M t ch ng trình C++ có th đ c đ t trong m t ho c nhi u file văn b n khác ộ ươ ể ượ ặ ộ ặ ề ả
nhau. M i file văn b n ch a m t s ph n nào đó c a ch ng trình. V i nh ng ch ng ỗ ả ứ ộ ố ầ ủ ươ ớ ữ ươ
trình đ n gi n và ng n th ng ch c n đ t chúng trên m t file. ơ ả ắ ườ ỉ ầ ặ ộ
M t ch ng trình g m nhi u hàm, m i hàm ph trách m t công vi c khác nhau ộ ươ ồ ề ỗ ụ ộ ệ
c a ch ng trình. Đ c bi t trong các hàm này có m t hàm duy nh t có tên hàm là ủ ươ ặ ệ ộ ấ
main(). Khi ch y ch ng trình, các câu l nh trong hàm main() s đ c th c hi n đ u ạ ươ ệ ẽ ượ ự ệ ầ
tiên. Trong hàm main() có th có các câu l nh g i đ n các hàm khác khi c n thi t, và ể ệ ọ ế ầ ế
các hàm này khi ch y l i có th g i đ n các hàm khác n a đã đ c vi t trong ch ng ạ ạ ể ọ ế ữ ượ ế ươ
trình (tr vi c g i quay l i hàm main()). Sau khi ch y đ n l nh cu i cùng c a hàm ừ ệ ọ ạ ạ ế ệ ố ủ
main() ch ng trình s k t thúc. ươ ẽ ế
C th , thông th ng m t ch ng trình g m có các n i dung sau: ụ ể ườ ộ ươ ồ ộ
− Ph n khai báo các t p nguyên m u: khai báo tên các t p ch a nh ng thành ầ ệ ẫ ệ ứ ữ
ph n có s n (nh các h ng chu n, ki u chu n và các hàm chu n) mà NSD s ầ ẵ ư ằ ẩ ể ẩ ẩ ẽ
dùng trong ch ng trình. ươ
− Ph n khai báo các ki u d li u, các bi n, h ng ... do NSD đ nh nghĩa và đ c ầ ể ữ ệ ế ằ ị ượ
dùng chung trong toàn b ch ng trình. ộ ươ
− Danh sách các hàm c a ch ng trình (do NSD vi t, bao g m c hàm main()). ủ ươ ế ồ ả
C u trúc chi ti t c a m i hàm s đ c đ c p đ n trong ch ng 4. ấ ế ủ ỗ ẽ ượ ề ậ ế ươ
D i đây là m t đo n ch ng trình đ n gi n ch g m 1 hàm chính là hàm main(). ướ ộ ạ ươ ơ ả ỉ ồ
N i dung c a ch ng trình dùng in ra màn hình dòng ch : Chào các b n, bây gi là 2 ộ ủ ươ ữ ạ ờ
gi . ờ
#include <iostream.h> // khai báo t p nguyên m u đ ệ ẫ ể
void main() // đ c s d ng toán t in cout << ượ ử ụ ử
{
7Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
int h = 2, // Khai báo và kh i t o bi n h = 2 ở ạ ế
cout << “Chào các b n, bây gi là ” << h << " gi " ; // in ra màn hình ạ ờ ờ
}
Dòng đ u tiên c a ch ng trình là khai báo t p nguyên m u iostream.h. Đây là ầ ủ ươ ệ ẫ
khai báo b t bu c vì trong ch ng trình có s d ng ph ng th c chu n “cout <<” (in ra ắ ộ ươ ử ụ ươ ứ ẩ
màn hình), ph ng th c này đ c khai báo và đ nh nghĩa s n trong iostream.h. ươ ứ ượ ị ẵ
Không riêng hàm main(), m i hàm khác đ u ph i b t đ u t p h p các câu l nh ọ ề ả ắ ầ ậ ợ ệ
c a mình b i d u { và k t thúc b i d u }. T p các l nh b t kỳ bên trong c p d u này ủ ở ấ ế ở ấ ậ ệ ấ ặ ấ
đ c g i là kh i l nh. Kh i l nh là m t cú pháp c n thi t trong các câu l nh có c u trúc ượ ọ ố ệ ố ệ ộ ầ ế ệ ấ
nh ta s th y trong các ch ng ti p theo. ư ẽ ấ ươ ế
III. CÁC B C Đ T O VÀ TH C HI N M T CH NG TRÌNH ƯỚ Ể Ạ Ự Ệ Ộ ƯƠ
1. Qui trình vi t và th c hi n ch ng trình ế ự ệ ươ
Tr c khi vi t và ch y m t ch ng trình thông th ng chúng ta c n: ướ ế ạ ộ ươ ườ ầ
1. Xác đ nh yêu c u c a ch ng trình. Nghĩa là xác đ nh d li u đ u vào (input) ị ầ ủ ươ ị ữ ệ ầ
cung c p cho ch ng trình và t p các d li u c n đ t đ c t c đ u ra (output). ấ ươ ậ ữ ệ ầ ạ ượ ứ ầ
Các t p h p d li u này ngoài các tên g i còn c n xác đ nh ki u c a nó.Ví d ậ ợ ữ ệ ọ ầ ị ể ủ ụ
đ gi i m t ph ng trình b c 2 d ng: ax2 ể ả ộ ươ ậ ạ
+ bx + c = 0, c n báo cho ch ng ầ ươ
trình bi t d li u đ u vào là a, b, c và đ u ra là nghi m x1 và x2 c a ph ng ế ữ ệ ầ ầ ệ ủ ươ
trình. Ki u c a a, b, c, x1, x2 là các s th c. ể ủ ố ự
2. Xác đ nh thu t toán gi i. ị ậ ả
3. C th hoá các khai báo ki u và thu t toán thành dãy các l nh, t c vi t thành ụ ể ể ậ ệ ứ ế
ch ng trình thông th ng là trên gi y, sau đó b t đ u so n th o vào trong ươ ườ ấ ắ ầ ạ ả
máy. Quá trình này đ c g i là so n th o ch ng trình ngu n. ượ ọ ạ ả ươ ồ
4. D ch ch ng trình ngu n đ tìm và s a các l i g i là l i cú pháp. ị ươ ồ ể ử ỗ ọ ỗ
5. Ch y ch ng trình, ki m tra k t qu in ra trên màn hình. N u sai, s a l i ạ ươ ể ế ả ế ử ạ
ch ng trình, d ch và ch y l i đ ki m tra. Quá trình này đ c th c hi n l p đi ươ ị ạ ạ ể ể ượ ự ệ ặ
l p l i cho đ n khi ch ng trình ch y t t theo yêu c u đ ra c a NSD. ặ ạ ế ươ ạ ố ầ ề ủ
2. So n th o t p ch ng trình ngu n ạ ả ệ ươ ồ
So n th o ch ng trình ngu n là m t công vi c đ n gi n: gõ n i dung c a ạ ả ươ ồ ộ ệ ơ ả ộ ủ
ch ng trình (đã vi t ra gi y) vào trong máy và l u l i nó lên đĩa. Thông th ng khi đã ươ ế ấ ư ạ ườ
l u l i ch ng trình lên đĩa l n sau s không c n ph i gõ l i. Có th so n ch ng trình ư ạ ươ ầ ẽ ầ ả ạ ể ạ ươ
ngu n trên các b so n th o (editor) khác nh ng ph i ch y trong môi tr ng tích h p ồ ộ ạ ả ư ả ạ ườ ợ
8 Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
C++ (Borland C, Turbo C). M c đích c a so n th o là t o ra m t văn b n ch ng trình ụ ủ ạ ả ạ ộ ả ươ
và đ a vào b nh c a máy. Văn b n ch ng trình c n đ c trình bày sáng s a, rõ ư ộ ớ ủ ả ươ ầ ượ ủ
ràng. Các câu l nh c n gióng th ng c t theo c u trúc c a l nh (các l nh ch a trong m t ệ ầ ẳ ộ ấ ủ ệ ệ ứ ộ
l nh c u trúc đ c trình bày th t vào trong so v i đi m b t đ u c a l nh). Các chú ệ ấ ượ ụ ớ ể ắ ầ ủ ệ
thích nên ghi ng n g n, rõ nghĩa và phù h p. ắ ọ ợ
3. D ch ch ng trình ị ươ
Sau khi đã so n th o xong ch ng trình ngu n, b c ti p theo th ng là d ch ( n ạ ả ươ ồ ướ ế ườ ị ấ
t h p phím Alt-F9) đ tìm và s a các l i g i là l i cú pháp. Trong khi d ch C++ s đ t ổ ợ ể ử ỗ ọ ỗ ị ẽ ặ
con tr vào n i gây l i (vi t sai cú pháp) trong văn b n. Sau khi s a xong m t l i NSD ỏ ơ ỗ ế ả ử ộ ỗ
có th dùng Alt-F8 đ chuy n con tr đ n l i ti p theo ho c d ch l i. Đ chuy n con tr ể ể ể ỏ ế ỗ ế ặ ị ạ ể ể ỏ
v ng c l i l i tr c đó có th dùng Alt-F7. Quá trình s a l i − d ch đ c l p l i cho ề ượ ạ ỗ ướ ể ử ỗ ị ượ ặ ạ
đ n khi văn b n đã đ c s a h t l i cú pháp. ế ả ượ ử ế ỗ
S n ph m sau khi d ch là m t t p m i g i là ch ng trình đích có đuôi EXE t c ả ẩ ị ộ ệ ớ ọ ươ ứ
là t p mã máy đ th c hi n.T p này có th l u t m th i trong b nh ph c v cho quá ệ ể ự ệ ệ ể ư ạ ờ ộ ớ ụ ụ
trình ch y ch ng trình ho c l u l i trên đĩa tuỳ theo tuỳ ch n khi d ch c a NSD. ạ ươ ặ ư ạ ọ ị ủ
Trong và sau khi d ch, C++ s hi n m t c a s ch a thông báo v các l i (n u có), ị ẽ ệ ộ ử ổ ứ ề ỗ ế
ho c thông báo ch ng trình đã đ c d ch thành công (không còn l i). Các l i này ặ ươ ượ ị ỗ ỗ
đ c g i là l i cú pháp. ượ ọ ỗ
Đ d ch ch ng trình ta ch n menu \Compile\Compile ho c \Compile\Make ho c ể ị ươ ọ ặ ặ
nhanh chóng h n b ng cách n t h p phím Alt-F9. ơ ằ ấ ổ ợ
4. Ch y ch ng trình ạ ươ
Ấ ể ạ ươ ế ươ ư ị n Ctrl-F9 đ ch y ch ng trình, n u ch ng trình ch a d ch sang mã máy, máy
s t đ ng d ch l i tr c khi ch y. K t qu c a ch ng trình s hi n ra trong m t c a ẽ ự ộ ị ạ ướ ạ ế ả ủ ươ ẽ ệ ộ ử
s k t qu đ NSD ki m tra. N u k t qu ch a đ c nh mong mu n, quay l i văn b n ổ ế ả ể ể ế ế ả ư ượ ư ố ạ ả
đ s a và l i ch y l i ch ng trình. Quá trình này đ c l p l i cho đ n khi ch ng ể ử ạ ạ ạ ươ ượ ặ ạ ế ươ
trình ch y đúng nh yêu c u đã đ ra. Khi ch ng trình ch y, c a s k t qu s hi n ra ạ ư ầ ề ươ ạ ử ổ ế ả ẽ ệ
t m th i che khu t c a s so n th o. Sau khi k t thúc ch y ch ng trình c a s so n ạ ờ ấ ử ổ ạ ả ế ạ ươ ử ổ ạ
th o s t đ ng hi n ra tr l i và che khu t c a s k t qu . Đ xem l i k t qu đã hi n ả ẽ ự ộ ệ ở ạ ấ ử ổ ế ả ể ạ ế ả ệ
ấ ể ạ ử ổ ạ ả ấ ấ n Alt-F5. Sau khi xem xong đ quay l i c a s so n th o n phím b t kỳ.
IV. VÀO/RA TRONG C++
Trong ph n này chúng ta làm quen m t s l nh đ n gi n cho phép NSD nh p d ầ ộ ố ệ ơ ả ậ ữ
li u vào t bàn phím ho c in k t qu ra màn hình. Trong ph n sau c a giáo trình chúng ệ ừ ặ ế ả ầ ủ
ta s kh o sát các câu l nh vào/ra ph c t p h n ẽ ả ệ ứ ạ ơ
9Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
1. Vào d li u t bàn phím ữ ệ ừ
Đ nh p d li u vào cho các bi n có tên bi n_1, bi n_2, bi n_3 chúng ta s d ng ể ậ ữ ệ ế ế ế ế ử ụ
câu l nh: ệ
cin >> bi n_1 ; ế
cin >> bi n_2 ; ế
cin >> bi n_3 ; ế
ho c: ặ
cin >> bi n_1 >> bi n_2 >> bi n_3 ; ế ế ế
bi n_1, bi n_2, bi n_3 là các bi n đ c s d ng đ l u tr các giá tr NSD nh p ế ế ế ế ượ ử ụ ể ư ữ ị ậ
vào t bàn phím. Khái ni m bi n s đ c mô t c th h n trong ch ng 2, đây ừ ệ ế ẽ ượ ả ụ ể ơ ươ ở
bi n_1, bi n_2, bi n_3 đ c hi u là các tên g i đ ch 3 giá tr khác nhau. Hi n nhiên ế ế ế ượ ể ọ ể ỉ ị ể
có th nh p d li u nhi u h n 3 bi n b ng cách ti p t c vi t tên bi n vào bên ph i sau ể ậ ữ ệ ề ơ ế ằ ế ụ ế ế ả
d u >> c a câu l nh. ấ ủ ệ
Khi ch y ch ng trình n u g p các câu l nh trên ch ng trình s "t m d ng" đ ạ ươ ế ặ ệ ươ ẽ ạ ừ ể
ch NSD nh p d li u vào cho các bi n. Sau khi NSD nh p xong d li u, ch ng trình ờ ậ ữ ệ ế ậ ữ ệ ươ
s ti p t c ch y t câu l nh ti p theo sau c a các câu l nh trên. ẽ ế ụ ạ ừ ệ ế ủ ệ
Cách th c nh p d li u c a NSD ph thu c vào lo i giá tr c a bi n c n nh p mà ứ ậ ữ ệ ủ ụ ộ ạ ị ủ ế ầ ậ
ta g i là ki u, ví d nh p m t s có cách th c khác v i nh p m t chu i kí t . Gi s ọ ể ụ ậ ộ ố ứ ớ ậ ộ ỗ ự ả ử
c n nh p đ dài hai c nh c a m t hình ch nh t, trong đó c nh dài đ c qui c b ng ầ ậ ộ ạ ủ ộ ữ ậ ạ ượ ướ ằ
tên bi n cd và chi u r ng đ c qui c b i tên bi n cr. Câu l nh nh p s nh sau: ế ề ộ ượ ướ ở ế ệ ậ ẽ ư
cin >> cd >> cr ;
Khi máy d ng ch nh p d li u NSD s gõ giá tr c th c a các chi u dài, r ng ừ ờ ậ ữ ệ ẽ ị ụ ể ủ ề ộ
theo đúng th t trong câu l nh. Các giá tr này c n cách nhau b i ít nh t m t d u tr ng ứ ự ệ ị ầ ở ấ ộ ấ ắ
(ta qui c g i d u tr ng là m t trong 3 lo i d u đ c nh p b i các phím sau: phím ướ ọ ấ ắ ộ ạ ấ ượ ậ ở
spacebar (d u cách), phím tab (d u tab) ho c phím Enter (d u xu ng dòng)). Các giá tr ấ ấ ặ ấ ố ị
NSD nh p vào cũng đ c hi n th trên màn hình đ NSD d theo dõi. ậ ượ ể ị ể ễ
Ví d n u NSD nh p vào 23 11 ụ ế ậ ↵ thì ch ng trình s gán giá tr 23 cho bi n cd và ươ ẽ ị ế
11 cho bi n cr. ế
Chú ý: gi s NSD nh p 2311 ả ử ậ ↵ (không có d u cách gi a 23 và 11) thì ch ng ấ ữ ươ
trình s xem 2311 là m t giá tr và gán cho cd. Máy s t m d ng ch NSD nh p ti p ẽ ộ ị ẽ ạ ừ ờ ậ ế
giá tr cho bi n cr. ị ế
2. In d li u ra màn hình ữ ệ
Đ in giá tr c a các bi u th c ra màn hình ta dùng câu l nh sau: ể ị ủ ể ứ ệ
cout << bt_1 ;
10Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
cout << bt_2 ;
cout << bt_3 ;
ho c: ặ
cout << bt_1 << bt_2 << bt_3 ;
cũng gi ng câu l nh nh p đây chúng ta cũng có th m r ng l nh in v i nhi u ố ệ ậ ở ể ở ộ ệ ớ ề
h n 3 bi u th c. Câu l nh trên cho phép in giá tr c a các bi u th c bt_1, bt_2, bt_3. ơ ể ứ ệ ị ủ ể ứ
Các giá tr này có th là tên c a bi n ho c các k t h p tính toán trên bi n. ị ể ủ ế ặ ế ợ ế
Ví d đ in câu "Chi u dài là " và s 23 và ti p theo là ch "mét", ta có th s ụ ể ề ố ế ữ ể ử
d ng 3 l nh sau đây: ụ ệ
cout << "Chi u dài là" ; ề
cout << 23 ;
cout << "mét";
ho c có th ch b ng 1 l nh: ặ ể ỉ ằ ệ
cout << "Chi u dài là 23 mét" ; ề
Tr ng h p ch a bi t giá tr c th c a chi u dài, ch bi t hi n t i giá tr này đã ườ ợ ư ế ị ụ ể ủ ề ỉ ế ệ ạ ị
đ c l u trong bi n cd (ví d đã đ c nh p vào là 23 t bàn phím b i câu l nh cin >> ượ ư ế ụ ượ ậ ừ ở ệ
cd tr c đó) và ta c n bi t giá tr này là bao nhiêu thì có th s d ng câu l nh in ra màn ướ ầ ế ị ể ử ụ ệ
hình.
cout << "Chi u dài là" << cd << "mét" ; ề
Khi đó trên màn hình s hi n ra dòng ch : "Chi u dài là 23 mét". Nh v y trong ẽ ệ ữ ề ư ậ
tr ng h p này ta ph i dùng đ n ba l n d u phép toán << ch không ph i m t nh câu ườ ợ ả ế ầ ấ ứ ả ộ ư
l nh trên. Ngoài ra ph thu c vào giá tr hi n đ c l u trong bi n cd, ch ng trình s ệ ụ ộ ị ệ ượ ư ế ươ ẽ
in ra s chi u dài thích h p ch không ch in c đ nh thành "chi u dài là 23 mét". Ví d ố ề ợ ứ ỉ ố ị ề ụ
n u cd đ c nh p là 15 thì l nh trên s in câu "chi u dài là 15 mét". ế ượ ậ ệ ẽ ề
M t giá tr c n in không ch là m t bi n nh cd, cr, ... mà còn có th là m t bi u ộ ị ầ ỉ ộ ế ư ể ộ ể
th c, đi u này cho phép ta d dàng yêu c u máy in ra di n tích và chu vi c a hình ch ứ ề ễ ầ ệ ủ ữ
nh t khi đã bi t cd và cr b ng các câu l nh sau: ậ ế ằ ệ
cout << "Di n tích = " << cd * cr ; ệ
cout << "Chu vi = " << 2 * (cd + cr) ;
ho c g p t t c thành 1 câu l nh: ặ ộ ấ ả ệ
cout << Di n tích = " << cd * cr << ‘\n’ << " Chu vi = " << 2 * (cd + cr) ; ệ
ở ộ ự ặ ệ ự ệ ự ố ặ đây có m t kí t đ c bi t: đó là kí t '\n' kí hi u cho kí t xu ng dòng, khi g p
kí t này ch ng trình s in các ph n ti p theo đ u dòng k ti p. Do đó k t qu c a ự ươ ẽ ầ ế ở ầ ế ế ế ả ủ
câu l nh trên là 2 dòng sau đây trên màn hình: ệ
11Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
Di n tích = 253 ệ
Chu vi = 68
ở ầ ượ ị ượ ừ ể ứ đây 253 và 68 l n l t là các giá tr mà máy tính đ c t các bi u th c cd * cr,
và 2 * (cd + cr) trong câu l nh in trên. ệ ở
Chú ý: đ s d ng các câu l nh nh p và in trong ph n này, đ u ch ng trình ph i ể ử ụ ệ ậ ầ ầ ươ ả
có dòng khai báo #include <iostream.h>.
Thông th ng ta hay s d ng l nh in đ in câu thông báo nh c NSD nh p d li u ườ ử ụ ệ ể ắ ậ ữ ệ
tr c khi có câu l nh nh p. Khi đó trên màn hình s hi n dòng thông báo này r i m i ướ ệ ậ ẽ ệ ồ ớ
t m d ng ch d li u nh p vào t bàn phím. Nh vào thông báo này NSD s bi t ph i ạ ừ ờ ữ ệ ậ ừ ờ ẽ ế ả
nh p d li u, nh p n i dung gì và nh th nào ... ví d : ậ ữ ệ ậ ộ ư ế ụ
cout << "Hãy nh p chi u dài: "; cin >> cd; ậ ề
cout << "Và nh p chi u r ng: "; cin >> cr; ậ ề ộ
khi đó máy s in dòng thông báo "Hãy nh p chi u dài: " và ch sau khi NSD ẽ ậ ề ờ
nh p xong 23 ậ ↵, máy s th c hi n câu l nh ti p theo t c in dòng thông báo "Và nh p ẽ ự ệ ệ ế ứ ậ
chi u r ng: " và ch đ n khi NSD nh p xong 11 ề ộ ờ ế ậ ↵ ch ng trình s ti p t c th c hi n ươ ẽ ế ụ ự ệ
các câu l nh ti p theo. ệ ế
Ví d 2 : T các th o lu n trên ta có th vi t m t cách đ y đ ch ng trình tính ụ ừ ả ậ ể ế ộ ầ ủ ươ
di n tích và chu vi c a m t hình ch nh t. Đ ch ng trình có th tính v i các b giá ệ ủ ộ ữ ậ ể ươ ể ớ ộ
tr khác nhau c a chi u dài và r ng ta c n l u giá tr này vào trong các bi n (ví d cd, ị ủ ề ộ ầ ư ị ế ụ
cr).
#include <iostream.h> // khai báo t p nguyên m u đ dùng đ c cin, cout ệ ẫ ể ượ
void main() // đây là hàm chính c a ch ng trình ủ ươ
{
float cd, cr ; // khai báo các bi n có tên cd, cr đ ch a đ dài các c nh ế ể ứ ộ ạ
cout << "Hãy nh p chi u dài: " ; cin >> cd ; // nh p d li u ậ ề ậ ữ ệ
cout << "Hãy nh p chi u r ng: " ; cin >> cr ; ậ ề ộ
cout << "Di n tích = " << cd * cr << '\n' ; // in k t qu ệ ế ả
cout << "Chu vi = " << 2 * (cd + cr) << '\n';
return ;
}
Ch ng trình này có th gõ vào máy và ch y. Khi ch y đ n câu l nh nh p, ươ ể ạ ạ ế ệ ậ
ch ng trình d ng đ ch nh n chi u dài và chi u r ng, NSD nh p các giá tr c th , ươ ừ ể ờ ậ ề ề ộ ậ ị ụ ể
ch ng trình s ti p t c th c hi n và in ra k t qu . Thông qua câu l nh nh p d li u và ươ ẽ ế ụ ự ệ ế ả ệ ậ ữ ệ
2 bi n cd, cr NSD có th yêu c u ch ng trình cho k t qu c a m t hình ch nh t b t ế ể ầ ươ ế ả ủ ộ ữ ậ ấ
12Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
kỳ ch không ch trong tr ng h p hình có chi u dài 23 và chi u r ng 11 nh trong ví ứ ỉ ườ ợ ề ề ộ ư
d c th trên. ụ ụ ể
3. Đ nh d ng thông tin c n in ra màn hình ị ạ ầ
M t s đ nh d ng đ n gi n đ c chúng tôi trình bày tr c đây. Các đ nh d ng ộ ố ị ạ ơ ả ượ ướ ở ị ạ
chi ti t và ph c t p h n s đ c trình bày trong các ph n sau c a giáo trình. Đ s ế ứ ạ ơ ẽ ượ ầ ủ ể ử
d ng các đ nh d ng này c n khai báo file nguyên m u <iomanip.h> đ u ch ng trình ụ ị ạ ầ ẫ ở ầ ươ
b ng ch th #include <iomanip.h>. ằ ỉ ị
− endl: T ng đ ng v i kí t xu ng dòng '\n'. ươ ươ ớ ự ố
− setw(n): Bình th ng các giá tr đ c in ra b i l nh cout << s th ng theo l ườ ị ượ ở ệ ẽ ẳ ề
trái v i đ r ng ph thu c vào đ r ng c a giá tr đó. Ph ng th c này qui ớ ộ ộ ụ ộ ộ ộ ủ ị ươ ứ
đ nh đ r ng dành đ in ra các giá tr là n c t màn hình. N u n l n h n đ dài ị ộ ộ ể ị ộ ế ớ ơ ộ
th c c a giá tr , giá tr s in ra theo l ph i, đ tr ng ph n th a (d u cách) ự ủ ị ị ẽ ề ả ể ố ầ ừ ấ ở
tr c. ướ
− setprecision(n): Ch đ nh s ch s c a ph n th p phân in ra là n. S s đ c ỉ ị ố ữ ố ủ ầ ậ ố ẽ ượ
làm tròn tr c khi in ra. ướ
− setiosflags(ios::showpoint): Ph ng th c setprecision ch có tác d ng trên ươ ứ ỉ ụ
m t dòng in. Đ c đ nh các giá tr đã đ t cho m i dòng in (cho đ n khi đ t l i ộ ể ố ị ị ặ ọ ế ặ ạ
giá tr m i) ta s d ng ph ng th c setiosflags(ios::showpoint). ị ớ ử ụ ươ ứ
Ví d sau minh ho cách s d ng các ph ng th c trên. ụ ạ ử ụ ươ ứ
Ví d 3 : ụ
#include <iostream.h> // đ s d ng cout << ể ử ụ
#include <iomanip.h> // đ s d ng các đ nh d ng ể ử ụ ị ạ
#include <conio.h> // đ s d ng các hàm clrscr() và getch() ể ử ụ
void main()
{
clrscr(); // xoá màn hình
cout << "CHI TIÊU" << endl << "=======" << endl ;
cout << setiosflags(ios::showpoint) << setprecision(2) ;
cout << "Sách v " << setw(20) << 123.456 << endl; ở
cout << "Th c ăn" << setw(20) << 2453.6 << endl; ứ
cout << "Qu n áo l nh" << setw(15) << 3200.0 << endl; ầ ạ
13Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
getch(); // t m d ng (đ xem k t qu ) ạ ừ ể ế ả
return ; // k t thúc th c hi n hàm main() ế ự ệ
}
Ch ng trình này khi ch y s in ra b ng sau: ươ ạ ẽ ả
CHI TIÊU
========
Sách v 123.46 ở
Th c ăn 2453.60 ứ
Qu n áo l nh 3200.00 ầ ạ
Chú ý: toán t nh p >> ch y u làm vi c v i d li u ki u s . Đ nh p kí t ho c ử ậ ủ ế ệ ớ ữ ệ ể ố ể ậ ự ặ
xâu kí t , C++ cung c p các ph ng th c (hàm) sau: ự ấ ươ ứ
− cin.get(c): cho phép nh p m t kí t vào bi n kí t c, ậ ộ ự ế ự
− cin.getline(s,n): cho phép nh p t i đa n-1 kí t vào xâu s. ậ ố ự
các hàm trên khi th c hi n s l y các kí t còn l i trong b nh đ m (c a l n nh p ự ệ ẽ ấ ự ạ ộ ớ ệ ủ ầ ậ
tr c) đ gán cho c ho c s. Do toán t cin >> x s đ l i kí t xu ng dòng trong b đ m ướ ể ặ ử ẽ ể ạ ự ố ộ ệ
nên kí t này s làm trôi các l nh sau đó nh cin.get(c), cin.getline(s,n) (máy không ự ẽ ệ ư
d ng đ nh p cho c ho c s). Vì v y tr c khi s d ng các ph ng th c cin.get(c) ho c ừ ể ậ ặ ậ ướ ử ụ ươ ứ ặ
cin.getline(s,n) nên s d ng ph ng th c cin.ignore(1) đ l y ra kí t xu ng dòng còn ử ụ ươ ứ ể ấ ự ố
sót l i trong b đ m. Ví d đo n l nh sau cho phép nh p m t s nguyên x (b ng toán t ạ ộ ệ ụ ạ ệ ậ ộ ố ằ ử
>>) và m t kí t c (b ng ph ng th c cin.get(c)): ộ ự ằ ươ ứ
int x;
char c;
cin >> x; cin.ignore(1);
cin.get(c);
4. Vào/ra trong C
Trong ph n trên chúng tôi đã trình bày 2 toán t vào/ra và m t s ph ng th c, ầ ử ộ ố ươ ứ
hàm nh p và đ nh d ng trong C++. Ph n này chúng tôi trình bày các câu lênh nh p ậ ị ạ ầ ậ
xu t theo khuôn d ng cũ trong C. Hi n nhiên các câu l nh này v n dùng đ c trong ấ ạ ể ệ ẫ ượ
ch ng trình vi t b ng C++, tuy nhiên ch nên s d ng ho c các câu l nh c a C++ ươ ế ằ ỉ ử ụ ặ ệ ủ
ho c c a C, không nên dùng l n l n c hai vì d gây nh m l n. Do đó m c này ch có ặ ủ ẫ ộ ả ễ ầ ẫ ụ ỉ
14Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
giá tr tham kh o đ b n đ c có th hi u đ c các câu l nh vào/ra trong các ch ng ị ả ể ạ ọ ể ể ượ ệ ươ
trình vi t theo NNLT C cũ. ế
a. In k t qu ra màn hình ế ả
Đ in các giá tr bt_1, bt_2, …, bt_n ra màn hình theo m t khuôn d ng mong ể ị ộ ạ
mu n ta có th s d ng câu l nh sau đây: ố ể ử ụ ệ
printf(dòng đ nh d ng, bt_1, bt_2, ..., bt_n) ; ị ạ
trong đó dòng đ nh d ng là m t dãy kí t đ t trong c p d u nháy kép (“”) qui đ nh ị ạ ộ ự ặ ặ ấ ị
khuôn d ng c n in c a các giá tr bt_1, bt_2, …, bt_n. Các bt_i có th là các h ng, bi n ạ ầ ủ ị ể ằ ế
hay các bi u th c tính toán. Câu l nh trên s in giá tr c a các bt_i này theo th t xu t ể ứ ệ ẽ ị ủ ứ ự ấ
hi n c a chúng và theo qui đ nh đ c cho trong dòng đ nh d ng. ệ ủ ị ượ ị ạ
Ví d , gi s x = 4, câu l nh: ụ ả ử ệ
printf(“%d %0.2f”, 3, x + 1) ;
s in các s 3 và 5.00 ra màn hình, trong đó 3 đ c in d i d ng s nguyên (đ c ẽ ố ượ ướ ạ ố ượ
qui đ nh b i “%d”) và x + 1 (có giá tr là 5) đ c in d i d ng s th c v i 2 s l th p ị ở ị ượ ướ ạ ố ự ớ ố ẻ ậ
phân (đ c qui đ nh b i “%0.2f”). C th , các kí t đi sau kí hi u % dùng đ đ nh d ng ượ ị ở ụ ể ự ệ ể ị ạ
vi c in g m có: ệ ồ
d in s nguyên d i d ng h th p phân ố ướ ạ ệ ậ
o in s nguyên d ng h 8 ố ạ ệ
x, X in s nguyên d ng h 16 ố ạ ệ
u in s nguyên d ng không d u ố ạ ấ
c in kí t ự
s in xâu kí t ự
e, E in s th c d ng d u ph y đ ng ố ự ạ ấ ẩ ộ
f in s th c d ng d u ph y tĩnh ố ự ạ ấ ẩ
− Các kí t trên ph i đi sau d u %. Các kí t n m trong dòng đ nh d ng n u ự ả ấ ự ằ ị ạ ế
không đi sau % thì s đ c in ra màn hình. Mu n in % ph i vi t 2 l n (t c ẽ ượ ố ả ế ầ ứ
%%).
Ví d câu l nh: printf(“T l h c sinh gi i: %0.2f %%”, 32.486) ; ụ ệ ỉ ệ ọ ỏ
s in câu “T l h c sinh gi i: “, ti p theo s in s 32.486 đ c làm tròn đ n 2 s l ẽ ỉ ệ ọ ỏ ế ẽ ố ượ ế ố ẻ
th p phân l p vào v trí c a “%0.2f”, và cu i cùng s in d u “%” (do có %% trong dòng ậ ấ ị ủ ố ẽ ấ
đ nh d ng). Câu đ c in ra màn hình s là: ị ạ ượ ẽ
T l h c sinh gi i: 32.49% ỉ ệ ọ ỏ
Chú ý: M i bt_i c n in ph i có m t đ nh d ng t ng ng trong dòng đ nh d ng. ỗ ầ ả ộ ị ạ ươ ứ ị ạ
15Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
Ví d câu l nh trên cũng có th vi t: ụ ệ ể ế
printf(“%s %0.2f” , “T l h c sinh gi i: “, 32.486); ỉ ệ ọ ỏ
trong câu l nh này có 2 bi u th c c n in. Bi u th c th nh t là xâu kí t “T l h c ệ ể ứ ầ ể ứ ứ ấ ự ỉ ệ ọ
sinh gi i:” đ c in v i khuôn d ng %s (in xâu kí t ) và bi u th c th hai là 32.486 ỏ ượ ớ ạ ự ể ứ ứ
đ c in v i khuôn d ng %0.2f (in s th c v i 2 s l ph n th p phân). ượ ớ ạ ố ự ớ ố ẻ ầ ậ
− N u gi a kí t % và kí t đ nh d ng có s bi u th đ r ng c n in thì giá tr in ế ữ ự ự ị ạ ố ể ị ộ ộ ầ ị
ra s đ c gióng c t sang l ph i, đ tr ng các d u cách phía tr c. N u đ ẽ ượ ộ ề ả ể ố ấ ướ ế ộ
r ng âm (thêm d u tr − phía tr c) s gióng c t sang l trái. N u không có ộ ấ ừ ướ ẽ ộ ề ế
đ r ng ho c đ r ng b ng 0 (ví d %0.2f) thì đ r ng đ c t đi u ch nh ộ ộ ặ ộ ộ ằ ụ ộ ộ ượ ự ề ỉ
đúng b ng đ r ng c a giá tr c n in. ằ ộ ộ ủ ị ầ
− D u + tr c đ r ng đ in giá tr s kèm theo d u (d ng ho c âm) ấ ướ ộ ộ ể ị ố ấ ươ ặ
− Tr c các đ nh d ng s c n thêm kí t l (ví d ld, lf) khi in s nguyên dài long ướ ị ạ ố ầ ự ụ ố
ho c s th c v i đ chính xác g p đôi double. ặ ố ự ớ ộ ấ
Ví d 4 : ụ
main()
{
int i = 2, j = 3 ;
printf(“Ch ng trình tính t ng 2 s nguyên:\ni + j = %d”, i+j); ươ ổ ố
}
s in ra: ẽ
Ch ng trình tính t ng 2 s nguyên: ươ ổ ố
i + j = 5.
b. Nh p d li u t bàn phím ậ ữ ệ ừ
scanf(dòng đ nh d ng, bi n_1, bi n_2, ..., bi n_n) ; ị ạ ế ế ế
L nh này cho phép nh p d li u vào cho các bi n bi n_1, …, bi n_n. Trong đó ệ ậ ữ ệ ế ế ế
dòng đ nh d ng ch a các đ nh d ng v ki u bi n (nguyên, th c, kí t …) đ c vi t nh ị ạ ứ ị ạ ề ể ế ự ự ượ ế ư
trong mô t câu l nh printf. Các bi n đ c vi t d i d ng đ a ch c a chúng t c có d u ả ệ ế ượ ế ướ ạ ị ỉ ủ ứ ấ
& tr c m i tên bi n. Ví d câu l nh: ướ ỗ ế ụ ệ
scanf(“%d %f %ld”, &x, &y, &z) ;
cho phép nh p giá tr cho các bi n x, y, z trong đó x là bi n nguyên, y là bi n th c ậ ị ế ế ế ự
và z là bi n nguyên dài (long). Câu l nh: ế ệ
16Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
scanf(“%2d %f %lf %3s”, &i, &x, &d, s);
cho phép nh p giá tr cho các bi n i, x, d, s, trong đó i là bi n nguyên có 2 ch s , ậ ị ế ế ữ ố
f là bi n th c (đ dài tùy ý), d là bi n nguyên dài và s là xâu kí t có 3 kí t . Gi s ế ự ộ ế ự ự ả ử
NSD nh p vào dãy d li u: 12345 67abcd ậ ữ ệ ↵ thì các bi n trên s đ c gán các giá tr ế ẽ ượ ị
nh sau: i = 12, x = 345, d = 67 và s = “abc”. Kí t d và d u enter ( ư ự ấ ↵) s đ c l u l i ẽ ượ ư ạ
trong b nh và t đ ng gán cho các bi n c a l n nh p sau. ộ ớ ự ộ ế ủ ầ ậ
Cu i cùng, ch ng trình trong ví d 3 đ c vi t l i v i printf() và scanf() nh sau: ố ươ ụ ượ ế ạ ớ ư
Ví d 5 : ụ
#include <stdio.h> // đ s d ng các hàm printf() và scanf() ể ử ụ
#include <conio.h> // đ s d ng các hàm clrscr() và getch() ể ử ụ
void main()
{
clrscr(); // xoá màn hình
printf("CHI TIÊU\n=======\n") ;
printf("Sách v %20.2f\n" , 123.456) ; ở
printf("Th c ăn %20.2f\n" , 2453.6) ; ứ
printf(“Qu n áo l nh %15.2f\n" , 3200.0) ; ầ ạ
getch(); // t m d ng (đ xem k t qu ) ạ ừ ể ế ả
return ; // k t thúc th c hi n hàm main() ế ự ệ
}
BÀI T P Ậ
1. Nh ng tên g i nào sau đây là h p l : ữ ọ ợ ệ
− x − 123variabe − tin_hoc − toan tin − so-dem
− RADIUS − one.0 − number# − Radius − nam2000
2. B n hãy th vi t m t ch ng trình ng n nh t có th đ c. ạ ử ế ộ ươ ắ ấ ể ượ
3. Tìm các l i cú pháp trong ch ng trình sau: ỗ ươ
17Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
#include (iostream.h)
void main(); / Gi i ph ng trình b c 1 ả ươ ậ
{
cout << 'Day la ch ng trình: Gptb1.\nXin chao cac ban'; ươ
getch();
}
4. Vi t ch ng trình in n i dung m t bài th nào đó. ế ươ ộ ộ ơ
5. Vi t ch ng trình in ra 4 dòng, 2 c t g m các s sau và gióng c t: ế ươ ộ ồ ố ộ
− th ng theo l trái 0.63 64.1 ẳ ề
− th ng theo l ph i 12.78 -11.678 ẳ ề ả
− th ng theo d u ch m th p phân -124. 6 59.002 ẳ ấ ấ ậ
65.7 -1200.654
6. Hãy vi t và ch y các ch ng trình trong các ví d 3, 5. ế ạ ươ ụ
7. Ch ng trình sau khai báo 5 bi n kí t a, b, c, d, e và m t bi n s nam. Hãy đi n ươ ế ự ộ ế ố ề
thêm các câu l nh vào các dòng … đ ch ng trình th c hi n nhi m v sau: ệ ể ươ ự ệ ệ ụ
− Nh p giá tr cho bi n nam ậ ị ế
− Nh p giá tr cho các bi n kí t a, b, c, d, e. ậ ị ế ự
− In ra màn hình dòng ch đ c ghép b i 5 kí t đã nh p và ch "năm" sau đó ữ ượ ở ự ậ ữ
in s đã nh p (nam). Ví d n u 5 ch cái đã nh p là 'H', 'A', 'N', 'O', 'I' và nam ố ậ ụ ế ữ ậ
đ c nhap là 2000, thì màn hình in ra dòng ch : HANOI năm 2000. ượ ữ
− Nh p ch ng trình đã s a vào máy và ch y đ ki m tra k t qu . ậ ươ ử ạ ể ể ế ả
#include <iostream.h>
#include <conio.h>
main()
{
int nam;
char a, b, c, d, e;
clrscr();
cin >> nam ;
… ;
cin.get(a); cin.get(b); cin.get(c); … ; … ;
18Ch ng 1. Các khái ni m c b n c a C++ ươ ệ ơ ả ủ
// in k t qu ế ả
cout << a << … << … << … << … << " nam " << … ;
getch();
}
19Ch ng 2. Ki u d li u, bi u th c và câu l nh ươ ể ữ ệ ể ứ ệ
CH NG 2 ƯƠ
KI U D LI U, BI U TH C VÀ CÂU L NH Ể Ữ Ệ Ể Ứ Ệ
Ki u d li u đ n gi n ể ữ ệ ơ ả
H ng - khai báo và s d ng h ng ằ ử ụ ằ
Bi n - khai báo và s d ng bi n ế ử ụ ế
Phép toán, bi u th c và câu l nh ể ứ ệ
Th vi n các hàm toán h c ư ệ ọ
I. KI U D LI U Đ N GI N Ể Ữ Ệ Ơ Ả
1. Khái ni m v ki u d li u ệ ề ể ữ ệ
Thông th ng d li u hay dùng là s và ch . Tuy nhiên vi c phân chia ch 2 loai ườ ữ ệ ố ữ ệ ỉ
d li u là không đ . Đ d dàng h n cho l p trình, h u h t các NNLT đ u phân chia d ữ ệ ủ ể ễ ơ ậ ầ ế ề ữ
li u thành nhi u ki u khác nhau đ c g i là các ki u c b n hay chu n. Trên c s k t ệ ề ể ượ ọ ể ơ ả ẩ ơ ở ế
h p các ki u d li u chu n, NSD có th t đ t ra các ki u d li u m i đ ph c v cho ợ ể ữ ệ ẩ ể ự ặ ể ữ ệ ớ ể ụ ụ
ch ng trình gi i quy t bài toán c a mình. Có nghĩa lúc đó m i đ i t ng đ c qu n lý ươ ả ế ủ ỗ ố ượ ượ ả
trong ch ng trình s là m t t p h p nhi u thông tin h n và đ c t o thành t nhi u ươ ẽ ộ ậ ợ ề ơ ượ ạ ừ ề
lo i (ki u) d li u khác nhau. D i đây chúng ta s xét đ n m t s ki u d li u chu n ạ ể ữ ệ ướ ẽ ế ộ ố ể ữ ệ ẩ