Bài giảng Kỹ thuật lập trình Chương 2 Mảng hai chiều cung cấp cho người học các kiến thức Khái niệm, khai báo, các thao tác cơ bản trên ma trận, thao tác trên ma trận vuông. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 2Nội dung
• Khái niệm
• Khai báo
• Các thao tác cơ bản trên ma trận
• Thao tác trên ma trận vuông
• Bài tập
Trang 3KHÁI NIỆM VÀ KHAI BÁO
Trang 4Khái niệm
Dòng 0 Dòng 1 Dòng 2 Dòng 3
Cột 0
Cột 1
Cột 2
Cột 3
Cột 4
Cột 5
Ma trận có 4 dòng 6 cột (kích thước 4 x 6)
Trang 7Định nghĩa kiễu dữ liệu
Để đơn giản trong việc khai báo ma trận:
Trang 8Khai báo và khởi gán
Trang 10CÁC THAO TÁC XỬ LÝ CƠ BẢN
Trang 12Cấu trúc lệnh xử lý phổ biến
• Sử dụng 2 vòng lặp lồng nhau để duyệt ma trận
• Mỗi lần lặp sẽ duyệt từng dòng của ma trận
• Gọi sd là số dòng, sc là số cột và a là ma trận Cấu trúc duyệt tổng quát:
Trang 13typedef int matran[MAX][MAX];
void NhapKichThuoc(int &sd, int &sc);
void Nhap(matran a, int sd, int sc);
void Xuat(matran a, int sd, int sc);
Trang 18Minh họa thực thi của chương trình
Nhap so dong cua ma tran: 3 Nhap so cot cua ma tran: 4 Nhap gia tri cho ma tran:
Nhap gia tri [0][0]: 1 Nhap gia tri [0][1]: 2 Nhap gia tri [0][2]: 3 Nhap gia tri [0][3]: 4 Nhap gia tri [1][0]: 5 Nhap gia tri [1][1]: 6 Nhap gia tri [1][2]: 7 Nhap gia tri [1][3]: 8 Nhap gia tri [2][0]: 9 Nhap gia tri [2][1]: 10 Nhap gia tri [2][2]: 11 Nhap gia tri [2][3]: 12 Cac phan tu trong ma tran
1 2 3 4
Trang 20Phát sinh giá trị ngẫu nhiên
void PhatSinh(matran a, int sd, int sc){
for (int d = 0; d <= sd - 1; d++)
{
for (int c = 0; c <= sc - 1; c++) {
a[d][c] = rand() % MAX;
}
}
}
Trang 22Tính tổng của 1 dòng trong ma trận a
Dòng 0 Dòng 1
Dòng 2
Dòng sd-1
Cột 0
Cột 1
Cột 2
Cột 3
Cột sc-1
Trang 24Tính tổng của 1 cột trong ma trận a
Dòng 0 Dòng 1 Dòng 2
Dòng sd-1
Cột 0
Cột 1
Cột 2
Cột 3
Cột sc-1
Trang 26Bài tập xóa
Cho ma trận số nguyên, viết các hàm:
• Xóa dòng có chứa giá trị lớn nhất
• Xóa cột có chứa giá trị x
Trang 27MA TRẬN VUÔNG
Trang 293 Xuất các phần tử thuộc đường chéo chính
4 Xuất các phần tử thuộc đường chéo phụ
Trang 32Bài tập
Cho ma trận vuông số nguyên kích thước n, viết các hàm:
1 Nhập ma trận có các phần tử đối xứng qua đường chéo
chính
2 Tính tổng các phần tử không thuộc đường chéo chính
3 Tính giá trị trung bình các phần tử thuộc đường chéo
phụ
4 Tìm phần tử có giá trị lớn nhất thuộc đường chéo chính
Trang 33Q&A