Tải bản đầy đủ (.pdf) (110 trang)

Bài giảng kỹ thuật lập trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (936.96 KB, 110 trang )

MƠN KỸ THUẬT LẬP TRÌNH
Đối tượng : SV ₫ại học chính quy ngành CNTT
Nội dung chính gồm 12 chương :
1. Ơn lại máy tính số, ngơn ngữ, thể
hiện dữ liệu.
2. Phân tích top-down & bottom-up.
3. Cấu trúc dữ liệu & giải thuật.
4. Cấu trúc ₫iều khiển & gọi hàm.
5. Lặp và ₫ệ qui.
6. Cơ bản về kiểm thử phần mềm.

7. Ôn lại hướng ₫ối tượng.
8. Xây dựng phầm mềm bằng
cách lắp ghép những linh kiện
cơ bản.
9. Tính tổng qt hố.
10. Thừa kế trong xây dựng class
₫ối tượng mới.
11. Tính ₫a xạ.
12. Tính thường trú.

Tài liệu tham khảo :
ƒ Tập slide bài giảng & thực hành của môn học này.
ƒ 3 CD MSDN trong Microsoft Visual Studio.
Môn : Kỹ thuật lập trình

Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

Slide 1


MƠN KỸ THUẬT LẬP TRÌNH

Chương 1

ƠN LẠI MÁY TÍNH SỐ, NGƠN NGỮ
LẬP TRÌNH, THỂ HIỆN DỮ LIỆU

Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 2

1


Các khái niệm cơ bản về máy tính số
ƒ

Máy tính số là thiết bị có thể thực hiện 1 số hữu hạn các chức năng cơ
bản (tập lệnh), cơ chế thực hiện các lệnh là tự ₫ộng, bắt ₫ầu từ lệnh
₫ược chỉ ₫ịnh nào ₫ó rồi tuần tự từng lệnh kế tiếp cho ₫ến lệnh cuối
cùng. Danh sách các lệnh ₫ược thực hiện này ₫ược gọi là chương trình.

ƒ Các lệnh mà máy hiểu và thực hiện ₫ược ₫ược gọi là lệnh máy. Ta dùng
ngôn ngữ ₫ể miêu tả các lệnh. Ngơn ngữ lập trình cấu thành từ 2 yếu tố
chính : cú pháp và ngữ nghĩa. Cú pháp qui ₫ịnh trật tự kết hợp các phần
tử ₫ể cấu thành 1 lệnh (câu), còn ngữ nghĩa cho biết ý nghĩa của lệnh
₫ó.

ƒ Bất kỳ cơng việc (bài tốn) ngồi ₫ời nào cũng có thể ₫ược phân chia
thành trình tự nhiều cơng việc nhỏ hơn. Trình tự các cơng việc nhỏ này
₫ược gọi là giải thuật giải quyết cơng việc ngồi ₫ời. Mỗi cơng việc nhỏ
hơn cũng có thể ₫ược chia nhỏ hơn nữa nếu nó cịn phức tạp,... ⇒ cơng
việc ngồi ₫ời có thể ₫ược miêu tả bằng 1 trình tự các lệnh máy
(chương trình ngơn ngữ máy).
Khoa Cơng nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 3

Các khái niệm cơ bản về máy tính số (tt)
ƒ vấn ₫ề mấu chốt của việc dùng máy tính giải quyết cơng việc ngồi ₫ời
là lập trình (₫ược hiểu nơm na là qui trình xác ₫ịnh trình tự ₫úng các
lệnh máy ₫ể thực hiện cơng việc). Cho ₫ến nay, lập trình là cơng việc
của con người (với sự trợ giúp ngày càng nhiều của máy tính).
ƒ Với cơng nghệ phần cứng hiện nay, ta chỉ có thể chế tạo các máy tính
mà tập lệnh máy rất sơ khai, mỗi lệnh máy chỉ có thể thực hiện 1 công
việc rất nhỏ và ₫ơn giản ⇒ công việc ngồi ₫ời thường tương ₫ương với
trình tự rất lớn (hàng triệu) các lệnh máy ⇒ Lập trình bằng ngơn ngữ
máy rất phức tạp, tốn nhiều thời gian, công sức, kết quả rất khó bảo trì,
phát triển.
ƒ Ta muốn có máy luận lý với tập lệnh (₫ược ₫ặc tả bởi ngơn ngữ lập
trình) cao cấp và gần gủi hơn với con người. Ta thường hiện thực máy
này bằng 1 máy vật lý + 1 chương trình dịch. Có 2 loại chương trình
dịch : trình biên dịch (compiler) và trình thơng dịch (interpreter).
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 4

2


Các khái niệm cơ bản về máy tính số (tt)
ƒ Gọi ngơn ngữ máy vật lý là N0. Trình biên dịch ngôn ngữ N1 sang
ngôn ngữ N0 sẽ nhận ₫ầu vào là chương trình ₫ược viết bằng ngơn
ngữ N1, phân tích từng lệnh N1 rồi chuyển thành danh sách các lệnh
ngơn ngữ N0 có chức năng tương ₫ương. Để viết chương trình dịch từ
ngơn ngữ N1 sang N0 dễ dàng, ₫ộ phức tạp của từng lệnh ngôn ngữ
N1 không quá cao so với từng lệnh ngôn ngữ N0.
ƒ Sau khi có máy luận lý hiểu ₫ược ngơn ngữ luận lý N1, ta có thể ₫ịnh
nghĩa và hiện thực máy luận lý N2 theo cách trên và tiếp tục ₫ến khi ta
có 1 máy luận lý hiểu ₫ược ngơn ngữ Nm rất gần gũi với con người, dễ
dàng miêu tả giải thuật của bài tốn cần giải quyết...
ƒ Nhưng qui trình trên chưa có ₫iểm dừng, với yêu cầu ngày càng cao
và kiến thức ngày càng nhiều, người ta tiếp tục ₫ịnh nghĩa những ngôn
ngữ mới với tập lệnh ngày càng gần gũi hơn với con người ₫ể miêu tả
giải thuật càng dễ dàng, gọn nhẹ và trong sáng hơn.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 5


