Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C++ (P5) - Phạm Thanh Bình

Bài 9 – Mảng hai chiều (Ma trận) Khái niệm mảng hai chiều Khai báo mảng Nhập/xuất mảng Các bài toán về mảng hai chiều 1. Khái niệm mảng hai chiều Mảng hai chiều là một công cụ cho phép tổ chức quản lý dữ liệu dưới dạng “bảng” Mảng hai chiều bao gồm nhiều phần tử, mỗi phần tử được đặc trưng bởi hai yếu tố: Giá trị của phần tử và vị trí của phần tử trong mảng Một phần tử bất kỳ của mảng thường được kí hiệu là A[i][ j], trong đó: + A là tên mảng + i là vị trí hàng + j là vị trí cột

ppt23 trang | Chia sẻ: candy98 | Lượt xem: 722 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C++ (P5) - Phạm Thanh Bình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài 9 – Mảng hai chiều (Ma trận) Khái niệm mảng hai chiều Khai báo mảng Nhập/xuất mảng Các bài toán về mảng hai chiều Bộ môn Kỹ thuật máy tính – Khoa CNTT1. Khái niệm mảng hai chiều Mảng hai chiều là một công cụ cho phép tổ chức quản lý dữ liệu dưới dạng “bảng” Ví dụ: Xét bảng sau đây: 684172325110509A[1][3](hàng 1, cột 3)Bộ môn Kỹ thuật máy tính – Khoa CNTTCác phần tử của mảng Mảng hai chiều bao gồm nhiều phần tử, mỗi phần tử được đặc trưng bởi hai yếu tố: Giá trị của phần tử và vị trí của phần tử trong mảng Một phần tử bất kỳ của mảng thường được kí hiệu là A[i][ j], trong đó: + A là tên mảng + i là vị trí hàng + j là vị trí cộtBộ môn Kỹ thuật máy tính – Khoa CNTT2. Khai báo mảng Muốn sử dụng mảng hai chiều trong chương trình thì phải khai báo nó Khai báo mảng thực chất là sự khai báo đồng thời nhiều biến có cùng kiểu dữ liệu Có nhiều cách khai báo khác nhauBộ môn Kỹ thuật máy tính – Khoa CNTTCác cách khai báo mảng hai chiều: Cách 1:KiểuDL TênMảng[Số hàng tối đa][Số cột tối đa]; Ví dụ 1:int A[50][40]; Mảng này có tối đa 50 hàng x 40 cột = 2000 phần tử, mỗi phần tử là một số nguyên Khai báo trên sẽ tạo ra 2000 biến nguyên: A[0][0], A[0][1], ... , A[49][0], ... , A[49] [39]Bộ môn Kỹ thuật máy tính – Khoa CNTT Ví dụ 2:char B[30][40]; Mảng này có tối đa 30 hàng x 40 cột = 1200 phần tử, mỗi phần tử là một số nguyên Khai báo trên sẽ tạo ra 1200 biến kí tự: B[0][0], B[0][1], ... , B[29][0], ... , B[29] [39]Bộ môn Kỹ thuật máy tính – Khoa CNTT Cách 2: vector B(40); vector > A(50, B); Tương đương với: int A[50][40]; Chú ý: Muốn sử dụng cách khai báo này thì phải viết dòng sau đây ở đầu chương trình:#include Bộ môn Kỹ thuật máy tính – Khoa CNTT3. Nhập/xuất mảng Nhập dữ liệu cho mảng hai chiều: Cần sử dụng hai vòng lặp lồng nhau. Ví dụ 1: Nhập một mảng số nguyên có 3 hàng, 4 cột. Cần lặp 3 x 4 lần!Bộ môn Kỹ thuật máy tính – Khoa CNTTCác lệnh nhập:int A[3][4]; for (int i = 0; i > A[i][j] ; }Bộ môn Kỹ thuật máy tính – Khoa CNTTCác lệnh xuất (hiển thị): Ví dụ 2:Hiện mảng vừa nhập (3 hàng, 4 cột) ra màn hình. cout using namespace std;main() {int A[3][4]; for (int i = 0; i > A[i][j] ; } cout #include using namespace std;main() {vector B(4); vector > A(3, B); for (int i = 0; i > A[i][j] ; } cout using namespace std;main(){ float A[50][60]; int M, N ; cout > M ; cout > N ; //Nhập ma trận: ... //Hiện ma trận: ... }Bộ môn Kỹ thuật máy tính – Khoa CNTT4. Các bài toán về mảng hai chiều Thao tác trên một hàng hoặc một cột của ma trận Tương tự như bài toán về dãy Thao tác trên toàn ma trận Thao tác trên ma trận vuông ...Bộ môn Kỹ thuật máy tính – Khoa CNTTVí dụ 1: Nhập một ma trận có M hàng và N cột từ bàn phím (các phần tử là số thực). Hãy tính tổng các phần tử trên hàng đầu tiên của ma trận. Hiện tổng và hiện ma trận ra màn hình.Bộ môn Kỹ thuật máy tính – Khoa CNTTBài tập: Nhập một ma trận có M hàng và N cột từ bàn phím (các phần tử là số thực). Hãy tính tổng các phần tử dương trên cột cuối cùng của ma trận. Hiện tổng và hiện ma trận ra màn hình.Bộ môn Kỹ thuật máy tính – Khoa CNTTVí dụ 2: Nhập một ma trận có M hàng và N cột từ bàn phím (các phần tử là số thực). Hãy tính tổng các phần tử dương của ma trận. Hiện tổng và hiện ma trận ra màn hình.Bộ môn Kỹ thuật máy tính – Khoa CNTTBài tập: Nhập một ma trận có M hàng và N cột từ bàn phím (các phần tử là số nguyên). Hãy đếm số lượng các phần tử chẵn của ma trận.Bộ môn Kỹ thuật máy tính – Khoa CNTTVí dụ 3: Nhập một ma trận vuông có M hàng và M cột từ bàn phím (các phần tử là số thực). Hãy tính tổng các phần tử trên đường chéo chính của ma trận. Hiện tổng và hiện ma trận ra màn hình.Bộ môn Kỹ thuật máy tính – Khoa CNTTBài tập: Nhập một ma trận vuông có M hàng và M cột từ bàn phím (các phần tử là số nguyên). Hãy đếm số lượng phần tử chẵn trong tam giác trên của ma trận.Bộ môn Kỹ thuật máy tính – Khoa CNTTBài tập ứng dụng: Giả sử một lớp học có M sinh viên. Một học kỳ có N môn học. Nhập M, N và điểm các môn học của từng sinh viên từ bàn phím. Hãy cho biết lớp có bao nhiêu sinh viên đạt học bổng (điểm trung bình ≥ 7)Bộ môn Kỹ thuật máy tính – Khoa CNTTEOLBộ môn Kỹ thuật máy tính – Khoa CNTT