Mảng 1 chiều trong C++ | Laptrinhcanban.com

Mảng 1 chiều trong C++

Cùng tìm hiểu về mảng 1 chiều trong C++. Bạn sẽ biết mảng 1 chiều là gì, cách khai báo mảng 1 chiều, cách nhập và xuất mảng 1 chiều trong C++, cũng như một số các bài tập mảng 1 chiều sau bài học này.

Mảng 1 chiều là gì

Trong bài Mảng trong C++ là gì chúng ta đã biết mảng trong C++, hay còn gọi là kiểu mảng trong C++ là tập hợp các dữ liệu có cùng kiểu, và các dữ liệu chứa trong mảng được gọi là phần tử của mảng đó. Và mảng trong C++ được chia ra làm 2 loại, đó là mảng 1 chiềumảng đa chiều.

Trong ngôn ngữ C++, mảng 1 chiều là kiểu mảng mà trong đó các phần tử được sắp xếp liên tục và có thứ tự trên bộ nhớ máy tính. Các phần tử trong mảng được đánh số thứ tự từ đầu mảng tới cuối mảng, bắt đầu từ số 0 và tăng dần 1 đơn vị. Chúng ta gọi số này là index (chỉ số) của phần tử, và mảng có n phần tử thì sẽ có index bắt đầu từ [0] tới [n – 1].

Ví dụ điển hình của mảng 1 chiều là một dãy số chỉ nhiệt độ hoặc điện áp được ghi lại theo thời gian.

Mảng 1 chiều là gì

Mỗi phần tử trong mảng 1 chiều sẽ được xác định thông qua index của nó. Ví dụ với mảng 1 chiều ở trên, phần tử [37.1] có index bằng 2, do đó nó được xác định thông qua index là [2].

Cách khai báo mảng 1 chiều

Cách khai báo mảng một chiều đã được Kiyoshi hướng dẫn trong bài Khai báo mảng trong C++ rồi, chúng ta sẽ cùng ôn lại một chút nhé.

Để khai báo mảng 1 chiều, chúng ta cần quan tâm tới các thuộc tính của mảng cần khai báo sau đây:

  • Kiểu dữ liệu: Phần tử trong mảng thuộc kiểu dữ liệu nào? Là int, char hay float? Xem thêm: Kiểu dữ liệu trong C++
  • Độ dài (số phần tử): Mảng cần khai báo có bao nhiêu phần tử, cần chuẩn bị bao nhiêu chỗ để chứa nó trong bộ nhớ máy tính?
  • Tên mảng: tên của mảng để phân biệt nó với các đối tượng khác trong chương trình.

Và chúng ta sử dụng cú pháp sau đây để khai báo mảng 1 chiều:

type name[length];

Trong đó type là kiểu dữ liệu, name là tên mảng, và length chính là độ dài(số phần tử) của mảng. Lưu ý là chúng ta bắt buộc phải chỉ định length - số phần tử của mảng khi khai báo mảng 1 chiều, để chương trình có thể tạo ra vùng có kích thước tương đương để lưu mảng 1 chiều này trong bộ nhớ máy tính.

Ví dụ cụ thể về cách khai báo mảng 1 chiều trong C++:

int int_arr[10];
char char_arr[5];

Lưu ý là ngoài cách khai báo thì chúng ta cũng có thể khởi tạo và gán ngay giá trị ban đầu cho mảng 1 chiều. Khi đó, ngoài các thuộc tính ở trên thì chúng ta cần chỉ định thêm các phần tử của mảng cách nhau bởi dấu phẩy, và nằm giữa cặp dấu ngoặc nhọn {}, với cú pháp sau đây:

type array_name[length] = {value1, value2, value3,..};

Trong đó type là kiểu dữ liệu, name là tên mảng, length là độ dài (số phần tử) của mảng, và các value là giá trị ban đầu của các phần tử của mảng.

Ví dụ cụ thể về cách khởi tạo mảng 1 chiều trong C++:

int int_arr1[6] = {};  // [0, 0 ,0 ,0 ,0 ,0 ,0]

int int_arr2[6] = {1,2,3}; // [1,2,3,0,0,0]

char char_arr[6] = {'a','b','\0'}; //[a,b, , , , ,]

Truy cập phần tử trong mảng 1 chiều