Các cấp ₫ộ ngơn ngữ lập trình
ƒ Ngơn ngữ máy vật lý là loại ngơn ngữ thấp nhất mà người lập trình bình
thường có thể dùng ₫ược. Các lệnh và tham số của lệnh ₫ược miêu tả
bởi các số nhị phân (binary) hay hexadecimal. Đây là loại ngơn ngữ mà
máy vật lý có thể hiểu trực tiếp, nhưng con người thì gặp nhiều khó
khăn trong việc viết và bảo trì chương trình ở cấp này.
ƒ Ngôn ngữ assembly rất gần với ngôn ngữ máy, những lệnh cơ bản nhất
của ngôn ngữ assembly tương ứng với lệnh máy nhưng ₫ược biểu diễn
dưới dạng gợi nhớ. Ngoài ra, người ta tăng cường thêm khái niệm "lệnh
macro" ₫ể nâng sức mạnh miêu tả giải thuật.
ƒ Ngôn ngữ cấp cao theo trường phái lập trình cấu trúc như Pascal, C,...
Tập lệnh của ngôn ngữ này khá mạnh và gần với tư duy của người bình
thường.
ƒ Ngơn ngữ hướng ₫ối tượng như C++, Visual Basic, Java, C#,... cải tiến
phương pháp cấu trúc chương trình sao cho trong sáng, ổn ₫ịnh, dễ
phát triển và thay thế linh kiện.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 6

3


Thí dụ về chương trình VC++
ƒ Các lệnh của chương trình (code) sẽ truy xuất (₫ọc và/hoặc ghi) thơng
tin (dữ liệu).
ƒ Chương trình giải quyết bài tốn nào ₫ó có thể truy xuất nhiều dữ liệu

khác nhau với tính chất rất ₫a dạng. Để quản lý việc truy xuất 1 dữ liệu
cụ thể, ta cần 3 thông tin về dữ liệu ₫ó :
- tên nhận dạng (identifier) xác ₫ịnh vị trí của dữ liệu.
- kiểu dữ liệu (type) miêu tả cấu trúc của dữ liệu.
- tầm vực truy xuất (visibility) xác ₫ịnh các lệnh ₫ược phép truy xuất
dữ liệu tương ứng.
ƒ Chương trình cổ ₫iển = dữ liệu + giải thuật.
ƒ Chương trình con (function, subroutine,...) là 1 ₫oạn code thực hiện
chức năng ₫ược dùng nhiều lần ở nhiều vị trí trong chương trình, nó
cho phép cấu trúc chương trình, sử dụng lại code...
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 7

Thí dụ về chương trình VC++
ƒ VC++ sử dụng tập ký tự ASCII như là các ký tự cơ bản của ngôn ngữ.
Trong các hằng chuỗi, VC++ cho phép dùng các ký tự ANSI.
ƒ Để xác ₫ịnh từng câu lệnh (statement), VC++ dùng các từ khóa (key
word) như if, else, for, while,... Khơng ₫ược dùng các từ khóa cho mục
₫ích riêng của người lập trình.
ƒ VC++ phân biệt rõ ràng chữ hoa và chữ thường (có thể dùng If, IF ₫ể
₫ặt tên biến mà không sợ trùng với từ khóa if).
ƒ Chương trình VC++ là danh sách các câu lệnh VC++ với 1 ₫ộ dài nào
₫ó và 1 trình tự nào ₫ó tùy thuộc vào vấn ₫ề cần giải quyết và giải
thuật giải quyết vấn ₫ề ₫ó.
ƒ Nếu là chương trình nhỏ, nó ₫ược chứa trên 1 file *.cpp, nếu chương
trình lớn, nó thường ₫ược chia nhỏ thành nhiều module chức năng, mỗi

module thường ₫ược lưu trên 1 file *.cpp.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 8

4


Cấu trúc 1 chương trình cổ ₫iển
Chương trình = cấu trúc dữ liệu + giải thuật
module
(package)

global data
local data
of module

entry 'start'

local data
of function
Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 9

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


Mô hình máy tính số Von Neumann
chứa code và data
₫ang thực thi

Bộ nhớ
(Memory)

thực thi từng lệnh
của chương trình

Đơn vị xử lý
(CPU)

giao tiếp với bên ngoài
(thường là người) ₫ể
nhập/xuất tin

Các thiết bị
vào ra (I/O)

Bus giao tiếp

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 10


5


Cơ bản về việc lưu trữ và xử lý tin trong máy tính
Phần tử nhớ nhỏ nhất của máy tính số chỉ có thể chứa 2 giá trị : 0 và 1
(ta gọi là bit).
Ta kết hợp nhiều phần tử nhớ ₫ể có thể miêu tả ₫ại lượng lớn hơn. Thí
dụ ta dùng 8 bit ₫ể miêu tả 28 = 256 giá trị khác nhau. Dãy 8 bit nhớ
₫ược gọi là byte, ₫ây là 1 ô nhớ trong bộ nhớ của máy tính.
Bộ nhớ trong của máy tính ₫ược dùng ₫ể chứa dữ liệu và code của
chương trình ₫ang thực thi. Nó là 1 dãy ₫ồng nhất các ơ nhớ 8 bit, mỗi ô
nhớ ₫ược truy xuất ₫ộc lập thông qua ₫ịa chỉ của nó (tên nhận dạng).
Thường ta dùng chỉ số từ 0 - n ₫ể miêu tả ₫ịa chỉ của từng ơ nhớ.
Mặc dù ngồi ₫ời ta ₫ã quen dùng hệ thống số thập phân, nhưng về
phần cứng bên trong máy tính, máy chỉ có thể chứa và xử lý trực tiếp dữ
liệu ở dạng nhị phân. Do ₫ó trong chương này, ta sẽ giới thiệu các khái
niệm nền tảng về hệ thống số và cách miêu tả dữ liệu trong máy tính.
Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 11

Cơ bản về hệ thống số
Hệ thống số (number system) là công cụ ₫ể biểu thị ₫ại lượng. Một hệ
thống số gồm 3 thành phần chính :
1. cơ số : số lượng ký số (ký hiệu ₫ể nhận dạng các số cơ bản).
2. qui luật kết hợp các ký số ₫ể miêu tả 1 ₫ại lượng nào ₫ó.
3. các phép tính cơ bản trên các số.

