Xem mẫu

  1. M ng nhi u chi u Ki u c u trúc GV. Nguy n Minh Huy Nh p môn l p trình - Nguy n Minh Huy 1
  2. N i dung M ng nhi u chi u. u. Ki Ki u c u trúc. trúc. Nh p môn l p trình - Nguy n Minh Huy 2
  3. N i dung M ng nhi u chi u. u. Ki Ki u c u trúc. trúc. Nh p môn l p trình - Nguy n Minh Huy 3
  4. M ng nhi u chi u Xét Xét chương trình sau: sau: Nh p và xu t ma tr n 5 x 10. Khai Khai báo 5 m ng: int a1[10], a2[10], a3[10], a4[10], a5[10]. int Nh Nh p và xu t ma tr n 50 x 10. Khai Khai báo 50 m ng!! ng!! Làm Làm sao bi u di n ma tr n M x N? Nh p môn l p trình - Nguy n Minh Huy 4
  5. M ng nhi u chi u Gi Gi i pháp 1: Dùng Dùng m ng m t chi u!! u!! Bi Bi u di n ma tr n M x N: tr Khai Khai báo m ng M x N ph n t . Đ truy xu t dòng i c t j Truy Truy xu t ph n t [ i * N + j ]. Nh p môn l p trình - Nguy n Minh Huy 5
  6. M ng nhi u chi u Gi Gi i pháp 2: Dùng Dùng m ng c a m ng. ng. T khóa typedef: khóa Đ t tên khác cho ki u d li u. u. Cú pháp: Cú pháp: typedef ; u> khác> typedef int SoNguyen; typedef float MangThuc[10]; MangThuc SoNguyen a, b, c; MangThuc m; printf(“%d printf(“%d %d %d”, a, b, c); m[5] = 123; Nh p môn l p trình - Nguy n Minh Huy 6
  7. M ng nhi u chi u Gi Gi i pháp 2: Bi Bi u di n ma tr n M x N: Đ t tên cho m ng N ph n t . ph Khai Khai báo m ng M ph n t ki u đã đ t tên. tên. Đ truy xu t dòng i c t j Truy Truy xu t ph n t [ i ] [ j ]. Nh p môn l p trình - Nguy n Minh Huy 7
  8. M ng nhi u chi u Gi Gi i pháp 3: Dùng Dùng m ng nhi u chi u. u. Khai Khai báo: [] []; u> ng>[ dòng> t> , ph i là m t h ng s . dòng>, int m1[5][10]; // Ma tr n 5 x 10 s nguyên. nguyên. int m2[M][N]; // Sai. Sai. Truy Truy xu t ph n t : [ ] [ ] dòng : m t s nguyên t 0 đ n - 1. dòng>: dòng> : m t s nguyên t 0 đ n - 1. t>: t> m1[0][2] = 5; m1[1][3] = 6; 6; m1[-1][10] = 7; 7; // Sai. Sai. Nh p môn l p trình - Nguy n Minh Huy 8
  9. M ng nhi u chi u Gi Gi i pháp 3: Dùng Dùng m ng nhi u chi u. u. Kh Kh i t o: [] [] = u> ng>[ dòng> t> { , , }; // Kh i t o t t c ph n t . Kh ph // Kh i t o vài ph n t . Kh // T đ ng bi t s dòng. dòng int m1[3][5] = int m1[3][5] = int m1[ ][5] = { { { { 1, 1, 1, 1, 1 }, { 1, 1 }, { 1, 1 }, { 1, 2, 3, 4, 5 }, { 1, 2, 3 }, { 1, 2, 3 }, { 5, 4, 3, 2, 1 } {0} {0} }; }; }; Nh p môn l p trình - Nguy n Minh Huy 9
  10. Khái Khái ni m m ng Gi Gi i pháp 3: Dùng Dùng m ng nhi u chi u. u. Truy Truy n tham s m ng: Khai Khai báo tham s m ng gi ng bi n m ng. ng. void foo( int a[5][10] ); foo( int Khai Khai báo tham s m ng có th b s dòng. dòng. void foo( int a[ ][10] ); foo( int Ph Ph n t m ng có th b thay đ i sau khi ra kh i hàm. hàm. void main() void foo( int a[ ][10] ) foo int ][10] { { int a[5][10] = { { 0 } }; a[2][2] a[2][2] = 9; a[2][5] a[2][5] = 8; foo(a); foo(a); } // a[2][2], a[2][5] b thay đ i. a[2][2], a[2][5] i. } Nh p môn l p trình - Nguy n Minh Huy 10
  11. N i dung M ng nhi u chi u. u. Ki Ki u c u trúc. trúc. Nh p môn l p trình - Nguy n Minh Huy 11
  12. Ki Ki u c u trúc Xét Xét chương trình sau: sau: Thông Thông tin m t h c sinh g m: m: H tên. Ngày sinh. Ngày sinh. Gi tính. Gi i tính. Đi Đi m văn, toán, ngo i ng . văn, toán, Vi Vi t chương trình: trình: Nh Nh p vào 1 h c sinh. sinh. Xu Xu t thông tin h c sinh v a nh p. Nh p môn l p trình - Nguy n Minh Huy 12
  13. Ki Ki u c u trúc Ki Ki u c u trúc trong C: Ki Ki u d li u ph c h p.p. Gom Gom nhóm d li u v i nhau. li Khai Khai báo ki u c u trúc: trúc: struct struct HocSinh { struct trúc> char hoten[50]; hoten[50]; { char ngaysinh[11]; ngaysinh[11]; ; bool gioitinh; gioitinh; ; float diemvan; diemvan; float diemtoan; diemtoan }; }; }; Khai Khai báo bi n c u trúc: trúc: void main() ; trúc> n>; { HocSinh hs1, hs2; } Nh p môn l p trình - Nguy n Minh Huy 13
  14. Ki Ki u c u trúc Ki Ki u c u trúc trong C: Kh Kh i t o bi n c u trúc: trúc: void void main() = { { HocSinh hs = , { , “Nguyen Van A”, “01/01/1997”, }; 1, Truy Truy xu t thành ph n: n: 7, 8, 9 }; . . hs.diemvan = 5; hs.diemToan = 9; } Nh p môn l p trình - Nguy n Minh Huy 14
  15. Ki Ki u c u trúc Ki Ki u c u trúc trong C: void cong1(HocSinh hs) cong1 { Truy Truy n tham s : hs.diemvan++; hs.diemvan++; hs.diemtoan++; Gi Gi ng các ki u bình thư ng. } Truy Truy n tham tr Giá Giá tr thành ph n không đ i.i. void cong2(HocSinh &hs) cong2 { Truy Truy n tham chi u hs.diemvan++; hs.diemvan++; Giá Giá tr thành ph n thay đ i. i. hs.diemtoan++; hs.diemtoan++; } void main() main { HocSinh hs1; cong1(hs1); cong2(hs1); } Nh p môn l p trình - Nguy n Minh Huy 15
  16. Tóm Tóm t t M ng nhi u chi u: u: Gi Gi i pháp 1: m ng m t chi u. u. Gi Gi i pháp 2: m ng c a m ng. Gi Gi i pháp 3: m ng nhi u chi u th t s . Ki Ki u c u trúc: trúc: Ki Ki u d li u ph c h p.p. Gom Gom nhóm d li u v i nhau. nhau. Khai Khai báo: t khóa “struct”. Truy Truy xu t ph n t : d u “.”. Nh p môn l p trình - Nguy n Minh Huy 16
  17. Bài Bài t p Bài Bài t p 8.1: Vi t chương trình C: - Nh p vào ma tr n s nguyên M x N. tr nguyên - Hãy cho bi t: t: a) T ng ph n t n m trên đư ng chéo chính/ph . chính/ b) Dòng có t ng l n nh t, nh nh t. t, t. c) Ma tr n M x N có là m t ma phương hay không. không. Nh p môn l p trình - Nguy n Minh Huy 17
  18. Bài Bài t p Bài Bài t p 8.2: Vi t chương trình C: - Nh p vào 2 ma tr n s nguyên M1 x N1 và M2 x N2. tr nguyên và - Hãy: Hãy: a) Tính tích 2 ma tr n v a nh p. p. b) Trích ra danh sách các s xu t hi n c 2 ma tr n. n. Nh p môn l p trình - Nguy n Minh Huy 18
  19. Bài Bài t p Bài Bài t p 8.3: Vi t chương trình C: - Khai báo ki u c u trúc phân s . - Nh p vào 2 phân s . - Tính và xu t k t qu t ng, hi u, tích, thương, ngh ch đ o, rút g n ng, u, tích, thương, o, c a 2 phân s v a nh p. p. Nh p môn l p trình - Nguy n Minh Huy 19
  20. Bài Bài t p Bài Bài t p 8.4: Vi t chương trình C: - Khai báo ki u c u trúc đơn th c. - Nh p vào 2 đơn th c (có d ng axn). - Tính và xu t k t qu tích, thương, đ o hàm, nguyên hàm c a hai tích, thương, hàm, đơn th c v a nh p. p. Nh p môn l p trình - Nguy n Minh Huy 20
nguon tai.lieu . vn