Danh mục

Bài giảng Lập trình C nâng cao‎: Chương 2 - Trần Minh Thái

Số trang: 28      Loại file: pptx      Dung lượng: 175.58 KB      Lượt xem: 14      Lượt tải: 0    
Hoai.2512

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 2 của bài giảng trang bị cho người học những hiểu biết về ma trận như; Khái niệm ma trận, khai báo ma trận, các thao tác cơ bản trên ma trận, thao tác trên ma trận vuông và một số bài tập. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình C nâng cao‎: Chương 2 - Trần Minh Thái Chương 2. Ma trậnTRẦNMINHTHÁIEmail:minhthai@itc.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: 05 tháng 01 năm 2015 Nội dung#2 • 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#3 • 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 Khái niệm#4 Cột Cột Cột Cột Cột Cột 0 1 2 3 4 5 Dòng 0 Dòng 1 Dòng 2 Dòng 3 Ma trận có 4 dòng 6 cột (kích thước 4 x 6) Khai báo ma trận#5 • Cú pháp 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]; Định nghĩa kiễu dữ liệu#6 Đểđơngiảntrongviệckhaibáomatrận: #defineMAX100 typedefmatran[MAX][MAX]; VD:Khaibáomatrậncácsốnguyêna #defineMAX100 typedefintmatran[MAX][MAX]; matrana; Khai báo và khởi gán#7 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} }; Truy xuất phần tử#8 Để truy xuất các thành phần cua ̉ ma trận ta dựa ̉ ́dòngvàchisô vàochisô ̉ ́côt. ̣ Cúpháp:tênmatrận[chỉsốdòng][chỉsốcột] VD: • x=a[1][2];//x=7 //Cậpnhậtgiátrịtạichỉsốdòng2,cột3thành Các thao tác#9 • 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 Các thao tác#10 • 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 Nhập/xuất ma trận số nguyên#11 Khaibáo #defineMAX100 typedefintmatran[MAX][MAX]; voidNhapMT(matrana,intsd,intsc); voidXuatMT(matrana,intsd,intsc); Nhập/xuất ma trận số nguyên#12 voidNhapMT(matrana,intsd,intsc) { for(intd=0;d Nhập/xuất ma trận số nguyên#13 voidXuatMT(matrana,intsd,intsc) { for(intd=0;d Nhập/xuất ma trận số nguyên#14 voidmain() { matrana; intsd,sc; printf(Nhapsodongcuamatran:); scanf(“%d”,&sd); printf(Nhapsocotcuamatran:“); scanf(“%d”,&sc); NhapMT(a,sd,sc); printf(“Cacphantutrongmatran ”); XuatMT(a,sd,sc); } Bài tập nhập/xuất#15 Chomatrậnsốnguyênagồmsddòngvàsccột.Viết cáchàm: • Phátsinhgiátrịngẫunhiênchomatrận • Xuấtcácphầntửlẻ • Xuấtcácphầntửlàsốnguyêntố • Xuấtcácphầntửcógiátrịlớnhơnx Phát sinh giá trị ngẫu nhiên#16void PhatSinh(matran a, int sd, int sc){ for (int d = 0; d Bài tập tìm kiếm#17 Chomatrậnsốnguyên,viếtcáchàm: 1. Tìmphầntửlớnnhất 2. Tìmvịtríphầntửlớnnhất 3. Tìmvịtríxuấthiệnđầutiêncủaphầntửcógiátrị x 4. Tìmdòngcótổnglớnnhất 5. Tìmcộtcótổngnhỏnhất 17 Tính tổng của 1 dòng trong ma trận a#18 Cột Cột Cột Cột Cột 0 1 2 3 sc-1 Dòng 0 … Dòng 1 … Dòng 2 … … … … … … … Dòng sd- … 1 Tổng dòng 2 = a[2][0] + a[2][1] + a[2][2] + … + a[2][sc-1] Tổng dòng k = a[k][0] + a[k][1] + a[k][2] + … + a[k][sc-1] Tính tổng của 1 dòng trong ma trận a#19 Gọi s là tổng dòng k s = a[k][0] + a[k][1] + a[k][2] + … + a[k][sc-1] int s = 0; for(int i=0; i Tính tổng của 1 cột trong ma trận a#20 Cột Cột Cột Cột Cột 0 1 2 3 sc-1 Dòng 0 … Dòng 1 … Dòng 2 … … … … … … … Dòng sd- … 1 Tổng c ...

Tài liệu được xem nhiều: