Ngôn Ngữ Lập Trình C# Kết quả: rectangularArray[0,0] = 0 rectangularArray[0,1] = 1 rectangularArray[0,2] = 2 rectangularArray[1,0] = 1 rectangularArray[1,1] = 2 rectangularArray[1,2] = 3 rectangularArray[2,0] = 2 rectangularArray[2,1] = 3 rectangularArray[2,2] = 4 rectangularArray[3,0] = 3 rectangularArray[3,1] = 4 rectangularArray[3,2] = 5 Trong ví dụ này, chúng ta khai báo hai giá trị: const int rows = 4; const int columns = 3; hai giá trị này được sử dụng để khai báo số chiều của mảng: int [,] rectangularArray = new int[rows, columns]; Lưu ý trong cú pháp này, dấu ngoặc vuông trong int[,] chỉ ra rằng đang khai báo một kiểu dữ liệu là mảng số nguyên, và dấu phẩy (,) chỉ ra rằng đây là mảng hai chiều (hai dấu phẩy khai báo mảng ba chiều, và nhiều hơn nữa). Việc tạo thể hiện thực sự của mảng ở lệnh new int [rows,columns] để thiết lập kích thước của mỗi chiều. Ở đây khai báo và tạo thể hiện được kết hợp với nhau. Chương trình khởi tạo tất cả các giá trị các thành phần trong mảng thông qua hai vòng lặp for. Lặp thông qua mỗi cột của mỗi dòng. Do đó, thành phần đầu tiên được khởi tạo là rectangularArray[0,0], tiếp theo bởi rectangularArray[0,1] và đến rectangularArray[0,2]. Một khi điều này thực hiện xong thì chương trình sẽ chuyển qua thực hiện tiếp ở dòng tiếp tục: rectangularArray[1,0], rectangularArray[1,1], rectangularArray[1,2]. Cho đến khi tất cả các cột trong tất cả các dòng đã được duyệt qua tức là tất cả các thành phần trong mảng đã được khởi tạo. Như chúng ta đã biết, chúng ta có thể khởi tạo mảng một chiều bằng cách sử dụng danh sách các giá trị bên trong dấu ngoặc ({}). Chúng ta cũng có thể làm tương tự với mảng hai chiều. Trong ví dụ 9.5 khai báo mảng hai chiều rectangularArray, và khởi tạo các thành phần của nó thông qua các danh sách các giá trị trong ngoặc, sau đó in ra nội dung của nội dung. Ví dụ 9.5: Khởi tạo mảng đa chiều. Mảng, Chỉ Mục, và Tập Hợp 223 Giáo trình phân tích khả năng vận dụng cấu tạo bo mạch mảng một chiều trong dấu ngoặc . Ngôn Ngữ Lập Trình C# namespace Programming_CSharp { using System; public class Tester { static void Main() { // khai báo biến lưu số dòng số cột mảng const int rows = 4; const int columns = 3; // khai báo và định nghĩa mảng 4x3 int[,] rectangularArray = { {0,1,2}, {3,4,5}, {6,7,8},{9,10,11} }; // xụất nội dung của mảng for( int i = 0; i < rows; i++) { for(int j = 0; j < columns; j++) { Console.WriteLine(“rectangularArray[{0},{1}] = {2}”, i, j, rectangularArray[i,j]); } } } } } Kết quả: rectangularArray[0,0] = 0 rectangularArray[0,1] = 1 rectangularArray[0,2] = 2 rectangularArray[1,0] = 3 rectangularArray[1,1] = 4 rectangularArray[1,2] = 5 rectangularArray[2,0] = 6 rectangularArray[2,1] = 7 rectangularArray[2,2] = 8 rectangularArray[3,0] = 9 Mảng, Chỉ Mục, và Tập Hợp 224 . . Ngôn Ngữ Lập Trình C# rectangularArray[3,1] = 10 rectangularArray[3,2] = 11 Ví dụ trên cũng tương tự như ví dụ 9.4, nhưng trong ví dụ này chúng ta thực hiện việc khởi tạo trực tiếp khi tạo các thể hiện: int[,] rectangularArray = { {0,1,2}, {3,4,5}, {6,7,8},{9,10,11} }; Giá trị được gán thông qua bốn danh sách trong ngoặc móc, mỗi trong số đó là có ba thành phần, bao hàm một mảng 4x3. Nếu chúng ta viết như sau: int[,] rectangularArray = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11} }; thì sẽ tạo ra một mảng 3x4. Mảng đa chiều có kích khác nhau Cũng như giới thiệu trước kích thước của các chiều có thể không bằng nhau, điều này khác với mảng đa chiều cùng kích thước. Nếu hình dạng của mảng đa chiều cùng kích thước có dạng hình chữ nhật thì hình dạng của mảng này không phải hình chữ nhật vì các chiều của chúng không điều nhau. Khi chúng ta tạo một mảng đa chiều kích thước khác nhau thì chúng ta khai báo số dòng trong mảng trước. Sau đó với mỗi dòng sẽ giữ một mảng, có kích thước bất kỳ. Những mảng này được khai báo riêng. Sau đó chúng ta khởi tạo giá trị các thành phần trong những mảng bên trong. Trong mảng này, mỗi chiều là một mảng một chiều. Để khai báo mảng đa chiều có kích thước khác nhau ta sử dụng cú pháp sau, khi đó số ngoặc chỉ ra số chiều của mảng: <kiểu dữ liệu> [] [] Ví dụ, chúng ta có thể khai báo mảng số nguyên hai chiều khác kích thước tên myJagged- Array như sau: int [] [] myJaggedArray; Chúng ta có thể truy cập thành phần thứ năm của mảng thứ ba bằng cú pháp: myJagged- Array[2][4]. Ví dụ 9.6 tạo ra mảng khác kích thước tên myJaggedArray, khởi tạo các thành phần, rồi sau đó in ra màn hình. Để tiết kiệm thời gian, chúng ta sử dụng mảng các số nguyên để các thành phần của nó được tự động gán giá trị mặc định. Và ta chỉ cần gán một số giá trị cần thiết. Mảng, Chỉ Mục, và Tập Hợp 225 . . Ngôn Ngữ Lập Trình C# Ví dụ 9.6: Mảng khác chiều. namespace Programming_CSharp { using System; public class Tester { static void Main() { const int rows = 4; // khai báo mảng tối đa bốn dòng int[][] jaggedArray = new int[rows][]; // dòng đầu tiên có 5 phần tử jaggedArray[0] = new int[5]; // dòng thứ hai có 2 phần tử jaggedArray[1] = new int[2]; // dòng thứ ba có 3 phần tử jaggedArray[2] = new int[3]; // dòng cuối cùng có 5 phần tử jaggedArray[3] = new int[5]; // khởi tạo một vài giá trị cho các thành phần của mảng jaggedArray[0][3] = 15; jaggedArray[1][1] = 12; jaggedArray[2][1] = 9; jaggedArray[2][2] = 99; jaggedArray[3][0] = 10; jaggedArray[3][1] = 11; jaggedArray[3][2] = 12; jaggedArray[3][3] = 13; jaggedArray[3][4] = 14; for(int i = 0; i < 5; i++) { Console.WriteLine(“jaggedArray[0][{0}] = {1}”, i, jaggedArray[0][i]); } for(int i = 0; i < 2; i++) { Console.WriteLine(“jaggedArray[1][{0}] = {1}”, Mảng, Chỉ Mục, và Tập Hợp 226 . . Ngôn Ngữ Lập Trình C# i, jaggedArray[1][i]); } for(int i = 0; i < 3; i++) { Console.WriteLine(“jaggedArray[2][{0}] = {1}”, i, jaggedArray[2][i]); } for(int i = 0; i < 5; i++) { Console.WriteLine(“jaggedArray[3][{0}] = {1}”, i, jaggedArray[3][i]); } } } } Kết quả: jaggedArray[0][0] = 0 jaggedArray[0][1] = 0 jaggedArray[0][2] = 0 jaggedArray[0][3] = 15 jaggedArray[0][4] = 0 jaggedArray[1][0] = 0 jaggedArray[1][1] = 12 jaggedArray[2][0] = 0 jaggedArray[2][1] = 9 jaggedArray[2][2] = 99 jaggedArray[3][0] = 10 jaggedArray[3][1] = 11 jaggedArray[3][2] = 12 jaggedArray[3][3] = 13 jaggedArray[3][4] = 14 Trong ví dụ này, mảng được tạo với bốn dòng: int[][] jaggedArray = new int[rows][]; Chú ý rằng chiều thứ hai không xác định. Do sau đó chúng ta có thể khai báo mỗi dòng có kích thước khác nhau. Bốn lệnh sau tạo cho mỗi dòng một mảng một chiều có kích thước khác nhau: Mảng, Chỉ Mục, và Tập Hợp 227 . . . trị trong ngoặc, sau đó in ra nội dung của nội dung. Ví dụ 9.5: Khởi tạo mảng đa chiều. Mảng, Chỉ Mục, và Tập Hợp 223 Giáo trình phân tích khả năng vận dụng cấu tạo bo mạch mảng một chiều trong. kỳ. Những mảng này được khai báo riêng. Sau đó chúng ta khởi tạo giá trị các thành phần trong những mảng bên trong. Trong mảng này, mỗi chiều là một mảng một chiều. Để khai báo mảng đa chiều có. columns]; Lưu ý trong cú pháp này, dấu ngoặc vuông trong int[,] chỉ ra rằng đang khai báo một kiểu dữ liệu là mảng số nguyên, và dấu phẩy (,) chỉ ra rằng đây là mảng hai chiều (hai dấu phẩy khai báo mảng