Bài giảng "Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C++" cung cấp cho người học các kiến thức về mảng hai chiều (Ma trận) bao gồm: Khái niệm mảng hai chiều, khai báo mảng, nhập/xuất mảng, các bài toán về mảng hai chiều. Mời các bạn cùng tham khảo.
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng Tin học đại cương: Phần 2 - ThS. Phạm Thanh Bình (5)
- Bài 9 – Mảng hai chiều (Ma
trận)
Khái niệm mảng hai chiều
Khai báo mảng
Nhập/xuất mảng
Các bài toán về mảng hai chiều
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 1
- 1. Khái niệm mảng hai chiều
Mảng hai chiều là một công cụ cho
phép tổ chức quản lý dữ liệu dưới dạng
“bảng”
Ví dụ:
Xét bảng sau đây: 4 1 7
6 8 A[1][3]
2 3 2 5 1 (hàng 1, cột 3)
1 0 5 0 9
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 2
- Các phần tử của mảng
Mảng hai chiều bao gồm nhiều phần tử,
mỗi phần tử được đặc trưng bởi hai yếu
tố: Giá trị của phần tử và vị trí của phần
tử trong mảng
Một phần tử bất kỳ của mảng thường
được kí hiệu là A[i][ j], trong đó:
+ A là tên mảng
+ i là vị trí hàng
+ j là vị trí cột
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 3
- 2. Khai báo mảng
Muốn sử dụng mảng hai chiều trong
chương trình thì phải khai báo nó
Khai báo mảng thực chất là sự khai báo
đồng thời nhiều biến có cùng kiểu dữ liệu
Có nhiều cách khai báo khác nhau
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 4
- Các cách khai báo mảng hai chiều:
Cách 1:
KiểuDL TênMảng[Số hàng tối đa][Số cột tối đa];
Ví dụ 1:
int A[50][40];
Mảng này có tối đa 50 hàng x 40 cột = 2000
phần tử, mỗi phần tử là một số nguyên
Khai báo trên sẽ tạo ra 2000 biến nguyên:
A[0][0], A[0][1], ... , A[49][0], ... , A[49] [39]
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 5
- Ví dụ 2:
char B[30][40];
Mảng này có tối đa 30 hàng x 40 cột =
1200 phần tử, mỗi phần tử là một số nguyên
Khai báo trên sẽ tạo ra 1200 biến kí tự:
B[0][0], B[0][1], ... , B[29][0], ... , B[29] [39]
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 6
- Cách 2:
vector B(40);
vector A(50, B);
Tương đương với:
int A[50][40];
Chú ý: Muốn sử dụng cách khai báo này thì phải
viết dòng sau đây ở đầu chương trình:
#include
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 7
- 3. Nhập/xuất mảng
Nhập dữ liệu cho mảng hai chiều:
Cần sử dụng hai vòng lặp lồng nhau.
Ví dụ 1:
Nhập một mảng số nguyên có 3 hàng, 4 cột.
Cần lặp 3 x 4 lần!
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 8
- Các lệnh nhập:
int A[3][4];
for (int i = 0; i
- Các lệnh xuất (hiển thị):
Ví dụ 2:
Hiện mảng vừa nhập (3 hàng, 4 cột) ra màn hình.
cout
- Chương trình:
#include
using namespace std;
main()
{int A[3][4];
for (int i = 0; i
- #include
Cách 2: #include
using namespace std;
main()
{vector B(4);
vector A(3, B);
for (int i = 0; i
- Bài tập:
Nhập một ma trận số thực có M hàng và
N cột (M, N là các giá trị bất kỳ nhập từ
bàn phím).
Hiện ma trận vừa nhập ra màn hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 13
- Nội dung chương trình:
#include
using namespace std;
main()
{ float A[50][60];
int M, N ;
cout M ;
cout N ;
//Nhập ma trận:
...
//Hiện ma trận:
...
Bộ môn Kỹ thuật máy tính – Khoa
}
CNTT Tin học đại cương 2 14
- 4. Các bài toán về mảng hai
chiều
Thao tác trên một hàng hoặc một cột của
ma trận Tương tự như bài toán về dãy
Thao tác trên toàn ma trận
Thao tác trên ma trận vuông
...
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 15
- Ví dụ 1:
Nhập một ma trận có M hàng và N cột từ
bàn phím (các phần tử là số thực). Hãy
tính tổng các phần tử trên hàng đầu tiên
của ma trận.
Hiện tổng và hiện ma trận ra màn hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 16
- Bài tập:
Nhập một ma trận có M hàng và N cột từ
bàn phím (các phần tử là số thực). Hãy
tính tổng các phần tử dương trên cột cuối
cùng của ma trận.
Hiện tổng và hiện ma trận ra màn hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 17
- Ví dụ 2:
Nhập một ma trận có M hàng và N cột từ
bàn phím (các phần tử là số thực). Hãy
tính tổng các phần tử dương của ma trận.
Hiện tổng và hiện ma trận ra màn hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 18
- Bài tập:
Nhập một ma trận có M hàng và N cột từ
bàn phím (các phần tử là số nguyên). Hãy
đếm số lượng các phần tử chẵn của ma
trận.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 19
- Ví dụ 3:
Nhập một ma trận vuông có M hàng và M
cột từ bàn phím (các phần tử là số thực).
Hãy tính tổng các phần tử trên đường chéo
chính của ma trận.
Hiện tổng và hiện ma trận ra màn hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 20