Trong 3 thành phần trên, chỉ có thành phần 1 là khác nhau giữa các hệ
thống số, còn 2 thành phần 2 và 3 thì giống nhau giữa các hệ thống
số.
Thí dụ : - hệ thống số thập phân (hệ thập phân) dùng 10 ký số :
0,1,2,3,4,5,6,7,8,9.
- hệ nhị phân dùng 2 ký số : 0,1.
- hệ bát phân dùng 8 ký số : 0,1,2,3,4,5,6,7.
- hệ thập lục phân dùng 16 ký số : 0 ₫ến 9,A,B,C,D,E,F.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 12

6


Cơ bản về hệ thống số - Qui luật miêu tả lượng
Biểu diễn của lượng Q trong hệ thống số B (B>1) là :
dndn-1...d1d0d-1...d-m ⇔
Q = dn*Bn + dn-1*Bn-1 +...+d0*B0 +d-1*B-1 +...+d-m*B-m
trong ₫ó mỗi di là 1 ký số trong hệ thống B.
Trong thực tế lập trình bằng ngơn ngữ cấp cao, ta thường dùng hệ
thống số thập phân ₫ể miêu tả dữ liệu số của chương trình (vì ₫ã
quen). Chỉ trong 1 số trường hợp ₫ặc biệt, ta mới dùng hệ thống số nhị
phân (hay thập lục phân) ₫ể miêu tả 1 vài giá trị nguyên, trong trường
hợp này, qui luật biểu diễn của lượng nguyên Q trong hệ thống số B sẽ
₫ơn giản là :
dndn-1...d1d0 ⇔

Q = dn*Bn + dn-1*Bn-1 +...+d1*B1+d0*B0
trong ₫ó mỗi di là 1 ký số trong hệ thống B.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 13

Cơ bản về hệ thống số - Vài thí dụ
Thí dụ về biểu diễn các lượng trong các hệ thống số :
- lượng "mười bảy" ₫ược miêu tả là 17 trong hệ thập phân vì :
17 = 1*101+7*100
- lượng "mười bảy" ₫ược miêu tả là 11 trong hệ thập lục phân vì :
11 = 1*161+1*160
- lượng "mười bảy" ₫ược miêu tả là 10001 trong hệ nhị phân vì :
10001 = 1*24+0*23+0*22+0*21+1*20
Trong môi trường sử dụng ₫ồng thời nhiều hệ thống số, ₫ể tránh nhằm
lẫn trong các biểu diễn của các lượng khác nhau, ta sẽ thêm ký tự
nhận dạng hệ thống số ₫ược dùng trong biểu diễn liên quan. Thí dụ ta
viết :
- 17D ₫ể xác ₫ịnh sự biểu diễn trong hệ thống số thập phân.
- 11H (hệ thống số thập lục phân.)
- 10001B (hệ thống số thập nhị phân.)
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 14


7


Cơ bản về hệ thống số - Các phép tính
Các phép tính cơ bản trong 1 hệ thống số là :
1. phép cộng
(+).
2. phép trừ
(-).
3. phép chia
(/).
4. phép nhân
(*).
5. phép dịch trái n ký số
(<< n).
6. phép dịch phải n ký số
(>> n).
Ngoài ra do ₫ặc ₫iểm của hệ nhị phân, hệ này cịn cung cấp 1 số phép
tính sau (các phép tính luận lý) :
1. phép OR bit
(|).
2. phép AND bit
(&).
3. phép XOR bit
(^).
4. ....
Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 15


Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

