[r]
Trang 1Giới Thiệu Lập Trình
Cấu Trúc Mảng
TS Lê Nguyên Khôi Trường Đại học Công nghệ, ĐHQGHN
Trang 2Nội Dung
Trang 3Đặt Vấn Đề
diễn, xử lý những kiểu dữ liệu phức tạp, ví dụ:
Danh sách điểm thi của một sinh viên
Danh sách sinh viên của lớp học
Cần lưu trữ và xử lý một chuỗi dữ liệu cùng kiểu
Sắp xếp, tìm kiếm, tính toán trên chuỗi dữ liệu
liệu có cấu trúc để xử lý các vấn đề trên
Trong đó mảng là cấu trúc dữ liệu thông dụng nhất
Mảng dùng để lưu trữ dữ liệu cùng kiểu
Trang 4Khái Niệm Chung
Trang 5Khái Niệm Chung
diemSo[0], diemSo[1], diemSo[2], diemSo[3],
diemSo[4], có kiểu dữ liệu int
Tên mảng (diemSo)
Và chỉ số phần tử là một giá trị nguyên hay biểu thức giá trị nguyên
Trang 6Truy Cập Mảng
// với i=1, câu lệnh sau -> diemSo[3] = 75
diemSo[i+2] = 75; // 72 -> 75
// thực hiện tính toán
tb = (diemSo[2] + diemSo[3]) / 2;
//in ra 45 và 83
Trang 7Khai Báo
int diemSo[5];
Khai báo một mảng có tên diemSo, có 5 phần tử,
lưu trữ giá trị kiểu int
Số phần tử của mảng không được thay đổi
Trang 8Nhập Dữ Liệu
liệu, và thực tiện tính toán trê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: "
<< tongDiem / SO_MON_HOC;
Trang 9Khởi Tạo
int diemSo[5] = {45, 60, 77, 72, 83};
không được vượt quá kích thước mảng (trong [])
int diemSo[] = {45, 60, 77, 72, 83};
C++ sẽ tự xác định độ dài của mảng dựa trên độ dài của danh sách khởi tạo
giá trị không xác định (giống biến)
Trang 10Ứ ng Dụng
6000 lần tung xúc xắc
int main(){
const int SO_MAT = 6;
int dem[SO_MAT + 1] = { 0 };
for (int t = 0; t < 6000; t++) {
int mat = 1 + rand() % SO_MAT;
dem[mat]++;
} for (int m = 1; m <= SO_MAT; m++) {
cout << m << "\t" << dem[m] << "\n";
} return 0;