Sau khi tạo mảng 1 chiều, chúng ta có thể tương tác với các phần tử trong nó thông qua index.

Để truy cập phần tử trong mảng 1 chiều, chúng ta viết tên mảng đằng trước, rồi sau đó chỉ định index của phần tử vào trong cặp dấu ngoặc vuông với cú pháp sau đây:

name[index]

Trong đó name là tên mảng, và index là index của phần tử cần truy cập.

Ví dụ với mảng num = {4,5,6,8} thì phần tử [5] có index bằng 1 sẽ được truy cập bằng cách viết num[1], và phần tử [8] sẽ được truy cập bằng cách viết num[3] chẳng hạn.

Sau khi truy cập phần tử trong mảng 1 chiều, chúng ta có thể lấy giá trị của nó, hoặc là gán giá trị mới và thay đổi giá trị ban đầu của nó.

Ví dụ, chúng ta lấy phần tử trong mảng 1 chiều, và thay đổi giá trị phần tử của mảng 1 chiều như sau:

#include <iostream>
using namespace std;
int main(){
int num[] = {4,5,6,8};
//Lấy giá trị phần tử
cout << "Phan tu thu 1: "<< num[0] <<endl;
cout << "Phan tu thu 2: "<< num[1]<<endl;

//Thay đổi giá trị phần tử
num[1] = 22;
cout << "Phan tu thu 2: "<< num[1]<<endl;
}

Kết quả :

Phan tu thu 1: 4
Phan tu thu 2: 5
Phan tu thu 2: 22

Nhập và xuất mảng 1 chiều trong C++

Để nhập mảng 1 chiều trong C++, chúng ta cần sử dụng tới hàm cin >> () để nhập dữ liệu từ bàn phím, và vòng lặp for để có thể nhập và gán từng dữ liệu đó vào từng phần tử có trong mảng 1 chiều.

Một cách tương tự thì để xuất mảng 1 chiều trong C++, chúng ta cần sử dụng tới hàm cout << () để in giá trị phần tử, và vòng lặp for để có thể lấy giá trị từng phần tử có trong mảng 1 chiều.

Chúng ta có thể viết hàm nhập mảng 1 chiều trong C++hàm xuất mảng 1 chiều trong C++ như sau:

/*Tạo hàm nhập mảng 1 chiều trong C++*/
void input_array(int array[], int length){
//array: tên mảng
//length: độ dài mảng
for (short i = 0; i < length; i++) cin >> array[i];
}

/*Tạo hàm xuất mảng 1 chiều trong C++*/
void show_array(int array[], int length){
//array: tên mảng
//length: độ dài mảng
for(short i = 0; i < length; i++) cout << array[i] <<' ';
cout << endl;
}

Dưới đây là chương trình mẫu sử dụng các hàm trên để nhập và xuất mảng 1 chiều trong C++:

#include <iostream>
using namespace std;

/*Tạo hàm nhập mảng 1 chiều trong C++*/
void input_array(int array[], int length){
//array: tên mảng
//length: độ dài mảng
for (short i = 0; i < length; i++) cin >> array[i];
}

/*Tạo hàm xuất mảng 1 chiều trong C++*/
void show_array(int array[], int length){
//array: tên mảng
//length: độ dài mảng
for(short i = 0; i < length; i++) cout << array[i]<<' ';
cout << endl;
}

int main(){
/*Nhập mảng 1 chiều trong C++*/
int n;
cout << ">>Nhap so phan tu: ";
cin >> n;

int array[n-1];
cout << (">>Nhap phan tu:\n");
input_array(array, n);

/*xuất mảng 1 chiều trong C++*/
cout << (">>Mang vua nhap:\n");
show_array(array, n);
}

Kết quả chương trình nhập và xuất mảng 1 chiều trong C++ như sau:

>>Nhap so phan tu: 5
>>Nhap phan tu:
1 2 3 4 5
>>Mang vua nhap:
1 2 3 4 5
  • Xem thêm: [cin >> () trong C++ và cách nhập dữ liệu](../../nhap-xuat-trong-cpp/cin >> -trong-cpp-va-cach-nhap-du-lieu/)
  • Xem thêm: [Hàm cout << () và cách xuất dữ liệu trong C++](../../nhap-xuat-trong-cpp/ham-cout << -va-cach-xuat-du-lieu-trong-cpp/)

