Bài giảng Tin đại cương - Bài 7: Khuôn mẫu và chỉ mục

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

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)

pdf 17 trang kimcuc 20360
Bạn đang xem tài liệu "Bài giảng Tin đại cương - Bài 7: Khuôn mẫu và chỉ mục", để 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 và chỉ mục

Bài giảng Tin đại cương - Bài 7: Khuôn mẫu và chỉ mục
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_va_chi_muc.pdf