[r]
(1)Gi
ớ
i Thi
ệ
u L
ậ
p Trình
C
ấ
u Trúc M
ả
ng
(2)N
ộ
i Dung
Khái niệm chung
(3)Đ
ặ
t V
ấ
n Đ
ề
Kiến thức kiểu biến không đủ để biểu
diễn, xử lý những kiểu dữ liệu phức tạp, ví dụ:
Danh sách điểm thi sinh viên Danh sách sinh viên lớp học
Cần lưu trữ xử lý chuỗi liệu kiểu Sắp xếp, tìm kiếm, tính tốn chuỗi liệu
Ngơn ngữ lập trình (C++) cung cấp kiểu
liệu có cấu trúc để xử lý vấn đề trên
(4)Khái Ni
ệ
m Chung
Mảng chiều chuỗi liệu có kiểu Đặt ô nhớ liên tiếp nhớ
Mỗi phần tử mảng có số riêng biệt
Sử dụng số để định vị & truy cập phần tử Ví dụ: điểm thi mơn sinh viên lưu trữ
trong mảng có phần tử (mảng diemSo)
Mảng có phần tử, lưu liệu kiểu int,
chỉ số bắt đầu từ 0 đến 4
Chỉ số 0 1 2 3 4
(5)Khái Ni
ệ
m Chung
Các phần tử mảng coi biến số tên
diemSo[0], diemSo[1], diemSo[2], diemSo[3], diemSo[4], có kiểu dữ liệu int
Chỉ số phần tử đặt ngoặc vuông ([]) Truy cập phần tử mảng, sử dụng:
Tên mảng (diemSo)
Và số phần tử giá trị nguyên hay biểu thức
giá trị nguyên
Chỉ số 0 1 2 3 4
(6)Truy C
ậ
p M
ả
ng
Sử dụng tên mảng số phần tử
Chỉ số 0 1 2 3 4
Dữ liệu 45 60 77 72 83
diemSo[2] = 74; // 77 -> 74
// với i=1, câu lệnh sau -> diemSo[3] = 75 diemSo[i+2] = 75; // 72 -> 75
// thực tính toán
tb = (diemSo[2] + diemSo[3]) / 2;
(7)Khai Báo
Mảng phải khai báo trước sử dụng Khi khai báo phải quy định số phần tử mảng Cú pháp:
KiểuDL TênMảng [SốPhầnTử];
Ví dụ:
int diemSo[5];
Khai báo mảng có tên diemSo, có 5 phần tử,
lưu trữ giá trị kiểu int
Lưu ý:
(8)Nh
ậ
p D
ữ
Li
ệ
u
Mảng sau khai báo, nhập
liệu, thực tiện tính tốn dữ liệu mảng
const int SO_MON_HOC = 5; int main()
{
int diemSo[SO_MON_HOC]; double tongDiem = 0.0;
for (int i = 0; i < SO_MON_HOC; i++) { cin >> diemSo[i];
tongDiem += diemSo[i]; }
cout << "diem trung binh: "
(9)Kh
ở
i T
ạ
o
Mảng khởi tạo sau:
int diemSo[5] = {45, 60, 77, 72, 83}; Lưu ý: số giá trị danh sách khởi tạo (trong {})
khơng vượt q kích thước mảng (trong [])
Mảng khởi tạo sau:
int diemSo[] = {45, 60, 77, 72, 83};
C++ tự xác định độ dài mảng dựa độ dài
của danh sách khởi tạo
Mảng không khởi tạo, phần tử mảng có
(10)Ứ
ng D
ụ
ng
Thống kê số lần mặt giá trị từ đến 6, sau
6000 lần tung xúc xắc
int main(){
const int SO_MAT = 6;
int dem[SO_MAT + 1] = { };
for (int t = 0; t < 6000; t++) { int mat = + rand() % SO_MAT; dem[mat]++;
}
for (int m = 1; m <= SO_MAT; m++) {
cout << m << "\t" << dem[m] << "\n"; }