CẤP PHÁT ĐỘNG CHO MẢNG 2 CHIỀU TRÊN C

     
khóa huấn luyện và đào tạo Lập trình xây dựng C++ khóa đào tạo lập trình C++ căn phiên bản Mảng 2 chiều trong C++ (Two-dimensional arrays)

Dẫn nhập

Ở bài học trước, mình đã 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: Cấp phát động cho mảng 2 chiều trên c

Hôm nay, bản thân sẽ ra mắt cho các bạn về một dạng khác của kiểu tài liệu mảng, sẽ là Mảng 2d (Two-dimensional arrays) trong C++.

Nội dung

Để phát âm hiểu bài bác này xuất sắc nhất chúng ta nên có kiến thức và kỹ năng cơ bản về:

Trong bài ta đã cùng tò mò các vấn đề:

Mảng 2 chiều là gì?Khai báo và khởi tạo thành mảng 1 chiềuXuất các thành phần mảng 2 chiềuNhập các bộ phận mảng 2 chiều

Mảng 2d là gì?

Trong bài xích MẢNG MỘT CHIỀU vào C++ (Arrays), các bạn đã biết được mảng là 1 trong những kiểu dữ liệu có cấu tạo do người lập trình định nghĩa, màn biểu diễn một dãy những biến gồm 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 tất cả kiểu int tất cả 5 phần tử (đã khởi tạo) nằm vào vùng ghi nhớ RAM:

*

Các phần tử trong một mảng, có thể là bất kỳ kiểu dữ liệu nào, cùng nó cũng rất có thể là kiểu tài liệu mảng. Ví như các thành phần trong mảng bao gồm kiểu dữ liệu mảng, nó được call là mảng nhiều chiều.

Một mảng của một mảng được call là mảng đa 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 bao gồm kiểu int tất cả 2 phần tử (đã khởi tạo), mỗi thành phần là mảng một 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 a2 chiều hay những chiều, nhưng bản chất khi lưu giữ vào bộ nhớ lưu trữ RAM, nó vẫn luôn là 1 vùng nhớ tất cả những ô nhớ liên tiếp nhau.

Khai báo với khởi chế tạo mảng 2 chiều

Khai báo mảng 2 chiều

Cú pháp:

<><>;

Lưu ý:

Phải xác định rõ ràng (hằng số) lúc khai báo.Nên sử dụng chỉ thị tiền giải pháp xử lý #define để khái niệm mảng.Tổng số phần tử = * .Bộ nhớ sử dụng = * sizeof().

Ví dụ:

int a<10><20>, b<10><20>;int c<5><10>;int d<10><20>;

Chú ý: lúc một mảng chưa khởi tạo, các phần tử của mảng sẽ mang giá trị rác.

Xem thêm: Các Hệ Qtcsdl Phát Triển Theo Hướng, Đề Kiểm Tra Tin Học Lớp 12 Có Đáp Án

Khởi tạo nên giá trị mang đến mảng 2 chiều

Cách 1: Khởi chế tạo ra giá trị đến mọi phần tử của mảng

int a<2><3> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;

*

Cách 2: Khởi tạo nê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 giá trị 0 mang đế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 giống như mảng 1 chiều, mảng 2 chiều không mang lại 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 nhất quán (uniform initialization) trong C++11 (tương tự như các cách trên, nhưng 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 bộ phận mảng 2 chiều

Để truy xuất quý hiếm 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 hỏi xuất:

Hợp lệ: a<0><0>, a<0><1>, …, a<1><1>, a<1><2>Không thích hợp lệ: a<-1><0>, a<0><-1>, a<2><3>, … => cho hiệu quả không như mong muốn (có thể gây chết chương trình).

Chú ý: khi truy xuất 1 phần tử mảng, luôn đảm bảo an toàn chỉ số của bộ phận đó là hòa hợp lệ trong phạm vi của mảng.

Ví dụ chương trình khởi tạo thành và xuất các bộ phận mảng:

#include using namespace std;#define ROW 2 // Max row#define COL 3 // Max columnint main()// khởi chế tác mảng 2 mẫu 3 cộtint arr 6, 4, 3 , // row 1 7, 2, 8 // row 2;// xuất giá trị các phần tử mảngfor (int i = 0; i Output:

*

Chương trình trên sử dụng 2 vòng lặp for, 1 vòng lặp chạy tự 0 cho ROW – 1 để truy cập vào từng dòng, trên mỗi cái sẽ có một vòng lặp chạy trường đoản cú 0 đến COL – 1 để truy cập vào từng cột.

Nhập các thành phần mảng 2 chiều

Để gán giá bán trị dồn phần tử vào mảng, ta sử dụng cú pháp:

<><> = ;

Ví dụ các phép gán phù hợp 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ụ những phép gán KHÔNG đúng theo lệ (gây chết chương trình):

int a<2><3>;a<-1><0> = 6;a<0><-1> = 4;a<2><3> = 3;

Chú ý: lúc truy cập một phần tử mảng, luôn bảo đảm chỉ số của phần tử đó là hòa hợp lệ vào phạm vi của mảng.

Ví dụ chương trình yêu cầu nhập dữ liệu cho mảng 2 chiều, kế tiếp xuất ra màn hình:

#include using namespace std;#define ROW 100 // Max row#define COL 100 // Max columnint main()// khởi chế tác mảng 2 loại 3 cộtint arr;int row, col;// nhập số dòng, cộtcout > row;cout > col;// nhập mảng 2 chiềucout > arr;// xuất mảng 2 chiềufor (int i = 0; i Output:

*

Ví dụ chương trình phát sinh tài 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 chế tạo ra mảng 2 chiếc 3 cộtint arr;int row, col;// khởi tạo số ngẫu nhiênsrand(time(NULL));// nhập số dòng, cộtcout > row;cout > col;// nhập mảng 2 chiềufor (int i = 0; i Output:

*

Kết luận

Qua bài học kinh nghiệm này, bạn đã biết được khái niệm và giải pháp sử Mảng 2 chiều (Two-dimensional arrays) vào C++. Mảng 2d được áp dụng khá phổ cập trong lập trình, nó được áp dụng vào những bài toán thứ thị, hoặc những trò chơi như trò chơi caro, cờ vua, …

Trong bài bác tiếp theo, bản thân sẽ giới thiệu cho các bạn CÁC THAO TÁC TRÊN MẢNG 2 CHIỀUtrong C++.

Cảm ơn các bạn đã theo dõi bài xích viết. Hãy để lại comment hoặc góp ý của chính bản thân mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – thử thách – không phải lo ngại khó”.

Xem thêm: Hãy Nêu Công Dụng Của Máy Biến Áp Một Pha, Hãy Nêu Công Dụng Của Máy Biến Áp

Thảo luận

Nếu chúng ta có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng e dè đặt câu hỏi trong phần BÌNH LUẬN dưới hoặc vào mục HỎI & ĐÁP trên thư viện giayphutyeuthuong.vn.com để cảm nhận sự hỗ trợ từ cộng đồng.