
©2004, HOÀNG MINH SƠN
Chươn
g
1
Kỹthuật lập trình
Phần II: Lập trình có cấu trúc
0101010101010101100001
0101010101010101100001
0101010101010101100001
0101010100101010100101
0101010100101010100101
0101010100101010100101
1010011000110010010010
1010011000110010010010
1010011000110010010010
1100101100100010000010
1100101100100010000010
1100101100100010000010
0101010101010101100001
0101010101010101100001
0101010101010101100001
0101010100101010100101
0101010100101010100101
0101010100101010100101
1010011000110010010010
1010011000110010010010
1010011000110010010010
1100101100100010000010
1100101100100010000010
1100101100100010000010
0101010101010101100001
0101010101010101100001
0101010101010101100001
0101010100101010100101
0101010100101010100101
0101010100101010100101
1010011000110010010010
1010011000110010010010
1010011000110010010010
1100101100100010000010
1100101100100010000010
1100101100100010000010
8/31/2006
y = A*x + B*u;
x = C*x + d*u;
StateController
start()
stop()
LQGController
start()
stop()
Chương3: Hàmvàthưviện

2
©2004, HOÀNG MINH SƠN
Chương 3: Hàm và thưviện
Nộidung chương 3
3.1 Hàm và lậptrìnhhướng hàm
3.2 Khai báo, ₫ịnh nghĩahàm
3.3 Truyềnthamsốvà trảvềkếtquả
3.4 Thiếtkếhàm và thưviện
3.5 ThưviệnchuẩnANSI-C
3.6 Làm việcvớitệptin sửdụng thưviệnC++
3.7 Nạpchồng tên hàm C++
3.8 Hàm inline trong C++

3
©2004, HOÀNG MINH SƠN
Chương 3: Hàm và thưviện
3.1 Hàm và lậptrìnhhướng hàm
Lậptrìnhcócấutrúccóthểdựatrênmộttronghaiphương pháp:
Lậptrìnhhướng hàm (
function-oriented
), còn gọilàhướng nhiệm
vụ(
task-oriented
), hướng thủtục(
procedure-oriented
)
Lậptrìnhhướng dữliệu(
data-oriented
)
Nhiệmvụ
NV 1
NV 2
NV 3
NV 1a NV 1b
NV 2a NV 2b NV 2c
NV 3
DL 1
DL 2
DL 3
DL 1
DL 2
DL 3

4
©2004, HOÀNG MINH SƠN
Chương 3: Hàm và thưviện
Hàm là gì?
Tiếng Anh: function -> hàm, chứcnăng
Một₫ơnvịtổchứcchương trình, một₫oạnmã
chương trình có cấutrúc₫ể thựchiệnmộtchức
năng nhất₫ịnh, có giá trịsửdụng lại
Các hàm có quan hệvới nhau thông qua lờigọi, các
biếnthamsố(₫ầuvào, ₫ầu ra) và giá trịtrảvề
Cách thựchiệncụthểmộthàmphụthuộcnhiềuvào
dữkiện(thamsố, ₫ốisốcủahàm):
— Thông thường, kếtquảthựchiệnhàmmỗilần₫ềugiống
nhau nếu các tham số₫ầuvàonhưnhau
—Một hàm không có tham sốthì giá trịsửdụng lạirấtthấp
Trong C/C++: Không phân biệtgiữathủtụcvàhàm,
cả₫oạnmãchương trình chính cũng là hàm

5
©2004, HOÀNG MINH SƠN
Chương 3: Hàm và thưviện
Ví dụphân tích
Yêu cầu bài toán: Tính tổng mộtdãysốnguyên (liên
tục) trong phạmvi do ngườisửdụng nhập. In kếtquả
ra màn hình.
Các nhiệmvụ:
—Nhậpsốnguyên thứnhất:
zYêu cầungườisửdụng nhập
zNhậpsốvào mộtbiến
—Nhậpsốnguyên thứhai
zYêu cầungườisửdụng nhập
zNhậpsốvào mộtbiến
—Tínhtổng vớivònglặp
—Hiểnthịkếtquảra màn hình