Xem thêm

Mảng 1 chiều trong C#: Khám phá với HowKteam

Huy Erick
Giới thiệu Trong các bài học trước, chúng ta đã tìm hiểu về từ khoá REF & OUT trong C#. Hôm nay, chúng ta sẽ cùng khám phá về mảng 1 chiều trong C#. Tại...

Giới thiệu

Trong các bài học trước, chúng ta đã tìm hiểu về từ khoá REF & OUT trong C#. Hôm nay, chúng ta sẽ cùng khám phá về mảng 1 chiều trong C#.

Tại sao phải sử dụng mảng?

Đầu tiên, hãy thử đặt mình vào tình huống sau: bạn cần lưu trữ họ tên của 10 sinh viên trong trường. Nếu sử dụng biến một cách thông thường, bạn sẽ phải khai báo 10 biến của kiểu string để chứa thông tin của 10 sinh viên. Điều này không có gì quá phức tạp.

Tuy nhiên, trong thực tế, một trường học không chỉ có 10 sinh viên, số lượng có thể lên tới hàng ngàn, thậm chí hàng chục ngàn sinh viên. Khi đó, việc khai báo và quản lý hàng ngàn biến sẽ trở nên rất phức tạp và khó kiểm soát. Đó là lúc mảng trở thành lựa chọn tốt nhất.

Mảng giúp ta:

  • Gom nhóm các đối tượng có chung tính chất lại với nhau, giúp code gọn gàng hơn.
  • Dễ dàng thay đổi số lượng phần tử, quản lý, nâng cấp và sửa chữa.
  • Dễ dàng áp dụng các cấu trúc lặp để xử lý dữ liệu.

Khái niệm về mảng

Mảng là:

  • Tập hợp các đối tượng có cùng kiểu dữ liệu.
  • Mỗi đối tượng trong mảng được gọi là một phần tử.
  • Các phần tử có thể phân biệt nhau bằng chỉ số phần tử, bắt đầu từ 0.

Đặc điểm của mảng:

  • Các phần tử trong mảng dùng chung một tên và được truy xuất thông qua chỉ số phần tử.
  • Mảng cần có giới hạn số phần tử.
  • Phải cấp phát vùng nhớ mới để sử dụng mảng.
  • Vị trí ô nhớ của các phần tử trong mảng được cấp phát liền kề nhau.

Khai báo, khởi tạo và sử dụng mảng 1 chiều trong C

Khai báo mảng 1 chiều

Cú pháp:

[] ;

Trong đó:

  • là kiểu dữ liệu của các phần tử trong mảng.
  • Cặp dấu [] là ký hiệu cho khai báo mảng 1 chiều.
  • là tên của mảng, cách đặt tên mảng cũng như cách đặt tên biến.

Khởi tạo và cấp phát vùng nhớ

Để sử dụng mảng, ta phải khởi tạo giá trị hoặc cấp phát vùng nhớ cho mảng. Cấp phát vùng nhớ được thực hiện thông qua toán tử new. Sau đó, ta có thể khởi tạo giá trị mặc định cho các phần tử trong mảng như sau:

[]  = new [];

Hoặc ta có thể khởi tạo giá trị khác ngay từ lúc cấp phát vùng nhớ:

[]  = new [] { , ...,  };

Lưu ý: Số phần tử tối đa của mảng được chỉ ra trong cấp phát vùng nhớ.

Sử dụng mảng

Mảng có thể được sử dụng làm kiểu dữ liệu cho biến, kiểu trả về cho hàm, hoặc tham số truyền vào cho hàm. Ta có thể truy xuất các phần tử của mảng thông qua chỉ số phần tử và cặp dấu [], giống như thao tác với biến bình thường.

// Khai báo, cấp phát và khởi tạo mảng kiểu string với tên là Kteam
string[] Kteam = new string[] { "HowKteam", "Free Education" };

// Truy xuất phần tử thứ 2 của mảng
Console.WriteLine(Kteam[1]);

Cách duyệt mảng 1 chiều

Có nhiều cách để duyệt qua các phần tử của mảng. Một cách đơn giản và tiện lợi là sử dụng vòng lặp for. Ta có thể tận dụng chỉ số phần tử trong vòng lặp để truy xuất phần tử tương ứng.

int[] Kteam = new int[3];
for (int i = 0; i < 3; i++)
{
    // Thực hiện thao tác với phần tử tại vị trí i
}

Tận dụng thuộc tính Length của mảng, ta có thể dễ dàng duyệt qua tất cả các phần tử của mảng mà không cần lo lắng về số lượng phần tử.

int[] Kteam = new int[3];
for (int i = 0; i < Kteam.Length; i++)
{
    // Thực hiện thao tác với phần tử tại vị trí i
}

Ví dụ chương trình sử dụng mảng 1 chiều

Hãy xem xét một ví dụ đơn giản: chương trình tính năm âm lịch từ năm dương lịch đã nhập. Trước đây, chúng ta đã sử dụng switch case để giải quyết vấn đề này. Giờ hãy thử tổ chức lại chương trình bằng cách sử dụng mảng.

int Year; // Biến chứa giá trị năm cần tính
string[] Can = { "Canh", "Tân", "Nhâm", "Quý", "Giáp", "Ất", "Bính", "Đinh", "Mậu", "Kỷ" };
string[] Chi = { "Thân", "Dậu", "Tuất", "Hợi", "Tý", "Sửu", "Dần", "Mão", "Thìn", "Tỵ", "Ngọ", "Mùi" };

Console.Write("Mời bạn nhập một năm bất kỳ: ");
Year = Int32.Parse(Console.ReadLine());

Console.WriteLine("Năm {0} có năm âm lịch là: {1} {2}", Year, Can[Year%10], Chi[Year%12]);

// Nối Can và Chi lại để được năm âm lịch
Console.ReadLine();

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu:

  • Khái niệm về mảng trong C# và lý do ta nên sử dụng mảng.
  • Cách khai báo, khởi tạo và sử dụng mảng 1 chiều trong C#.

Tiếp theo, chúng ta sẽ khám phá về mảng 2 chiều trong C#.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để chúng ta có thể cải thiện nội dung. Hãy luôn luyện tập, thách thức bản thân và không ngại khó!

Thảo luận

Nếu bạn có bất kỳ khó khăn hoặc thắc mắc nào về khóa học, đừng ngần ngại đặt câu hỏi trong phần bình luận hoặc mục Hỏi & Đáp trên trang Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

1