Câu lạc bộ Tin học dành cho học sinh Tiểu học

C++ 💡 Tiết 6 – MẢNG 2 CHIỀU (Matrix / 2D Array)

Trạng thái

♥ Lượt xem: 11
♥ Lượt phản hồi: 0

Tham gia
28/10/2025
Bài viết
368
Điểm Like
1,748
Điểm Uy tín
364,562
Tí Tinh Tế
Miu Mềm Mại
Rồng Rực Rỡ
Tỵ Tinh Tường
Heo Hiền Hậu
Tuổi Mùi
Phù điêu Hổ
Phù điêu Rồng
Hổ Hào Hiệp
Ngựa Ngộ Nghĩnh
Dê Dịu Dàng
Tích cực hoạt động

🧠 I. Mảng 2 chiều là gì?

Mảng 2 chiều giống như một bảng (table)dòng (rows)cột (columns).
Ví dụ:
Mã:
int a[3][4];
⟹ Mảng này có 3 dòng4 cột, tổng cộng 12 phần tử.

🧩 II. Cấu trúc minh họa

Mã:
      Cột →  0   1   2   3
Dòng 0 →   [ 1] [ 2] [ 3] [ 4]
Dòng 1 →   [ 5] [ 6] [ 7] [ 8]
Dòng 2 →   [ 9] [10] [11] [12]
👉 a[0][0] = 1, a[1][3] = 8, a[2][2] = 11

⚙️ III. Nhập và xuất mảng 2 chiều

Ví dụ:
Mã:
#include <iostream>
using namespace std;

int main() {
    int a[3][3];  // mảng 3x3

    // Nhập phần tử
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << "Nhap a[" << i << "][" << j << "]: ";
            cin >> a[i][j];
        }
    }

    // Xuất mảng
    cout << "\nMang vua nhap la:\n";
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}
📤 Kết quả ví dụ:
Mã:
Nhap a[0][0]: 1
...
Mang vua nhap la:
1 2 3
4 5 6
7 8 9

🔢 IV. Tính tổng từng hàng, từng cột

🧮 Tổng từng hàng:​

Mã:
for (int i = 0; i < 3; i++) {
    int tong = 0;
    for (int j = 0; j < 3; j++)
        tong += a[i][j];
    cout << "Tong hang " << i << " = " << tong << endl;
}

🧮 Tổng từng cột:​

Mã:
for (int j = 0; j < 3; j++) {
    int tong = 0;
    for (int i = 0; i < 3; i++)
        tong += a[i][j];
    cout << "Tong cot " << j << " = " << tong << endl;
}

🎯 V. Ma trận đối xứng

Một ma trận đối xứng là khi a[i][j] == a[j][i] với mọi i, j.
Ví dụ:
Mã:
1 2 3
2 4 5
3 5 6
✅ Là ma trận đối xứng.
Kiểm tra đối xứng:
Mã:
bool doiXung = true;
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        if (a[i][j] != a[j][i]) {
            doiXung = false;
        }
    }
}
if (doiXung) cout << "La ma tran doi xung";
else cout << "Khong phai doi xung";

🧩 VI. Hình minh họa:

Mã:
a[3][3] =

+----+----+----+
| 1  | 2  | 3  |
+----+----+----+
| 4  | 5  | 6  |
+----+----+----+
| 7  | 8  | 9  |
+----+----+----+

💪 VII. Bài tập luyện tập

Bài 1️⃣

Nhập vào ma trận 3x3, in ra:
  • Tổng các hàng
  • Tổng các cột
  • Tổng đường chéo chính (a[i][i])

Bài 2️⃣

Kiểm tra ma trận có đối xứng hay không.

Bài 3️⃣ (nâng cao)​

Nhập vào ma trận 3x3, rồi in ra ma trận chuyển vị (hoán đổi hàng và cột).

🌟 Tiết 6 – Tóm tắt

Kiến thứcMô tả
Khai báo mảng 2 chiềuint a[3][4];
Truy cập phần tửa[i][j]
Duyệt mảng2 vòng for lồng nhau
Tính tổngDuyệt từng hàng, cột
Đối xứnga[i][j] == a[j][i]
 

Trạng thái

♥ Lượt xem: 11
♥ Lượt phản hồi: 0

Trên Bottom