Bài giảng Tin đại cương - Bài 7: Khuôn mẫu & Chỉ mục - Trương Xuân Nam

Bài 7: Khuôn mẫu & chỉ mục

1. Khuôn mẫu (template)

2. Chỉ mục (index)

3. Sử dụng chỉ mục với chuỗi kí tự

4. Vector

5. Bài tập

pdf 17 trang phuongnguyen 10140
Bạn đang xem tài liệu "Bài giảng Tin đại cương - Bài 7: Khuôn mẫu & Chỉ mục - Trương Xuân Nam", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin đại cương - Bài 7: Khuôn mẫu & Chỉ mục - Trương Xuân Nam

Bài giảng Tin đại cương - Bài 7: Khuôn mẫu & Chỉ mục - Trương Xuân Nam
Trương Xuân Nam - Khoa CNTT
TIN ĐẠI CƯƠNG
Bài 7: Khuôn mẫu & Chỉ mục
1
Nhắc lại nội dung bài trước
 Các kiểu dữ liệu (int, unsigned int, char, 
double, float, bool)
 Khai báo hằng số (const) và tham chiếu
 Phạm vi và vòng đời của biến
 Các kiểu dữ liệu tự tạo bằng cách ghép 
những kiểu dữ liệu khác với nhau
Trương Xuân Nam - Khoa CNTT 2
Nhắc lại nội dung bài trước
 Kiểu chuỗi (string):
 Bản chất: Dãy các kí tự
 #include 
 Khai báo:
 string str;
 string w("Hello");
 string s = "Hello";
 Các hàm cơ bản: Tham khảo trang 473-
474 của giáo trình
Trương Xuân Nam - Khoa CNTT 3
Trương Xuân Nam - Khoa CNTT
Bài 7: Khuôn mẫu & chỉ mục
1. Khuôn mẫu (template)
2. Chỉ mục (index)
3. Sử dụng chỉ mục với chuỗi kí tự
4. Vector
5. Bài tập
4
Khuôn mẫu (template)
Trương Xuân Nam - Khoa CNTT 5
Trương Xuân Nam - Khoa CNTT
Khuôn mẫu (template)
 Nhiều thuật toán có tính tổng quát, có thể áp dụng 
được cho nhiều loại dữ liệu khác nhau
 Ví dụ: Tìm phần tử lớn nhất trong 2 phần tử
int max(int a, int b) {
if (a > b) return a; else return b;
}
double max(double a, double b) {
if (a > b) return a; else return b;
}
string max(string a, string b) {
if (a > b) return a; else return b;
}
6
Trương Xuân Nam - Khoa CNTT
Khuôn mẫu (template)
 Ngôn ngữ C++ cho phép chúng ta “tổng quát 
hóa” các đoạn mã tương tự này bằng cách sử 
dụng template
 Ví dụ: Tìm phần tử lớn nhất trong 2 phần tử
template T max(T a, T b) {
if (a > b) return a; else return b;
}
 Sử dụng: Máy tính sẽ tự động thay thế kiểu 
dữ liệu thích hợp
cout << max(100,200) << endl;
cout << max(1.5,1.3) << endl;
Tự động 
dùng hàm 
max với 
kiểu int
Tự động 
dùng hàm 
max với 
kiểu double
7
Chỉ mục (index)
Trương Xuân Nam - Khoa CNTT 8
Trương Xuân Nam - Khoa CNTT
Chỉ mục (index)
 Vấn đề: Về bản chất chuỗi kí tự thực 
chất là một dãy các chữ, liệu có cách 
nào thao tác đến 1 kí tự trong chuỗi 
hay không?
 Lời giải: Sử dụng hệ thống chỉ mục kèm 
với tên biến
 Chỉ mục là các số nguyên, bắt đầu từ 0
9
Sử dụng chỉ mục với 
chuỗi kí tự
Trương Xuân Nam - Khoa CNTT 10
Trương Xuân Nam - Khoa CNTT
Sử dụng chỉ mục với chuỗi kí 
tự
 Chuỗi s = “HAPPY NEW YEAR”
 s[0] ‘H’ s[1] ‘A’ s[2] ‘P’
 Cách dùng:
 Lấy ra: cout << s[1] << endl;
 Ghi vào: s[4] = ‘I’;
 Kết hợp: for (int i = 0; i < 10; i++) cout << s[i] << endl;
Dữ liệu H A P P Y N E W
Chỉ mục 0 1 2 3 4 5 6 7 
11
Vector
Trương Xuân Nam - Khoa CNTT 12
Trương Xuân Nam - Khoa CNTT
Vector
 Mẫu Vector cho phép tạo ra các loại danh 
sách các phần tử
 Ví dụ:
vector x(10);
for (int i=0; i<x.size(); i++)
x[i] = i*i;
for (int j=0; j<x.size(); j++)
cout << x[j] << endl;
Danh sách 10 
số nguyên x
13
Trương Xuân Nam - Khoa CNTT
Vector (cách dùng)
 Cần: #include 
 Khai báo biến:
 vector m;
 vector a(10);
 vector b(10,0.5);
 Sử dụng chỉ mục để truy cập từ phần tử 
bên trong biến, chỉ mục là số nguyên bắt 
đầu từ 0
 Các hàm do thư viện vector cung cấp để 
thao tác danh sách (xem bảng 6-2, trang 
278 và phụ lục trang 474-475)
14
Một số hàm của vector
 v.clear(): Xóa rỗng vector v
 v.empty(): Trả về true nếu vector v 
rỗng
 v.pop_back(): Bỏ phần tử cuối cùng của 
vector v
 v.push_back(e): Chèn e vào cuối vector 
v
 v.size(): Trả về số phần tử của vector v
Trương Xuân Nam - Khoa CNTT 15
Bài tập
Trương Xuân Nam - Khoa CNTT 16
Một số bài tập cơ bản
 Nhập số nguyên dương N và mảng N số 
thực, in ra các số vừa nhập
 Nhập mảng N số thực và tính tổng
 Nhập mảng N số thực và tính trung 
bình cộng của các số trong mảng
 Nhập mảng N số nguyên và tính trung 
bình cộng các số dương trong mảng
Trương Xuân Nam - Khoa CNTT 17

File đính kèm:

  • pdfbai_giang_tin_dai_cuong_bai_7_khuon_mau_chi_muc_truong_xuan.pdf