Một mảng lưu trữ một tập hợp các phần tử cùng loại có kích thước cố định một cách tuần tự. Mảng được sử dụng để lưu trữ một tập hợp các dữ liệu, nhưng nó thường được hiểu là một bộ sưu tập của các biến có cùng kiểu dữ liệu được lưu trữ ở bộ nhớ có vị trí kề nhau.
Thay vì khai báo biến cá nhân, chẳng hạn như number0, number1, …, và number99, bạn khai báo một biến mảng nhiều phần tử và sử dụng number[0], number [1], và …, number [99] để đại diện cho biến số cá nhân. Một yếu tố cụ thể trong một mảng được truy cập bởi một chỉ mục.
Tất cả phần tử của mảng nằm ở bộ nhớ có vị trí kề nhau. Địa chỉ thấp nhất tương ứng với phần tử đầu tiên và địa chỉ cao nhất tương ứng với phần tử cuối cùng.
Khai báo mảng
Để khai báo một mảng trong C #, bạn có thể sử dụng cú pháp sau:
datatype[] arrayName;
Trong đó
- datatype được sử dụng để xác định kiểu dữ liệu của các phần tử trong mảng.
- [] Xác định kích thước của mảng.
- arrayName chỉ định tên của mảng.
Ví dụ,
double[] balance = new double[10];
Gán giá trị cho một mảng
Bạn có thể gán giá trị cho các phần tử mảng, bằng cách sử dụng các chỉ mục số, như:
double[] balance = new double[10];balance[0] = 4500.0;
Bạn có thể gán giá trị cho mảng tại thời điểm kê khai, như:
double[] balance = { 2340.0, 4523.69, 3421.0};
Bạn cũng có thể tạo và khởi tạo một mảng, như:
int [] marks = new int[5] { 99, 98, 92, 97, 95};
Bạn cũng có thể bỏ qua kích thước của mảng, như:
int [] marks = new int[] { 99, 98, 92, 97, 95};
Bạn có thể sao chép một mảng biến vào một biến mảng mục tiêu. Trong trường hợp như vậy, cả mục tiêu và nguồn đều đến cùng một vị trí bộ nhớ:
int [] marks = new int[] { 99, 98, 92, 97, 95};int[] score = marks;
Khi bạn tạo một mảng, trình biên dịch C # ngầm khởi tạo mỗi phần tử mảng tới một giá trị mặc định tùy thuộc vào kiểu mảng. Ví dụ, đối với một mảng int tất cả các phần tử này được khởi tạo 0.
Truy cập phần tử mảng
Một phần tử của mảng được truy cập bằng cách lập chỉ mục tên mảng. Điều này được thực hiện bằng cách đặt các chỉ số của các phần tử trong dấu ngoặc vuông sau tên của mảng. Ví dụ,
double salary = balance[9];
Ví dụ sau đây sẽ minh họa cụ thể các khái niệm trên:
using System; namespace ArrayApplication { class MyArray { static void Main(string[] args) { int [] n = new int[10]; int i,j; for ( i = 0; i < 10; i++ ) { n[ i ] = i + 100; } for (j = 0; j < 10; j++ ) { Console.WriteLine("PHANTU[{0}] = {1}", j, n[j]); } Console.ReadKey(); } } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:
PHANTU[0] = 100 PHANTU[1] = 101 PHANTU[2] = 102 PHANTU[3] = 103 PHANTU[4] = 104 PHANTU[5] = 105 PHANTU[6] = 106 PHANTU[7] = 107 PHANTU[8] = 108 PHANTU[9] = 109
Sử dụng vòng lặp foreach
Trong ví dụ trước, chúng ta sử dụng một vòng lặp for để truy cập mỗi phần tử mảng. Bạn cũng có thể sử dụng một lệnh foreach để lặp qua một mảng.
using System; namespace ArrayApplication { class MyArray { static void Main(string[] args) { int [] n = new int[10]; for ( int i = 0; i < 10; i++ ) { n[i] = i + 100; } foreach (int j in n ) { int i = j-100; Console.WriteLine(PHANTU[{0}] = {1}", i, j); } Console.ReadKey(); } } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:
PHANTU[0] = 100 PHANTU[1] = 101 PHANTU[2] = 102 PHANTU[3] = 103 PHANTU[4] = 104 PHANTU[5] = 105 PHANTU[6] = 106 PHANTU[7] = 107 PHANTU[8] = 108 PHANTU[9] = 109
Mảng trong C#
Có vài khái niệm quan trọng liên quan đến mảng mà lập trình viên cần hiểu rõ:
Khái niệm | Sự miêu tả |
Mảng đa chiều | C # hỗ trợ mảng đa chiều. Hình thức đơn giản nhất của mảng đa chiều là mảng hai chiều. |
Mảng nhiều chiều | C # hỗ trợ mảng siêu đa chiều, đó là mảng của mảng. |
Đi qua mảng đến hàm | Bạn có thể vượt qua các chức năng một con trỏ đến một mảng bằng cách xác định tên của mảng mà không có một chỉ số. |
Thông qua mảng | Điều này được sử dụng để thông qua các số không rõ tham số để đến một hàm. |
Lớp mảng | Được xác định trong hệ thống namespace, nó là lớp cơ sở cho tất cả các mảng, và cung cấp các thuộc tính và phương thức khác nhau để làm việc với mảng. |
Chúc bạn thành công!
cho e xin code bài toán balo bằng phương pháp quy hoạch động được k ạ?
bạn tự code vướng chỗ nào thì sinhvientot.net sẽ hỗ trợ chứ không gởi code cho bạn được