Xem mẫu

  1. Bài 9 – Mảng hai chiều (Ma  trận)  Khái niệm mảng hai chiều  Khai báo mảng  Nhập/xuất mảng  Các bài toán về mảng hai chiều  Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 1
  2. 1. Khái niệm mảng hai chiều  Mảng hai chiều là một công cụ cho  phép tổ chức quản lý dữ liệu dưới dạng  “bảng”  Ví dụ: Xét bảng sau đây: 4 1 7 6 8 A[1][3] 2 3 2 5 1 (hàng 1, cột 3) 1 0 5 0 9 Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 2
  3. Các phần tử của mảng  Mảng hai chiều bao gồm nhiều phần tử,  mỗi phần tử được đặc trưng bởi hai yếu  tố: Giá trị của phần tử và vị trí của phần  tử trong mảng  Một phần tử bất kỳ của mảng thường  được kí hiệu là A[i][ j], trong đó: + A là tên mảng + i là vị trí hàng + j là vị trí cột Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 3
  4. 2. Khai báo mảng  Muốn sử dụng mảng hai chiều trong  chương trình thì phải khai báo nó  Khai báo mảng thực chất là sự khai báo  đồng thời nhiều biến có cùng kiểu dữ liệu  Có nhiều cách khai báo khác nhau Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 4
  5. Các cách khai báo mảng hai chiều:  Cách 1: KiểuDL  TênMảng[Số hàng tối đa][Số cột tối đa]; Ví dụ 1: int  A[50][40];       Mảng này có tối đa 50 hàng x 40 cột = 2000  phần tử, mỗi phần tử là một số nguyên Khai báo trên sẽ tạo ra 2000 biến nguyên:  A[0][0], A[0][1], ... , A[49][0], ... , A[49] [39] Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 5
  6. Ví dụ 2: char  B[30][40];       Mảng này có tối đa 30 hàng x 40 cột =  1200 phần tử, mỗi phần tử là một số nguyên Khai báo trên sẽ tạo ra 1200 biến kí tự:  B[0][0], B[0][1], ... , B[29][0], ... , B[29] [39] Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 6
  7.  Cách 2: vector    B(40); vector     A(50, B); Tương đương với:  int  A[50][40]; Chú ý: Muốn sử dụng cách khai báo này thì phải  viết dòng sau đây ở đầu chương trình: #include   Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 7
  8. 3. Nhập/xuất mảng  Nhập dữ liệu cho mảng hai chiều: Cần sử dụng hai vòng lặp lồng nhau. Ví dụ 1: Nhập một mảng số nguyên có 3 hàng, 4 cột.       Cần lặp 3 x 4 lần! Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 8
  9. Các lệnh nhập: int  A[3][4];  for (int i = 0; i 
  10. Các lệnh xuất (hiển thị):   Ví dụ 2: Hiện mảng vừa nhập (3 hàng, 4 cột) ra màn hình.    cout 
  11. Chương trình: #include  using namespace std; main()  {int  A[3][4];     for (int i = 0; i 
  12. #include  Cách 2: #include  using namespace std; main()  {vector    B(4);    vector     A(3, B);    for (int i = 0; i 
  13. Bài tập:  Nhập một ma trận số thực có M hàng và  N cột (M, N là các giá trị bất kỳ nhập từ  bàn phím). Hiện ma trận vừa nhập ra màn hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 13
  14. Nội dung chương trình: #include  using namespace std; main() { float  A[50][60];     int M, N ;    cout  M ;    cout  N ;    //Nhập ma trận:    ...    //Hiện ma trận:    ... Bộ môn Kỹ thuật máy tính – Khoa   } CNTT Tin học đại cương 2 ­ 14
  15. 4. Các bài toán về mảng hai  chiều   Thao tác trên một hàng hoặc một cột của  ma trận        Tương tự như bài toán về dãy  Thao tác trên toàn ma trận  Thao tác trên ma trận vuông ... Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 15
  16. Ví dụ 1:  Nhập một ma trận có M hàng và N cột từ  bàn phím (các phần tử là số thực). Hãy  tính tổng các phần tử trên hàng đầu tiên  của ma trận. Hiện tổng và hiện ma trận ra màn hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 16
  17. Bài tập:  Nhập một ma trận có M hàng và N cột từ  bàn phím (các phần tử là số thực). Hãy  tính tổng các phần tử dương trên cột cuối  cùng của ma trận. Hiện tổng và hiện ma trận ra màn hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 17
  18. Ví dụ 2:  Nhập một ma trận có M hàng và N cột từ  bàn phím (các phần tử là số thực). Hãy  tính tổng các phần tử dương của ma trận. Hiện tổng và hiện ma trận ra màn hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 18
  19. Bài tập:  Nhập một ma trận có M hàng và N cột từ  bàn phím (các phần tử là số nguyên). Hãy  đếm số lượng các phần tử chẵn của ma  trận. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 19
  20. Ví dụ 3:  Nhập một ma trận vuông có M hàng và M  cột từ bàn phím (các phần tử là số thực).  Hãy tính tổng các phần tử trên đường chéo  chính của ma trận. Hiện tổng và hiện ma trận ra màn hình. Bộ môn Kỹ thuật máy tính – Khoa  CNTT Tin học đại cương 2 ­ 20
nguon tai.lieu . vn