Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
175,58 KB
Nội dung
TRẦN MINH THÁI Email: minhthai@itc.edu.vn Website: www.minhthai.edu.vn Cập nhật: 05 tháng 01 năm 2015 Chương 2. Ma trận #2 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 #3 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ò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 #4 Khá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) #5 Khai báo ma trận Cú pháp <KDL> tên ma trận [số dòng][số cột]; VD1: khai báo ma trận số nguyên a có 10 dòng và 15 cột int a[10][15]; VD2: khai báo ma trận số thực b có 25 dòng và 10 cột float b[25][10]; #6 Định nghĩa kiễu dữ liệu Để đơn giản trong việc khai báo ma trận: #define MAX 100 typedef <KDL> matran[MAX][MAX]; VD: Khai báo ma trận các số nguyên a #define MAX 100 typedef int matran[MAX][MAX]; matran a; #7 Khai 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} }; #8 Truy xuất phần tử Để truy xuất các thành phần của ma trận ta dựa vào chỉ số dòng và chỉ số cột. Cú pháp: tên ma trận[chỉ số dòng][chỉ số cột] VD: x = a[1][2]; // x = 7 // Cập nhật giá trị tại chỉ số dòng 2, cột 3 thành 10 a[2][3] = 10; #9 Các thao tác Nhập/ xuất Tìm kiếm Đếm Tính tổng/ trung bình Sắp xếp dòng/ cột Xóa dòng/ cột Chèn thêm dòng/ cột #10 Cá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: for(int d=0; d<=sd-1; d++) { for(int c=0; c<=sc-1; c++) { Xử lý phần tử a[d][c] } } Duyệt dòng d của ma trận a [...]... 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 0,0 0,5 1,1 1,4 2, 2 3 ,2 4,1 5,0 2, 3 3,3 4,4 5,5 Bài tập nhập/xuất #24 Cho ma trận vuông số nguyên kích thư c n, viết c c hàm: Nhập ma trận Xuất ma trận Xuấ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ụ Bài tập nhập/xuất #25 Cho ma trận vuông... nguyên kích thư c n, viết c c hàm: Xuất c c phần tử thu c phần tam gi c phía dưới c a đường chéo chính Bài tập nhập/xuất #26 Cho ma trận vuông số nguyên kích thư c n, viết c c hàm: Xuất c c phần tử thu c phần tam gi c phía trên đường chéo phụ Bài tập #27 Cho ma trận vuông số nguyên kích thư c n, viết c c hàm: Tính tổng c c phần tử không thu c đường chéo chính Tính giá trị trung bình c c phần tử thu c đường... 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] Tính tổng c a 1 c t trong ma trận a #21 Gọi s là tổng c t k s = a[0][k] + a[1][k] + a [2] [k] + … + a[sd-1][k] int s = 0; for(int i=0; i . vuông Bài tập #3 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ò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 #4 Khá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) #5 Khai báo ma trận C pháp <KDL> tên ma trận. a[k][i]; } #20 Tí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]