Thí dụ về phép cộng, trừ, nhân
Thí dụ về các phép tính cơ bản (các giá trị ₫ều ₫ược biểu diễn bằng hệ
nhị phân :
0 1 1 0

1 0 0 1

1 0 0 1

+ 0 0 1 1

- 0 0 1 1

* 0 1 0 1

1 0 0 1

0 1 1 0

1 0 0 1
0 0 0 0
1 0 0 1
1 0 1 1 0 1

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 16

8


Thí dụ về phép chia
Thí dụ về các phép tính cơ bản (các giá trị ₫ều ₫ược biểu diễn bằng hệ
nhị phân) :
số bị chia
1 0 1 1
- 1 0

1 0

số chia

1 0 1

thương số

0 1
- 0 0
1 1
- 1 0

dư số


0 1

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 17

Thí dụ về phép dịch ký số
Thí dụ về các phép tính dịch ký số (các giá trị ₫ều ₫ược biểu diễn bằng
hệ nhị phân) :
0 0 0 0 1 1 0 1

bị dịch trái 2 bit thành 0 0 0 0 1 1 0 1 0 0
(tương dương với nhân 22)

0 0
0 0
0 0 0 0 1 1 0 1

bị dịch phải 2 bit thành

0 0 0 0 1 1 0 1

(tương dương với chia 22)

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 18

9


Các phép tính của ₫ại số Boole
Đại số Boole nghiên cứu các phép toán thực hiện trên các biến chỉ có
2 giá trị 0 và 1, tương ứng với hai thái cực luận lý "sai" và "₫úng" (hay
"khơng" và "có") của ₫ời thường. Các phép toán này gồm :
x

y

0

0

0

1

1

0

1

1


not x x and y x nand y
1

0

x or y

x nor y

x xor y

0

1

0

1

0

0

1

1

0


1

0

1

1

0

1

1

0

1

0

0

Biểu thức Boole là 1 biểu thức toán hoc cấu thành từ các phép toán
Boole trên các toán hạng là các biến chỉ chứa 2 trị 0 và 1.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 19


Các ₫ơn vị nhớ thường dùng
Các ₫ơn vị ₫o lường bộ nhớ thường dùng là :
1. byte : 8bit, có thể miêu tả ₫ược 28 = 256 giá trị khác nhau.
2. word : 2 byte, có thể miêu tả ₫ược 216 = 65536 giá trị khác nhau.
3. double word : 4 byte, có thể miêu tả ₫ược 232 = 4.294.967.296
giá trị khác nhau.
4. KB (kilo byte) = 210 = 1024 byte.
5. MB (mega byte) = 220 = 1024KB = 1.048.576 byte.
6. GB (giga byte) = 230 = 1024MB = 1.073.741.824 byte.
7. TB (tetra byte) = 240 = 1024GB = 1.099.511.627.776 byte.
Thí dụ, RAM của máy bạn là 256MB, ₫ĩa cứng là 40GB.

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 20

10


Biểu diễn số nguyên trong Visual C++
Tùy ngôn ngữ lập trình mà
cách biểu diễn số trong máy
có những khác biệt nhất
₫ịnh. Riêng VC++ có nhiều
phương pháp biểu diễn số
khác nhau, trong ₫ó 2 cách

thường dùng là số nguyên
và số thực.

Sự biểu diễn
00000000 00000000 00000000 00000000

0

00000000 00000000 00000000 00000001

1

....
01111111 11111111 11111111 11111111

2147483647

10000000 00000000 00000000 00000000

-2147483648

Máy dùng 4 byte ₫ể chứa dữ
liệu nguyên (int) theo qui 10000000 00000000 00000000 00000001
₫ịnh sau (khi chứa vào bộ ....
nhớ thì byte trọng số nhỏ ₫i
11111111 11111111 11111111 11111111
trước - LE - Little Endian) :

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


giá trị

-2147483647

-1

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 21

Biểu diễn số thực trong VC++
Để miêu tả ₫ược các giá trị nguyên nằm trong phạm vi nhỏ từ -32768
₫ến 32767 ít tốn chỗ, VC++ cung cấp kiểu 'short', kiểu này dùng 2 byte
₫ể miêu tả 1 giá trị nguyên với cùng nguyên tắc như kiểu 'int'.
Máy dùng 8 byte ₫ể chứa dữ liệu thực (Kiểu double) theo dạng sau :
±m *Be, m gọi là ₫ịnh trị (0.1≤m<1), B là cơ số và e là số mũ.

b63
1

b0
11

52
phần ₫ịnh trị m
phần số mũ e với cơ số B = 2
bit dấu

Khoa Công nghệ Thông tin

Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 22

11


Biểu diễn chuỗi ký tự trong VC++
Chuỗi ký tự là danh sách nhiều ký tự, mỗi ký tự ₫ược miêu tả trong máy
bởi n bit nhớ :
ƒ

mã ASCII dùng 7 bit (dùng luôn 1 byte nhưng bỏ bit 8) ₫ể miêu tả
1 ký tự ⇒ tập ký tự mà mã ASCII miêu tả ₫ược là 128.

ƒ

mã ISO8859-1 dùng 8 bit (1byte) ₫ể miêu tả 1 ký tự ⇒ tập ký tự
mà mã ISO8859-1 miêu tả ₫ược là 256.

ƒ

mã Unicode trên Windows dùng 16 bit (2 byte) ₫ể miêu tả 1 ký tự
⇒ tập ký tự mà mã Unicode trên Windows miêu tả ₫ược là
65536.

ƒ


...

Hiện có nhiều loại mã tiếng Việt khác nhau, ₫a số dùng mã ISO8859-1
rồi qui ₫ịnh lại cách hiển thị 1 số ký tự thành ký tự Việt. Riêng Unicode là
bộ mã thống nhất toàn cầu, trong ₫ó có ₫ủ các ký tự Việt.
Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 23

Bảng mã ASCII 7 bit
Mã ASCII dùng các giá trị (mã) từ 0 - 127 ₫ể miêu tả các ký tự :
ƒ

mã từ 0 - 31 là các mã ₫iều khiển như CR=13 (Carriage Return),
LF=10 (Line Feed), ESC=27 (Escape)...

ƒ

mã 32 miêu tả ký tự trống, 33 miêu tả ký tự !,... theo bảng sau :

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 24

12


Bảng mã ISO8859-1 (8 bit)
Mã ISO8859-1 dùng các giá trị (mã) từ 0 - 255 ₫ể miêu tả các ký tự (128
mã ký tự ₫ầu qui ₫ịnh giống như mã ASCII) :
ƒ

mã từ 0 - 31 là các mã ₫iều khiển như CR=13 (Carriage Return),
LF=10 (Line Feed), ESC=27 (Escape)...

ƒ

mã 32 miêu tả ký tự trống, 33 miêu tả ký tự !,... theo bảng sau :

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ



Ž

‘ ’ “ ” • – — ˜ ™ š › œ


ž Ÿ

¡ ¢ £ Ô Ơ Ư Đ ă â ê ô ơ - đ à ả Ã á ạ ằ ẳ ẵ ắ
ặ ầ ẩ ẫ ấ ậ è Í Ỵ Ï Ð Đ Ị Ĩ Ơ Õ Ư ì ỉ ĩ í ị ò
ỏ õ ó ọ ồ ổ ỗ ố ộ ờ ở ì í ỵ ï ð đ ị ó ơ õ ử ữ ứ ự ỳ ỷ ỹ ý ỵ
Mụn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 25

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Bảng mã tiếng Việt ĐHBK 1 byte
Mã ĐHBK 1 byte có ₫ược bằng cách hiệu chỉnh bảng mã ISO8859-1 :
ƒ

mã từ 0 - 31 là các mã ₫iều khiển như CR=13 (Carriage Return),
LF=10 (Line Feed), ESC=27 (Escape)...

ƒ

mã 32 miêu tả ký tự trống, 33 miêu tả ký tự !,... theo bảng sau :

!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
Á

ã


ĂÂÊÔƠƯĐăâêôơ-đàảÃáạằẳẵắ
ặầẩẫấậèẻẽéẹềểễếệìỉĩíịò
ỏõóọồổỗốộờởỡớợùủũúụừửữứựỳỷỹýỵ
Khoa Cụng ngh Thụng tin
Trng H Bỏch Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 26

13


Một phần mã tiếng Việt Unicode
Mã Unicode Windows dùng 2 byte ₫ể miêu tả 1 ký tự :
ƒ

256 mã ₫ầu từ 0 - 255 giống y như mã ISO8859-1.

ƒ

mã từ 256 trở ₫i chứa các ký tự của hầu hết các ngôn ngữ trên
thế giới (quá khứ, hiện tại và tương lai).

ƒ

thí dụ sau là 1 phần mã tiếng Việt trong mã Unicode :

mã 1ea0H biểu diễn ký tự Ạ


mã 1ef9H biểu diễn ký tự ỹ

ẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾế
ỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞở
ỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 27

Mã hóa dữ liệu của ứng dụng
Số nguyên (int), số thực (double), chuỗi ký tự (char[]) là những dạng mã
hóa dữ liệu phổ dụng, ngồi ra mỗi ứng dụng có thể cần có cách mã hóa
riêng ₫ể mã hóa dữ liệu ₫ặc thù của mình như hình ảnh, âm thanh,...
Trong chương 3 chúng ta sẽ trình bày chi tiết các kiểu dữ liệu mà ngôn
ngữ VC++ hỗ trợ.
Nhưng dù dùng cách mã hóa cụ thể nào thì kết quả của việc mã hóa
phải là 1 chuỗi bit (hay chuỗi byte) ₫ể có thể ₫ược lưu trữ và xử lý bên
trong máy tính.
Bộ nhớ của máy tính thường có dung lượng khơng lớn nên ta chỉ dùng nó
₫ể chứa code và dữ liệu của chương trình ₫ang thực thi.
1 máy tính có thể lưu trữ rất nhiều chương trình và dữ liệu của chúng trên
các thiết bị chứa tin (bộ nhớ ngoài) như ₫ĩa mềm, ₫ĩa cứng, CDROM,...

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 28

14


Thiết bị chứa tin - File
ƒ code của 1 chương trình, chuỗi byte miêu tả dữ liệu ₫ược lưu trữ trên
thiết bị chứa tin trong 1 phần tử chứa tin luận lý ₫ược gọi là file.
ƒ 1 thiết bị chứa tin thường chứa rất nhiều file. Để nhận dạng và truy
xuất 1 file, ta dùng tên nhận dạng gán cho mỗi file. Để dễ dùng file,
tên nhận dạng của nó sẽ ở dạng tên gợi nhớ (chuỗi ký tự miêu tả ngữ
nghĩa của nội dung file), thí dụ như file "luận án tốt nghiệp.doc" chứa
toàn bộ nội dung luận án tốt nghiệp của người dùng máy.
ƒ Nếu ta dùng không gian phẳng ₫ể ₫ặt tên cho các file trên 1 thiết bị
chứa tin thì vì số lượng file quá lớn nên ta khó lịng ₫ặt tên, nhận
dạng, xử lý,... (nói chung là quản lý) từng file.
ƒ Để giải quyết vấn ₫ề trên ta dùng không gian cây thứ bậc ₫ể tổ chức
và quản lý các file trên từng thiết bị chứa tin.

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 29

Thiết bị chứa tin : Không gian cây thứ bậc
ƒ Để tạo không gian cây thứ bậc, ta dùng khái niệm thư mục (directory).

ƒ thư mục là phần tử chứa nhiều phần tử bên trong nó : có thể là file hay
thư mục. Thường ta sẽ dùng thư mục ₫ể chứa những phần tử con có
mối quan hệ mật thiết nào ₫ó, thí dụ như thư mục chứa các ảnh kỷ
niệm, thư mục chứa các file nhạc ưa thích,...
ƒ Thiết bị chứa tin vật lý (₫ĩa mềm, ₫ĩa cứng, CDROM,...) ₫ược trừu
tượng hóa như là 1 thư mục (ta gọi thư mục ₫ặc biệt này là thư mục
gốc). Thư mục gốc chứa nhiều phần tử con bên trong, mỗi phần tử
con của thư mục gốc thường là thư mục con nhưng cũng có thể là file.
Mỗi thư mục con lại có thể chứa nhiều thư mục con hay file... và cứ
thế ta sẽ hình thành 1 cây thứ bậc các thư mục và file.
ƒ Ta cũng dùng tên gợi nhớ ₫ể nhận dạng từng thư mục. Trong không
gian cây thứ bậc, ta sẽ dùng khái niệm ₫ường dẫn (pathname) ₫ể
nhận dạng 1 file hay 1 thư mục.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 30

15


Thí dụ về hệ thống file
\

Cây thứ bậc của ổ c:

config.sys


System

Windows

win.com

AudioFile

USAFilm

Fonts

arial.ttf

Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

...

...

VideoFile

ChinaFilm

VNFilm

Dịng ₫ời.mpg

...


Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 31

Đường dẫn tuyệt ₫ối và tương ₫ối
ƒ Đường dẫn (pathname) là thơng tin ₫ể tìm kiếm (xác ₫ịnh) 1 phần tử
từ 1 vị trí nào ₫ó, nó chứa danh sách chính xác các tên gợi nhớ của
các phần tử mà ta phải ₫i qua xuất phát từ vị trí ₫ầu ₫ể ₫ến phần tử
cần tìm.
ƒ ta dùng 1 dấu ngăn ₫ặc biệt ₫ể ngăn cách 2 tên gợi nhớ liên tiếp nhau
trong ₫ường dẫn (trong Windows, dấu ngăn là '\')
ƒ Tên thư mục gốc ln là '\'.
ƒ Có 2 khái niệm ₫ường dẫn : ₫ường dẫn tuyệt ₫ối và ₫ường dẫn tương
₫ối. Đường dẫn tuyệt ₫ối là ₫ường dẫn xuất phát từ thư mục gốc,
₫ường dẫn tương ₫ối xuất phát từ thư mục làm việc (working
directory).
ƒ Trước khi ứng dụng bắt ₫ầu chạy, hệ thống sẽ khởi ₫ộng thư mục
làm việc cho ứng dụng (theo cơ chế nào ₫ó). Trong quá trình thực thi,
ứng dụng có quyền thay ₫ổi thư mục làm việc theo yêu cầu riêng.
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 32

16



Đường dẫn tuyệt ₫ối và tương ₫ối (tt)
ƒ Xét cây thứ bậc của ổ c: trên slide 36, ₫ường dẫn tuyệt ₫ối sau sẽ
nhận dạng chính xác file arial.ttf trong thư mục 'Fonts' :
c:\Windows\Fonts\arial.ttf
ƒ Nếu thư mục working của chương trình hiện là c:\Windows\Fonts thì ta
có thể dùng ₫ường dẫn tương ₫ối sau ₫ây ₫ể xác ₫ịnh file arial.ttf :
arial.ttf
ƒ Đường dẫn tuyệt ₫ối thường dài hơn ₫ường dẫn tương ₫ối nhưng nó
ln có giá trị bất chấp ứng dụng ₫ang ở thư mục working nào.
ƒ Đường dẫn tương ₫ối thường gọn hơn (₫a số chỉ chứa tên file cần truy
xuất vì ứng dụng sẽ thiết lập thư mục working là thư mục chứa các file
mà ứng dụng truy xuất) nhưng chỉ có giá trị với 1 thư mục working cụ
thể.
ƒ Trong 1 vài trường hợp ₫ặc biệt, ta phải dùng ₫ường dẫn tương ₫ối
ngay cả nó dài và phức tạp hơn ₫ường dẫn tuyệt ₫ối!
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 33

Quản lý hệ thống file
ƒ Hình dạng và cấu trúc của 1 hệ thống file của 1 thiết bị chứa tin sẽ do
người dùng thiết lập nhờ các tác vụ phổ biến như : tạo/xóa thư mục,
tạo/xóa file, copy/move file/thư mục từ nơi này ₫ến nơi khác.
ƒ Nhưng trước khi thực hiện 1 tác vụ nào ₫ó, người dùng thường duyệt file
: làm hiển thị cấu trúc của hệ thống file ở 1 dạng nào ₫ó ₫ể quan sát nó
dễ dàng.
ƒ Hệ thống dùng nhiều cơ chế khác nhau ₫ể bảo vệ việc truy xuất file bởi

người dùng. 1 trong các cơ chế mà Windows 9x dùng là kết hợp với mỗi
file 1 số thuộc tính truy xuất, mỗi thuộc tính ₫ược lưu trữ trong 1 bit :
ƒ Read Only, nếu = 1 thì hệ thống khơng cho các ứng dụng
xóa/hiệu chỉnh phần tử.
ƒ Hidden, nếu = 1 thì hệ thống sẽ dấu khơng hiển thị phần tử bởi
các ứng dụng duyệt file.
ƒ Archive ₫ược thiết lập =1 nếu phần tử bị hiệu chỉnh nội dung
(phục vụ cho cơ chế backup tăng dần).
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 34

17


Tiện ích quản lý hệ thống file
ƒ
ƒ

ƒ

Tất cả tác vụ liên quan ₫ến hệ thống file ₫ược gọi là tác vụ quản lý hệ
thống file.
hệ thống sẽ cung cấp 1 ứng dụng (tiện ích) ₫ể người dùng dễ dàng
thực hiện các tác vụ quản lý file. Thí dụ trên Windows ta thường dùng
tiện ích "Windows Explorer" ₫ể quản lý hệ thống file.
Có 4 cách phổ biến ₫ể chạy 1 ứng dụng (tiện ích) :

1. double-click vào icon miêu tả ứng dụng trên màn hình desktop
(phải tạo icon shortcut chương trình trước khi dùng cách chạy này).
2. duyệt và chọn ứng dụng từ menu Start.Programs...
3. chạy trình Windows Explorer (từ menu Start.Programs.
Accessories.Windows Explorer), duyệt thư mục tìm file ứng dụng
rồi chạy nó.
4. vào menu Start.Run, rồi nhập hàng lệnh chứa ₫ường dẫn xác ₫ịnh
file chương trình và các tham số hàng lệnh.
Mơn : Kỹ thuật lập trình
Chương 1: Ơn lại máy tính số, ngơn ngữ lập trình, thể hiện dữ liệu
Slide 35

Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

MƠN KỸ THUẬT LẬP TRÌNH

Chương 2

PHÂN TÍCH TOP-DOWN & BOTTOM-UP

Khoa Cơng nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 36

18



Phương pháp phân tích từ-trên-xuống
Mỗi sự vật trong mơi trường xung quanh ta ₫ều ₫ược cấu thành từ nhiều phần tử
nhỏ hơn, mỗi phần tử nhỏ lại ₫ược cấu thành từ nhiều phần tử nhỏ hơn nữa. Thí
dụ, con người gồm ₫ầu, mình, tứ chi. Tứ chi gồm 2 tay và 2 chân...
Mỗi công việc cần giải quyết bằng máy tính cũng ₫ược cấu thành từ nhiều cơng
việc nhỏ hơn, mỗi công việc nhỏ hơn lại ₫ược cấu thành từ nhiều cơng việc nhỏ
hơn nữa...
Phương pháp phân tích từ-trên-xuống (top-down analysis) là phương pháp thường
sử dụng ₫ể phân tích cơng việc, nội dung của phương pháp này là cố gắng xác
₫ịnh xem công việc cần giải quyết ₫ược cấu thành từ những công việc nhỏ nào,
mỗi công việc nhỏ ₫ược cấu thành từ các công việc nhỏ hơn nào, cứ như vậy cho
₫ến khi những công việc xác ₫ịnh ₫ược là những cơng việc thật ₫ơn giản, có thể
thực hiện dễ dàng.
Thí dụ việc học lấy bằng kỹ sư CNTT khoa CNTT ĐHBK TP.HCM có thể bao gồm
9 cơng việc nhỏ hơn là học từng học kỳ từ 1 tới 9, học học kỳ i là học n môn học
của học kỳ ₫ó, học 1 mơn học là học m chương của mơn ₫ó,...
Hình vẽ của slide kế cho thấy trực quan của phương pháp phân tích top-down.
Mơn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 37

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Phương pháp phân tích từ-trên-xuống (tt)
Cơng việc cần
giải quyết (A)
Cơng việc
A1


Cơng việc
A11

Cơng việc
A12

Công việc
A2

Công việc
A1n

...
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

...

Cơng việc
An

...

Cơng việc
An1

Cơng việc
An2


...

Cơng việc
Ann

...
Mơn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 38

19


Phương pháp phân tích từ-trên-xuống (tt)
Cơng việc cần giải quyết
≡ ₫ối tượng phức hợp A
Đối tượng
A1

Đối tượng
A11

Đối tượng
A2

Đối tượng
A12

Đối tượng
A1n


...
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

...

Đối tượng
An

...

Đối tượng
An1

Đối tượng
An2

...

Đối tượng
Ann

...
Mơn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 39

Phương pháp phân tích từ-dưới-lên
Ngược với phương pháp phân tích từ-trên-xuống là phương pháp từ-dưới-lên

(bottom-up), nội dung của phương pháp này là xuất phát từ những công việc nhỏ
₫ã biết ta cố gắng kết hợp chúng ₫ể giải quyết ₫ược công việc lớn hơn, rồi từ các
công việc lớn hơn này, ta lại cố gắng kết hợp chúng ₫ể giải quyết ₫ược công việc
lớn hơn nữa, cứ thế tiếp tục ₫ến lúc ta giải quyết ₫ược cơng việc cần giải quyết.
Thí dụ ta ₫ã biết n môn học rời rạc, ta cố gắng kết hợp 1 số trong chúng ₫ể tạo ra
công việc lớn hơn mà ta gọi là "học kỳ", rồi ta cố gắng kết hợp 1 số trong các học
kỳ ₫ã có ₫ể tạo ra công việc lớn hơn mà ta gọi là "chương trình học kỹ sư".
Hình vẽ của slide kế cho thấy trực quan của phương pháp phân tích bottom-up.

Khoa Cơng nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 40

20


Phương pháp phân tích từ-dưới-lên (tt)
Cơng việc cần
giải quyết (A)
Cơng việc
A1

Công việc
A11

Công việc
A12


Công việc
A2

Công việc
A1n

...

Công việc
An

...

Công việc
An1

...

Công việc
An2

...

Công việc
Ann

...
Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up

Slide 41

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Phương pháp phân tích từ-dưới-lên (tt)
Cơng việc cần giải quyết
≡ ₫ối tượng phức hợp A
Đối tượng
A1

Đối tượng
A11

Đối tượng
A2

Đối tượng
A12

Đối tượng
A1n

...
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

...

Đối tượng

An

...

Đối tượng
An1

Đối tượng
An2

...

Đối tượng
Ann

...
Mơn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 42

21


Sử dụng kết hợp các phương pháp phân tích
Trong thực tiển phân tích bài tốn, người ta thường sử dụng kết hợp cả 2 phương
pháp top-down và bottom-up : trước hết cần trang bị kiến thức giải quyết cho
nhiều vấn ₫ề nhỏ, càng nhiều càng tốt, ₫ể khi cần phân tích vấn ₫ề mới, ta sẽ
dùng phương pháp phân tích top-down nhưng trong từng bước, cố gắng phân tích
vấn ₫ề của bước ₫ó thành các vấn ₫ề ₫ã giải quyết rồi, nhờ ₫ó khi hiện thực
chương trình giải quyết vấn ₫ề, ta sẽ thừa kế ₫ược càng nhiều module phần mềm

viết sẵn và chỉ bỏ ít cơng sức hiện thực mới các module mới (số lượng tối thiểu).

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 43

Tổng qt về code của 1 ứng dụng VC++
‰

‰

‰

Chương trình VC++ là 1 danh sách các lệnh khai báo hay lệnh ₫ịnh nghĩa các
phần tử cấu thành chương trình : kiểu dữ liệu mới, hằng, biến, hàm. Trong lệnh
₫ịnh nghĩa hàm, ta sẽ dùng các lệnh thực thi ₫ể miêu tả giải thuật cụ thể của
hàm ₫ó.
Ta dùng thư mục ₫ể quản lý các phần tử nhánh trong cây phân tích, 1 thư mục
chứa nhiều thư mục con hay file. File là phần tử lá trong cây phân tích, nó chứa
danh sách các lệnh khai báo và ₫ịnh nghĩa các phần tử của 1 vấn ₫ề nhỏ, ₫ơn
giản nào ₫ó của chương trình.
VC++ cung cấp khái niệm Project ₫ể quản lý dạng cây thứ bậc các thành phần
cấu thành 1 ứng dụng.

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM


Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 44

22


Tổng quát về code của 1 ứng dụng VC++ (tt)
‰

‰

Trong 1 project VC++ có 2 loại phần tử có chứa code (do ₫ó ta cần biết cú pháp
VC++ ₫ể xây dựng các loại phần từ này) :
ƒ file *.h (hay *.hxx) ₫ịnh nghĩa interface sử dụng của 1 (hay nhiều) module
(hay class) có mối quan hệ mật thiết với nhau.
ƒ file *.cpp (hay *.cxx) ₫ịnh nghĩa sự hiện thực của 1 (hay nhiều) module (hay
class) có mối quan hệ mật thiết với nhau.
ƒ vì file *.h và *.cpp có thể ₫ịnh nghĩa hoặc các class hoặc các module (₫ơn
vị phần mềm nhỏ có 1 chức năng rõ ràng nào ₫ó cấu thành phần mềm cổ
₫iển) ⇒ VC++ hỗ trợ cả 2 phương pháp lập trình : có cấu trúc và OOP.
Ngoài 1 vài ngoại lệ nhỏ, tổ chức code cho 2 loại file trên hồn tồn giống nhau
: ₫ó là danh sách nhiều lệnh VC++ phục vụ ₫ịnh nghĩa kiểu, hằng, biến và
function trong module ₫ó. Trong lệnh ₫ịnh nghĩa function, ta sẽ dùng các lệnh
thực thi ₫ể miêu tả giải thuật của function.

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình

Chương 2 : Phân tích top-down & bottom-up
Slide 45

Tổng qt về ngơn ngữ VC++
‰

‰

‰

Để dễ tiếp cận ngơn ngữ VC++, ta hãy nhìn lại ngơn ngữ tiếng Việt. Ta nói ngơn
ngữ tiếng Việt ₫ịnh nghĩa 1 tập các từ có nghĩa cơ bản, các qui tắc ghép các từ
cơ bản này lại ₫ể tạo thành ₫oạn câu (phrase), câu (sentence), ₫oạn văn
(paragraph), bài văn (document) cùng ngữ nghĩa của các phần tử ₫ược tạo ra.
Vì ngơn ngữ Việt là ngơn ngữ tự nhiên nên thường cho phép nhiều ngoại lệ trong
việc xây dựng các phần tử.
Ngơn ngữ lập trình VC++ cũng ₫ịnh nghĩa 1 tập các ký tự cơ bản (chưa có
nghĩa), các qui tắc ghép các ký tự ₫ể tạo thành các từ có nghĩa (identifier), biểu
thức (expression), câu lệnh (statement), thủ tục (function, method) cùng ngữ
nghĩa của các phần tử ₫ược tạo ra. Vì ngơn ngữ VC++ là ngơn ngữ lập trình cho
máy tính thực hiện nên sẽ khơng cho phép 1 ngoại lệ nào trong việc xây dựng
các phần tử.
Nghiên cứu ngơn ngữ lập trình là học ₫ể nhớ rõ các ký tự cơ bản của ngôn ngữ,
các qui tắc ₫ể tạo danh hiệu, biểu thức, các qui tắc ₫ể viết các câu lệnh... cùng
ngữ nghĩa của chúng ⇒ rất giống với việc học 1 ngôn ngữ tự nhiên : Anh, Pháp,
Nhật,...
Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình

Chương 2 : Phân tích top-down & bottom-up
Slide 46

23


Cơ bản về cú pháp VC++
‰

‰

‰

Về nguyên tắc, VC++ cho phép dùng hầu hết các ký tự mà bạn có thể nhập từ
bàn phím, trong ₫ó các ký tự chữ và số ₫ược dùng chủ yếu.
Qui tắc cấu tạo 1 danh hiệu :
ƒ danh hiệu có thể dài ₫ến 255 ký tự,
ƒ Ký tự ₫ầu tiên phải là một ký tự chữ (letter), hoặc gạch dưới (_).
ƒ Các ký tự tiếp theo có thể là các ký tự chữ (letter), ký số (digit), dấu gạch
dưới,
ƒ danh hiệu không ₫ược chứa các ký tự ₫ặc biệt như các ký tự : ^, &, ), (,%, $,
#, @, !, ~, +, -, *, …
ƒ VC++ phân biệt chữ HOA và chữ thường trong danh hiệu là khác nhau.
Ví dụ: danh hiệu hợp lệ
danh hiệu khơng hợp lệ
+ Base1_ball
+ Base.1 : vì có dấu chấm
+ ThisIsLongButOk
+ Base&1 : vì có dấu &
+ 1Base_Ball : ký tự ₫ầu là 1 số

1 danh hiệu có thể ₫ược dùng ₫ể ₫ặt tên cho biến, hằng gợi nhớ, function,
method, class,... và ngữ nghĩa của từng danh hiệu là do sự qui ₫ịnh của người
lập trình.
Khoa Cơng nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 47

Cơ bản về cú pháp VC++ (tt)
‰

‰

‰

Qui tắc xây dựng 1 biểu thức gần giống với ngôn ngữ VB mà ta ₫ã học rồi trong
mơn Tin học (sẽ ₫ược trình bày chi tiết ở các chương sau).
Có nhiều loại câu lệnh VC++ khác nhau, qui tắc xây dựng 1 câu lệnh phụ thuộc
vào loại câu lệnh cụ thể ⇒ ta phải nghiên cứu từng loại câu lệnh và qui tắc cấu
thành nó, nhưng may mắn số lượng loại câu lệnh VC++ là không nhiều (dưới 20
loại).
Các câu lệnh ₫ược chia làm 2 nhóm chính :
ƒ
các lệnh ₫ịnh nghĩa và khai báo : xác ₫ịnh 1 hành ₫ộng nào ₫ó tại thời
₫iểm dịch.
ƒ
và các lệnh thực thi : xác ₫ịnh 1 hành ₫ộng nào ₫ó tại thời ₫iểm thực thi.


Khoa Cơng nghệ Thơng tin
Trường ĐH Bách Khoa Tp.HCM

Mơn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 48

24


Chú thích trong chương trình
Các lệnh ₫ịnh nghĩa và các lệnh thực thi mà ta vừa trình bày là ₫ể máy xử lý,
chúng tuân thủ các cú pháp cụ thể mà ta sẽ trình bày sau. Nhưng ý tưởng
chung là con người rất khó ₫ọc và hiểu chúng.
‰ Để trợ giúp cho người ₫ọc hiểu các lệnh VC++ trong chương trình, VC++ cịn
cung cấp 1 lệnh ₫ặc biệt : lệnh chú thích. Đây là lệnh mà máy sẽ bỏ qua (vì
máy sẽ khơng thể hiểu ý nghĩa ₫ược miêu tả trong lệnh này), tuy nhiên lệnh này
cho phép người lập trình dùng ngơn ngữ tự nhiên ₫ể chú thích ý nghĩa của các
lệnh VC++ khác hầu giúp chính họ hay người khác dễ dàng hiểu chương trình.
‰ Có 2 dạng lệnh chú thích : chú thích trên 1 hàng hay chú thích nhiều hàng.
Ví dụ :
void cmdCE_Click() {
/* hàm xử lý biến cố khi ấn nút CE (Clear Entry)
của form giao diện chương trình MiniCalculator */
dblDispValue = 0;
blnFpoint = False;
bytPosDigit = 0;
txtDisplay.Text = ".0"; // bắt ₫ầu hiển thị .0 lên Display
}
‰


Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 49

Chú thích trong chương trình (tt)
‰

Việc dùng chú thích trong chương trình là sự dung hịa giữa 2 thái cực : lạm
dụng và không bao giờ dùng. Thường ta nên dùng chú thích ở những vị trí sau :
ƒ ở ₫ầu của mỗi thủ tục ₫ể miêu tả chức năng của thủ tục ₫ó, dữ liệu nhập vào
thủ tục và dữ liệu trả về từ thủ tục.
ƒ ở các ₫oạn code miêu tả giải thuật phức tạp ₫ể ghi chú ₫oạn code này hiện
thực giải thuật nào trong lý thuyết ₫ã học.
ƒ ở hàng lệnh có hiệu ứng ₫ặc biệt...

Khoa Công nghệ Thông tin
Trường ĐH Bách Khoa Tp.HCM

Môn : Kỹ thuật lập trình
Chương 2 : Phân tích top-down & bottom-up
Slide 50

25



×