[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"; }