Bài 12: Giới thiệu và làm quen với mảng

Tủ sách mở Wikibooks

Tổ chức lưu chứa dữ liệu trong quá trình tính toán cũng là một điều rất quan trọng. Nếu tổ chức tốt, hợp lí và khoa học, các bài toán sẽ được xử lý với tốc độ nhanh và đạt hiểu quả cao. Trong lập trình, điều này giải quyết qua các Cấu trúc dữ liệu. Có nhiều cấu trúc dữ liệu, nhưng trong cuốn sách này chúng ta chỉ học duy nhất 1 cấu trúc dữ liệu và cũng cấu trúc cơ bản nhất, đó là Mảng (một chiều).

Minh họa về mảng

Giới thiệu về Mảng[sửa]

Mảng về bản chất là dãy các biến nhớ. Đặc điểm của mảng trong C++:

  • Các phần tử luôn cùng kiểu dữ liệu
  • Kích thước được khai báo sẵn và luôn cố định
  • Mỗi phần tử đều có chỉ số
So sánh việc sử dụng Mảng và Biến
Mảng Dãy các biến
Khai báo Khai báo mảng ngắn gọn với một câu lệnh

Số lượng phần tử được khai báo bằng số ngay câu lệnh khởi tạo

Khai báo từng biến đơn lẻ

Điền và đếm từng biến một cách thủ công

Tên Chỉ cần đặt tên cho mảng Mỗi biến là một tên khác nhau
Chỉ số Mỗi phần tử có một chỉ số

Giúp truy cập mảng một cách khoa học

Các biến không có chỉ số

Khai báo mảng[sửa]

Cú pháp khởi tạo một mảng là: <kiểu dữ liệu> <tên mảng>[<kích thước>];

  • Kiểu dữ liệu: là kiểu dữ liệu chung của mảng
  • Tên mảng: là tên hợp lệ của mảng
  • Kích thước: kích thước của mảng, phải là một hằng số nguyên

Ví dụ:

int A[100];
float month[12], day[365];
bool check[100000];

Truy cập mảng[sửa]

Mỗi phần tử của mảng đều được đánh chỉ số, bắt đầu từ 0. Chúng ta sẽ sử dụng chỉ số để truy cập các phần tử trong mảng. Xem ví dụ sau:

int A[10];
102 87 981 42 26 15 79 43 224 500

Mảng trên có 10 phần tử, được đánh chỉ số bắt đầu từ 0. Phần tử đầu tiên (bằng 102) biểu diễn là A[0], phần tử thứ hai là A[1],... cho đến phần tử cuối cùng là A[9].


Nhập xuất phần tử[sửa]

Về bản chất, mỗi phần tử của mảng là một biến nhớ, do vậy ta có thể gán trực tiếp giá trị vào chúng. Ví dụ:

int A[5];
A[0] = 100;
A[1] = 40;
A[2] = 938;
A[3] = 1975;
A[4] = 2023;

Ta cũng có thể nhập giá trị vào từng phần tử qua câu lệnh cin. Ví dụ:

float B[3];
cin >> B[0];
cin >> B[1];
cin >> B[2];

Hơn nữa, ta còn có thể lấy và xuất ra ngoài màn hình giá trị của phần tử qua câu lệnh cout. Ví dụ:

int S[4];
cout << S[0] << endl
     << S[1] << endl
     << S[2] << endl
     << S[3] << endl;




BÀI TẬP

Bài 1: Chọn câu sai khi nói về mảng

A. Mỗi phần tử trong mảng đều được đánh chỉ số
B. Kích thước của mảng luôn cố định
C. Khởi tạo mảng phải khai báo trước kích thước
D. Các phần tử có thể khác kiểu dữ liệu

Bài 2: Chọn câu đúng khi nói về mảng

A. Mảng là dãy các phần tử không cùng kiểu dữ liệu
B. Chỉ số của mảng bắt đầu từ 1
C. Quy tắc đặt tên mảng giống biến nhớ
D. Các phần tử trong mảng lưu trữ cùng một giá trị