in mảng 1 chiều

Chúng ta có 2 cách để in mảng 1 chiều trong C++, đó là cách in từng phần tử thông qua index, và cách in toàn bộ phần tử trong mảng 1 chiều bằng vòng lặp for.

in từng phần tử trong mảng 1 chiều

Trong trường hợp mảng 1 chiều có ít phần tử, hoặc là chúng ta chỉ muốn in ra một phần tử chỉ định nào đó, chúng ta có thể truy cập tới phần tử đó, lấy giá trị và in ra màn hình, thông qua việc chỉ định trực tiếp vị trí (index) của phần tử đó trong mảng.

Ví dụ cụ thể:

#include <iostream>
using namespace std;

int main() {

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

/* in từng phần tử trong mảng 1 chiều */
cout << a[0]<<endl;
cout << a[1]<<endl;
cout << a[2]<<endl;

return 0;
}

Kết quả:

4
5
6

in toàn bộ phần tử trong mảng 1 chiều

Cách thứ 2 để in mảng 1 chiều đó chính là sử dụng vòng lặp for để in toàn bộ phần tử trong mảng 1 chiều được chỉ định.

Trong trường hợp mảng 1 chiều chứa nhiều phần tử, và chúng ta không thể chỉ định và in từng phần tử của mảng, thì việc sử dụng vòng lặp for sẽ rất thuận tiện khi in mảng 1 chiều.

Ví dụ cụ thể:

#include <iostream>
using namespace std;

int main() {

int i;

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

/* in toàn bộ phần tử trong mảng 1 chiều */
for(i=0;i<3;++i){
cout << a[i] <<endl;
}

return 0;
}

Kết quả:

4
5
6

Bài tập mảng 1 chiều

Trong chuyên đề về mảng trong C++, Kiyoshi đã chuẩn bị rất nhiều các bài tập mảng 1 chiều với các cách giải chi tiết cho từng bài một. Đây không những là các bài tập mảng 1 chiều mà còn là các thao tác cần thiết với mảng 1 chiều được sử dụng trong các dự án viết bằng ngôn ngữ C++. Bạn có thể tham khảo cách làm của Kiyoshi, nhưng hãy tự nghĩ ra phương pháp giải cho riêng mình nhé.

Hãy tham khảo các bài tập mảng 1 chiều ở list sau đây:

STTXử lýBài tập
1Thêm chèn nốiSao chép mảng 1 chiều trong C++
2Thêm chèn nốiThêm và chèn phần tử vào mảng 1 chiều trong C++
3Thêm chèn nốiGhép nối mảng 1 chiều trong C++
4Tách xoáXóa mảng 1 chiều trong C++
5Tách xoáTách mảng âm dương trong C++
6Tách xoáTách mảng chẵn lẻ trong C++
7So sánh sắp xếpĐảo ngược mảng 1 chiều trong C++
8So sánh sắp xếpSắp xếp mảng 1 chiều trong C++
9So sánh sắp xếpTìm max và min trong mảng 1 chiều
10So sánh sắp xếpSo sánh mảng 1 chiều trong C++
11Phần tử trùng nhauKiểm tra và lấy phần tử trùng trong mảng 1 chiều
12Phần tử trùng nhauXóa phần tử trùng trong mảng 1 chiều
13Phần tử trùng nhauĐếm số phần tử trong mảng 1 chiều
14Tìm kiếm và liệt kêLiệt kê các phần tử xuất hiện trong mảng 1 chiều
15Tìm kiếm và liệt kêTìm số nguyên tố trong mảng 1 chiều
16Tìm kiếm và liệt kêTìm số chính phương trong mảng C++
17Tìm kiếm và liệt kêTìm kiếm một phần tử trong mảng 1 chiều
18Tìm kiếm và liệt kêTìm phần tử xuất hiện nhiều nhất trong mảng 1 chiều
19Tìm kiếm và liệt kêTìm phần tử nhỏ nhất trong mảng 1 chiều
20Tìm kiếm và liệt kêTìm phần tử lớn nhất trong mảng 1 chiều
21Tìm kiếm và liệt kêTìm phần tử cuối cùng trong mảng 1 chiều

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về mảng 1 chiều trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.