KỹKỹ
thuậtthuật
lậplập
trìnhtrình
nângnâng
caocao
GV. GV. NguyễnNguyễn Minh Minh HuyHuy
KỹKỹ
thuậtthuật
lậplập
trìnhtrình
nângnâng
caocao
1Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
ChuẩnChuẩn vàvà quyquy ướcước lậplập trìnhtrình
NạpNạp chồngchồng hàmhàm
Con Con trỏtrỏ hàmhàm
Function Template.Function Template.
2Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
NộiNội dungdung
ChuẩnChuẩn vàvà quyquy ướcước lậplập trìnhtrình
NạpNạp chồngchồng hàmhàm
Con Con trỏtrỏ hàmhàm
Function Template.Function Template.
3Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Chuẩn và quy ước lập trìnhChuẩn và quy ước lập trình
Vì sao phải có chuẩn và quy ước?Vì sao phải có chuẩn và quy ước?
Làm việc một mình:Làm việc một mình:
Tự làm tự hiểu.Tự làm tự hiểu.
ViếtViết
mỗimỗi
câucâu
lệnhlệnh
mộtmột
dòngdòng
6Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy
ViếtViết
mỗimỗi
câucâu
lệnhlệnh
mộtmột
dòngdòng
ViếtViết cáchcách khoảngkhoảng giữagiữa haihai đoạnđoạn lệnhlệnh
QuyQuy ướcước viếtviết chúchú thíchthích::
QuyQuy tắctắc vàngvàng: : viếtviết chúchú thíchthích đầyđầy đủđủ, , dễdễ hiểuhiểu
ViếtViết chúchú thíchthích chocho từngtừng hàmhàm
DùngDùng dấudấu // // thaythay chocho /* */./* */.
NộiNội dungdung
ChuẩnChuẩn vàvà quyquy ướcước lậplập trìnhtrình
NạpNạp chồngchồng hàmhàm
Con Con trỏtrỏ hàmhàm
Function Template.Function Template.
7Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Nạp chồng hàmNạp chồng hàm
NhữngNhững trườngtrường hợphợp nạpnạp chồngchồng hàmhàm nàonào
khôngkhông hợphợp lệlệ??
1. 1. intint tinhToantinhToan((intint a, a, intint b);b);
2. 2. intint tinhToantinhToan((intint x, x, intint y);y);
9Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy
3. 3. intint tinhToantinhToan((intint a, float b);a, float b);
4. float 4. float tinhToantinhToan((intint u, u, intint v);v);
5. 5. intint tinhToantinhToan((intint a, long b);a, long b);
NộiNội dungdung
ChuẩnChuẩn vàvà quyquy ướcước lậplập trìnhtrình
NạpNạp chồngchồng hàmhàm
Con Con trỏtrỏ hàmhàm
Function Template.Function Template.
10Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Con Con trỏtrỏ hàmhàm
XétXét hàmhàm xửxử lýlý trêntrên mảngmảng sốsố nguyênnguyên
TínhTính tổngtổng cáccác phầnphần tửtử
TổngTổng quátquát 1: 1: tínhtính tổngtổng, , hiệuhiệu cáccác phầnphần tửtử
ThamTham sốsố hóahóa phépphép tínhtính
TổngTổng quátquát 2: 2: tínhtính toántoán bấtbất kỳkỳ trêntrên cáccác phầnphần tửtử
ThamTham sốsố hóahóa xửxử lýlý tínhtính toántoán
Con Con trỏtrỏ hàmhàm
11Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Con Con trỏtrỏ hàmhàm
CáchCách sửsử dụngdụng con con trỏtrỏ hàmhàm::
TạoTạo kiểukiểu chocho hàmhàm: : từtừ khóakhóa typedeftypedef
typedeftypedef intint (*(*PhepTinhPhepTinh)()(intint, , intint););
KhaiKhai báobáo thamtham sốsố vớivới kiểukiểu hàmhàm
dạngdạng
thamtham
sốsố
void void mainmain()()
{{
intint m[5] = {1, 2, 3, 4, 5};m[5] = {1, 2, 3, 4, 5};
intint ketQuaketQua = = xuLyMangxuLyMang(m, 5, (m, 5, congcong););
}}
13Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
Con Con trỏtrỏ hàmhàm
ĐặcĐặc điểmđiểm củacủa con con trỏtrỏ hàmhàm::
ThamTham sốsố hóahóa xửxử lýlý
HàmHàm cócó thểthể làmlàm đốiđối sốsố củacủa hàmhàm kháckhác
HàmHàm cócó xửxử lýlý tổngtổng quátquát tùytùy xửxử lýlý truyềntruyền vàovào
XửXử lýlý cụcụ thểthể đượcđược quyếtquyết địnhđịnh khikhi gọigọi hàmhàm
14Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy
GhiGhi chúchú::
KhôngKhông nhấtnhất thiếtthiết dùngdùng typedeftypedef tạotạo kiểukiểu dữdữ liệuliệu hàmhàm
intint xuLyMangxuLyMang((intint m[ ], m[ ], intint kichThuockichThuoc, , intint p(p(intint, , intint) ) ))
{{
// // CàiCài đặtđặt
}}
NộiNội dungdung
ChuẩnChuẩn vàvà quyquy ướcước lậplập trìnhtrình
NạpNạp chồngchồng hàmhàm
Con Con trỏtrỏ hàmhàm
Function Template.Function Template.
(a, b);(a, b);
float float k k = = timMintimMin(1.5, 2.3);(1.5, 2.3);
PhanSoPhanSo p1;p1;
PhanSoPhanSo p2;p2;
PhanSoPhanSo p3 = p3 = timMintimMin(p1, p2);(p1, p2);
}}
Function TemplateFunction Template
ĐặcĐặc điểmđiểm củacủa Function Template:Function Template:
ThamTham sốsố hóahóa kiểukiểu dữdữ liệuliệu
HàmHàm tổngtổng quátquát chocho nhiềunhiều kiểukiểu dữdữ liệuliệu kháckhác nhaunhau
KiểuKiểu cụcụ thểthể đượcđược quyếtquyết địnhđịnh khikhi gọigọi hàmhàm
GhiGhi
chúchú
::
18Phương pháp lập trình hướng đối tượng – GV. Nguyễn Minh Huy
GhiGhi
chúchú
::
TừTừ khóakhóa “class”“class” cócó thểthể thaythay bằngbằng ““typenametypename””
PhầnPhần khaikhai báobáo vàvà càicài đặtđặt đềuđều phảiphải khaikhai báobáo template.template.
PhầnPhần càicài đặtđặt hàmhàm phảiphải nằmnằm cùngcùng file:file:
PhầnPhần khaikhai báobáo hàmhàm
PhầnPhần gọigọi sửsử dụngdụng hàmhàm
TómTóm tắttắt
ChuẩnChuẩn vàvà quyquy ướcước lậplập trìnhtrình::
ThốngThống nhấtnhất cáchcách thứcthức làmlàm việcviệc chocho hiệuhiệu quảquả
HàmHàm xửxử lýlý tổngtổng quátquát trêntrên nhiềunhiều kiểukiểu kháckhác nhaunhau
20Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 1.1:1.1:
ViếtViết chươngchương trìnhtrình chocho phépphép thựcthực hiệnhiện cáccác thaothao táctác trêntrên kiểukiểu phânphân sốsố::
NhậpNhập, , xuấtxuất phânphân sốsố
RútRút gọngọn phânphân sốsố
CộngCộng, , trừtrừ, , nhânnhân, , chiachia, so , so sánhsánh haihai phânphân sốsố
21Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 1.2:1.2:
ViếtViết chươngchương trìnhtrình chocho phépphép sắpsắp xếpxếp tăngtăng//giảmgiảm mảngmảng phânphân sốsố
22Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy
BàiBài tậptập
BàiBài tậptập 1.3:1.3:
MởMở rôngrông bàibài 1.2, 1.2, chocho phépphép sắpsắp xếpxếp mảngmảng phânphân sốsố//sốsố nguyênnguyên
23Phương pháp lập trình hướng đối tượng - Nguyễn Minh Huy