Dẫn nhập
Ở bài học kinh nghiệm trước, bản thân đã chia sẻ cho chúng ta về CÁC THAO TÁC TRÊN MẢNG MỘT CHIỀU TRONGC++.
Bạn đang xem: Bài tập mảng 2 chiều trong c
Hôm nay, mình sẽ trình làng cho chúng ta về một dạng không giống của kiểu dữ liệu mảng, đó là Mảng 2 chiều (Two-dimensional arrays) trong C++.
Nội dung
Để gọi hiểu bài xích này xuất sắc nhất các bạn nên có kỹ năng cơ bản về:
Trong bài ta sẽ cùng mày mò các vấn đề:
Mảng 2d là gì?Khai báo và khởi sản xuất mảng 1 chiềuXuất các phần tử mảng 2 chiềuNhập các thành phần mảng 2 chiềuMảng 2d là gì?
Trong bài xích MẢNG MỘT CHIỀU vào C++ (Arrays), chúng ta đã biết được mảng là 1 kiểu dữ liệu có kết cấu do fan lập trình định nghĩa, màn trình diễn một dãy những biến có cùng kiểu.
Ví dụ:
int a<5> = 6, 4, 3, 7, 2 ;
Hình dưới mô tả 1 mảng tên là a gồm kiểu int tất cả 5 thành phần (đã khởi tạo) nằm trong vùng nhớ RAM:

Các thành phần trong một mảng, có thể là bất kỳ kiểu dữ liệu nào, và nó cũng rất có thể là kiểu tài liệu mảng. Nếu như các thành phần trong mảng gồm kiểu tài liệu mảng, nó được call là mảng đa chiều.
Một mảng của một mảng được gọi là mảng nhiều chiều (multidimensional array).
Ví dụ mảng 2 chiều:
int a<2><3> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;
Hình bên dưới mô tả mảng 2 chiều tên là a có kiểu int bao gồm 2 bộ phận (đã khởi tạo), mỗi thành phần là mảng 1 chiều 3 bộ phận (thường được điện thoại tư vấn là 2 cái 3 cột):

Dù mảng a là 2 chiều hay các chiều, nhưng thực chất khi lưu vào bộ nhớ lưu trữ RAM, nó vẫn là 1 vùng nhớ tất cả những ô nhớ tiếp tục nhau.
Khai báo và khởi tạo ra mảng 2 chiều
Khai báo mảng 2 chiều
Cú pháp:<><>;
Lưu ý:
Phải xác định và rõ ràng (hằng số) lúc khai báo.Nên sử dụng chỉ thị tiền xử lý #define để định nghĩa mảng.Tổng số phần tử = * .Bộ nhớ thực hiện = * sizeof().Ví dụ:
int a<10><20>, b<10><20>;int c<5><10>;int d<10><20>;
Chú ý: khi một mảng chưa khởi tạo, các phần tử của mảng sẽ sở hữu giá trị rác.
Khởi chế tác giá trị mang đến mảng 2 chiều
Cách 1: Khởi chế tác giá trị mang lại mọi bộ phận của mảng
int a<2><3> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;

Cách 2: Khởi sinh sản giá trị cho một số bộ phận đầu mảng
int a<2><3> = 6 , // row 1 7, 2, 8 // row 2;

Cách 3: Khởi tạo nên giá trị 0 đến mọi phần tử của mảng
int a<2><3> = ;

Cách 4: Tự động khẳng định số lượng phần tử
int a<><3> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;

Không hệt như mảng 1 chiều, mảng 2 chiều không đến phép khai báo mặt dưới:
int a<><> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;Cách 5: Sử dụng khởi tạo đồng điệu (uniform initialization) trong C++11 (tương tự giống như những cách trên, nhưng mà bỏ đi lốt bằng “=”)
int a<2><3> 6, 4, 3 , // row 1 7, 2, 8 // row 2;int b<2><3> 6 , // row 1 7, 2, 8 // row 2;int c<2><3> ;int d<><3> 6, 4, 3 , // row 1 7, 2, 8 // row 2;
Xuất các phần tử mảng 2 chiều
Để truy xuất quý giá của phần tử vào mảng, ta thực hiện cú pháp:<><>;
Ví dụ: Cho mảng như sau:
int a<2><3> // 2 dòng, 3 cột

