Nội dung Khái niệm Khai báo Các thao tác cơ bản trên ma trận Thao tác trên ma trận vuông Bài tập... Khái niệm Kiểu dữ liệu ma trận được tổ chức theo dạng bảng 2 chiều.. Thực chất mỗi dòn
Trang 2Nội dung
Khái niệm
Khai báo
Các thao tác cơ bản trên ma trận
Thao tác trên ma trận vuông
Bài tập
Trang 3Khái niệm
Kiểu dữ liệu ma trận được tổ chức theo dạng bảng
2 chiều Thực chất mỗi dòng của ma trận là mảng 1 chiều
Kích thước được xác định bởi số dòng và số cột
Chỉ số dòng và cột được tính từ 0
Trang 4Khái niệm
Dòng 0 Dòng 1 Dòng 2 Dòng 3
Cột 0
Cột 1
Cột 2
Cột 3
Cột 4
Cột 5
Ma trận có 4 dòng 6 cột (kích thước 4 x 6)
Trang 5float b[25][10];
Trang 6Định nghĩa kiễu dữ liệu
Để đơn giản trong việc khai báo ma trận:
Trang 7Khai báo và khởi gán
<KDL> tên ma trận[số dòng][số cột]={{gt11, gt12, …},
{gt21, gt22, …}, …
{gtk1, gtk2, …}};
VD: int a[3][4] = {{2,3,9,4},
{5,6,7,6}, {2,9,4,7} };
Trang 9Xóa dòng/ cột
Chèn thêm dòng/ cột
Trang 10Các thao tác
Sử dụng 2 vòng lặp lồng nhau để duyệt ma trận
Mỗi lần lặp sẽ duyệt từng dòng của ma trận
Gọi sd là số dòng, sc là số cột và a là ma trận Cấu trúc duyệt tổng quát:
Trang 11Nhập/xuất ma trận số nguyên
Khai báo
#define MAX 100
typedef int matran[MAX][MAX];
void NhapMT(matran a, int sd, int sc);
void XuatMT(matran a, int sd, int sc);
Trang 12printf("Nhap gia tri [%d][%d]: “, d, c); scanf(“%d”, &a[d][c]);
}}
}
Trang 13printf(“%d\t”, a[d][c]);
} printf(“\n”);
}
}
Trang 16Phát sinh giá trị ngẫu nhiên
void PhatSinh(matran a, int sd, int sc)
{
for (int d = 0; d <= sd - 1; d++)
{
for (int c = 0; c <= sc - 1; c++) {
a[d][c] = rand() % MAX;
} }
}
1 Sử dụng thư viện <stdlib.h> và <time.h>
2 Dùng hàm srand((unsigned int) time(NULL))
ở đầu hàm main()
Trang 18Tính tổng của 1 dòng trong ma trận a
Dòng 0 Dòng 1
Dòng 2
Dòng sd-1
Cột 0
Cột 1
Cột 2
Cột 3
Cột sc-1
Trang 20Tính tổng của 1 cột trong ma trận a
Dòng 0 Dòng 1 Dòng 2
Dòng sd-1
Cột 0
Cột 1
Cột 2
Cột 3
Cột sc-1
Tổng cột 2 = a[0][ 2 ] + a[1][ 2 ] + a[2][ 2 ] + … + a[sd-1][ 2 ]
Tổng cột k = a[0][ k ] + a[1][ k ] + a[2][ k ] + … + a[sd-1][ k ]
Trang 23Ma trận vuông
Ma trận có số dòng và số cột bằng nhau
Đường chéo chính: chỉ số dòng = chỉ số cột
Đường chéo phụ: chỉ số cột+chỉ số dòng = k/thước - 1
2,2 2,3 3,2 3,3
Trang 24Xuất các phần tử thuộc đường chéo chính
Xuất các phần tử thuộc đường chéo phụ
Trang 28Q&A