Công thức nào sau đây sử dụng mảng trong hàm năm 2024

Mọi ngôn ngữ lập trình đều cung cấp những kiểu dữ liệu có cấu trúc để lưu trữ các dạng dữ liệu như mô tả bên trên. Đối với C++, đó là mảng tĩnh, mảng động và danh sách liên kết. Trong bài viết này, chúng ta sẽ nói về kiểu mảng tĩnh.

II. Khai báo và khởi tạo mảng một chiều

1. Khai báo mảng một chiều

Để khai báo một mảng trong C++, ta sử dụng cú pháp:

{Kiểu_phần_tử} {Tên_mảng}[{Kích_thước_mảng}];

Trong đó, {Kiểu_phần_tử} là một kiểu dữ liệu nguyên thủy hoặc kiểu do người dùng tự định nghĩa - thể hiện kiểu dữ liệu của các phần tử trong mảng; {Tên_mảng} là một định danh do người dùng đặt ra và không được trùng với từ khóa của hệ thống; {Kích_thước_mảng} là một số nguyên thể hiện kích thước tạo ra cho mảng. Giả sử kích thước được khởi tạo là N,N, thì hệ thống sẽ tạo ra một dãy gồm NN ô nhớ liền nhau trong bộ nhớ để biểu thị cho mảng.

Ví dụ: Khai báo một mảng số nguyên gồm 1010 phần tử:

int a[10];

Lưu ý: Đừng bao giờ khai báo mảng là biến cục bộ, vì có thể gây ra tràn bộ nhớ call stack [các bạn sẽ hiểu rõ vấn đề này ở các bài tiếp theo]. Với các mảng có kích thước nhỏ [dưới 10001000] thì có thể khai báo cục bộ không sao, nhưng với các mảng kích thước lớn, kiểu dữ liệu lớn [như

{Kiểu_phần_tử} {Tên_mảng}[{Kích_thước_mảng}] = {{Danh_sách_phần_tử_khởi_tạo}};

7 hay

{Kiểu_phần_tử} {Tên_mảng}[{Kích_thước_mảng}] = {{Danh_sách_phần_tử_khởi_tạo}};

  1. thì nên khai báo mảng là biến toàn cục sẽ an toàn hơn.

2. Khởi tạo mảng một chiều

Cũng giống như biến, mảng có thể được khởi tạo trước các giá trị khi khai báo. Số lượng phần tử khởi tạo không được phép vượt quá kích thước mảng đã khai báo. Nếu như kích thước mảng được để trống thì hệ thống sẽ tự tạo ra số ô nhớ vừa đủ để chứa các phần tử khởi tạo. Cú pháp khởi tạo mảng là:

{Kiểu_phần_tử} {Tên_mảng}[{Kích_thước_mảng}] = {{Danh_sách_phần_tử_khởi_tạo}};

Có nhiều cách khác nhau để khởi tạo mảng

  • Khởi tạo một mảng với kích thước cố định:

    int a[5] = {1, 2, 3, 4, 5};

  • Khởi tạo một mảng có số phần tử khởi tạo ít hơn kích thước đã khai báo:

    int a[5] = {1, 2, 3};

    Trong trường hợp này, các phần tử chưa được khởi tạo sẽ nhận một giá trị bất kỳ nào đó. Nếu mảng được khai báo là biến toàn cục thì các phần tử trống sẽ nhận giá trị 0,0, nhưng nếu mảng là biến cục bộ thì các phần tử trống sẽ nhận những giá trị tùy ý. Thông thường khi khai báo mảng chúng ta nên khai báo biến toàn cục thay vì biến cục bộ để tránh những nhầm lẫn không đáng có trong khi tính toán vì những phần tử mang giá trị tùy ý.
  • Khởi tạo mảng không có kích thước:

    int a[] = {1, 2, 3, 4, 5};

    Đối với trường hợp này, mảng sẽ có số vị trí bằng đúng với số phần tử được khởi tạo.
  • Minh họa mảng một chiều bằng hình vẽ:

III. Các thao tác cơ bản trên mảng một chiều

1. Truy cập các phần tử trong mảng

Các phần tử trong mảng đều được đánh số, bắt đầu từ 00 tới N−1N-1 [NN là kích thước mảng]. Để truy cập và sử dụng một phần tử trong mảng, ta sử dụng toán tử

{Kiểu_phần_tử} {Tên_mảng}[{Kích_thước_mảng}] = {{Danh_sách_phần_tử_khởi_tạo}};

9 với cú pháp:

{Tên_mảng}[{Chỉ_số_phần_tử}];

Mỗi phần tử của mảng khi được truy cập sẽ trở thành giống như một biến đơn, có thể sử dụng để tính toán, kết hợp cùng các câu lệnh và toán tử.

Ví dụ:

  • Gán giá trị cho một phần tử của mảng:

    a[50] = 10;

  • Lấy giá trị của mảng gán cho một biến:

    int value = a[50];

2. Duyệt các phần tử của mảng

Để duyệt qua tất cả các phần tử trong một mảng, ta có thể sử dụng vòng lặp kết hợp với toán tử

{Kiểu_phần_tử} {Tên_mảng}[{Kích_thước_mảng}] = {{Danh_sách_phần_tử_khởi_tạo}};

9 để truy cập vào từng phần tử trong mảng. Cú pháp tổng quát như sau:

for [{Biến_đếm} = {Chỉ_số_đầu}; {Biến_đếm} 

Chủ Đề