Các truy nã xuất:
Hợp lệ: a<0><0>, a<0><1>, …, a<1><1>, a<1><2>Không vừa lòng lệ: a<-1><0>, a<0><-1>, a<2><3>, … => cho công dụng không như mong muốn (có thể gây bị tiêu diệt chương trình).Chú ý: lúc truy xuất 1 phần tử mảng, luôn bảo đảm chỉ số của thành phần đó là hòa hợp lệ vào phạm vi của mảng.
Ví dụ lịch trình khởi sinh sản và xuất các phần tử mảng:
#include using namespace std;#define ROW 2 // Max row#define COL 3 // Max columnint main()// khởi chế tạo ra mảng 2 dòng 3 cộtint arr

Chương trình trên áp dụng 2 vòng lặp for, 1 vòng lặp chạy trường đoản cú 0 cho ROW – 1 để truy cập vào từng dòng, bên trên mỗi chiếc sẽ có 1 vòng lặp chạy tự 0 cho COL – 1 để truy vấn vào từng cột.
Nhập các phần tử mảng 2 chiều
Để gán giá chỉ trị bỏ phần tử trong mảng, ta thực hiện cú pháp:
<><> = ;
Ví dụ các phép gán vừa lòng lệ:
int a<2><3>;a<0><0> = 6;a<0><1> = 4;a<0><2> = 3;a<1><0> = 7;a<1><1> = 2;a<1><2> = 8;Ví dụ các phép gán KHÔNG thích hợp lệ (gây bị tiêu diệt chương trình):
int a<2><3>;a<-1><0> = 6;a<0><-1> = 4;a<2><3> = 3;
Chú ý: khi truy cập một phần tử mảng, luôn bảo đảm chỉ số của phần tử đó là vừa lòng lệ trong phạm vi của mảng.
Ví dụ chương trình yêu mong nhập dữ liệu cho mảng 2 chiều, sau đó xuất ra màn hình:
#include using namespace std;#define ROW 100 // Max row#define COL 100 // Max columnint main()// khởi tạo thành mảng 2 loại 3 cộtint arr

Ví dụ chương trình vạc sinh dữ liệu cho mảng 2 chiều, kế tiếp xuất ra màn hình:
#include #include #include using namespace std;#define ROW 100 // Max row#define COL 100 // Max columnint main(){// khởi sản xuất mảng 2 dòng 3 cộtint arr

Kết luận
Qua bài học này, bạn đã biết được khái niệm và biện pháp sử Mảng 2 chiều (Two-dimensional arrays) trong C++. Mảng 2 chiều được sử dụng khá phổ cập trong lập trình, nó được áp dụng vào các bài toán vật thị, hoặc những trò chơi như game caro, cờ vua, …
Trong bài xích tiếp theo, bản thân sẽ trình làng cho chúng ta CÁC THAO TÁC TRÊN MẢNG 2 CHIỀUtrong C++.
Cảm ơn chúng ta đã theo dõi bài viết. Hãy nhằm lại phản hồi hoặc góp ý của mình để vạc triển bài viết tốt hơn. Đừng quên “Luyện tập – thách thức – không lo ngại khó”.
Xem thêm: Giải Bài Tập Vật Lý 10 Bài 2 Vật Lí 10: Chuyển Động Thẳng Đều
Thảo luận
Nếu các bạn có ngẫu nhiên khó khăn hay vướng mắc gì về khóa học, đừng rụt rè đặt thắc mắc trong phần BÌNH LUẬN dưới hoặc trong mục HỎI & ĐÁP trên thư viện hijadobravoda.com.com để nhận được sự hỗ trợ từ cộng đồng.