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

Tài liệu Chương 14: TEMPLATE-KHUÔN MẪU pptx

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 (369.61 KB, 33 trang )

Chương 14 - 1
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 14
TEMPLATE-KHUÔN MẪU
Chương 14 - 2
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
− Định nghĩa hàm tìm số nhỏ nhất của
hai số nguyên:
11. int NhoNhat(int a,
12. int b)
13. {
14. int lc = a;
15. if (b < lc)
16. lc = b;
17. return lc;
18. }
Chương 14 - 3
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
− Định nghĩa hàm tìm số nhỏ nhất của
hai số thực:


11. float NhoNhat(float a,
12. float b)
13. {
14. float lc = a;
15. if (b < lc)
16. lc = b;
17. return lc;
18. }
Chương 14 - 4
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
− Định nghĩa hàm tìm số nhỏ nhất của
hai số nguyên dài:
11. long NhoNhat(long a,
12. long b)
13. {
14. long lc = a;
15. if (b < lc)
16. lc = b;
17. return lc;
18. }
Chương 14 - 5
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM

− Định nghĩa hàm tìm số nhỏ nhất của
hai số thực dài:
11. double NhoNhat(double a,
12. double b)
13. {
14. double lc = a;
15. if (b < lc)
16. lc = b;
17. return lc;
18. }
Chương 14 - 6
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
− Định nghĩa hàm tìm số nhỏ nhất của
hai phân số:
11. PHANSO NhoNhat(PHANSO a,
12. PHANSO b)
13. {
14. PHANSO lc = a;
15. if (b < lc)
16. lc = b;
17. return lc;
18. }
Chương 14 - 7
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc

ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
11. struct phanso
12. {
13. int tu;
14. int mau;
15. };
16. typedef struct phanso PHANSO;
17. int operator<(PHANSO, PHANSO);
Chương 14 - 8
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
11. int operator<(PHANSO x,PHANSO y)
12. {
13. float a=(float)x.tu/x.mau;
14. float b=(float)y.tu/y.mau;
15. if(a<b)
16. return 1;
17. return 0;
18. }
Chương 14 - 9
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
− Định nghĩa hàm tìm số nhỏ nhất của

hai kiểu bất kỳ:
11. template <class T>
12. T NhoNhat(T a,
13. T b)
14. {
15. T lc = a;
16. if (b < lc)
17. lc = b;
18. return lc;
19. }
Chương 14 - 10
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
− Bài toán: Viết chương
trình tìm số nhỏ nhất của
hai kiểu dữ liệu bất kỳ
bằng cách sử dụng kỹ
thuật khuôn mẫu hàm
(template function)
− Chương trình
Chương 14 - 11
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
− Chương trình

11. #include <iostream.h>
12. struct phanso
13. {
14. int tu;
15. int mau;
16. };
17. typedef struct phanso PHANSO;
18. int operator<(PHANSO, PHANSO);
19. void Xuat(PHANSO);
20. template <class T>
21. T NhoNhat(T a, T b);
Chương 14 - 12
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
11. void main()
12. {
13. int a1=5, a2=3;
14. int a=NhoNhat(a1, a2);
15. cout<<“Nho nhat:”<<a;
16. float b=NhoNhat(1.5, 2.3);
17. cout<<"\nNho nhat :”<<b;
18. PHANSO p1={1,2};
19. PHANSO p2={1,3};
20. PHANSO p=NhoNhat(p1, p2);
21. cout << "\nNho nhat :";
22. Xuat(p);
23. }

Chương 14 - 13
LTHĐT
Khoa CNTT
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. KHUÔN MẪU HÀM
11. template <class T>
12. T NhoNhat(T a, T b)
13. {
14. T lc = a;
15. if(b<lc)
16. lc = b;
17. return lc;
18. }

×