1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nhập môn lập trình - Chương 8: Mảng hai chiều

32 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 1,96 MB

Nội dung

Sau khi đã tìm hiểu về mảng một chiều ở chương 7, trong chương 8 chúng ta sẽ tìm hiểu về mảng hai chiều. Trong chương này chúng ta sẽ biết thế nào là mảng 2 chiều, biết cách khai báo mảng 2 chiều và truy xuất dữ liệu kiểu mảng, tìm hiểu một số bài toán trên mảng 2 chiều. Mời tham khảo.

&& VC VC BB BB Nội dung Khái niệm Khai báo Truy xuất liệu kiểu mảng Một số toán mảng chiều NMLT - Mảng hai chiều && VC VC BB BB Ma Trận … n-1 0 m-1 An … … Am,n … n-1 n-1 NMLT - Mảng hai chiều && VC VC BB BB Ma Trận … n-1 0 … … n-1 n-1 dòng > cột … n-1 0 dòng < cột … n-1 0 … … … n-1 n-1 dòng + cột > n-1 … n-1 n-1 dòng + cột = n-1 … n-1 n-1 dòng = cột An … n-1 … An dòng + cột < n-1 NMLT - Mảng hai chiều && VC VC BB BB Khai báo kiểu mảng chiều  Cú pháp typedef [][];  N1, N2: số lượng phần tử chiều  Ví dụ typedef int MaTran[3][4]; Kiểu MaTran NMLT - Mảng hai chiều && VC VC BB BB Khai báo biến mảng chiều  Cú pháp  Tường minh [][];  Không tường minh (thông qua kiểu) typedef [][]; ; , ; NMLT - Mảng hai chiều && VC VC BB BB Khai báo biến mảng chiều  Ví dụ  Tường minh int a[10][20], b[10][20]; int c[5][10]; int d[10][20];  Không tường minh (thông qua kiểu) typedef int MaTran10x20[10][20]; typedef int MaTran5x10[5][10]; MaTran10x20 a, b; MaTran11x11 c; MaTran10x20 d; NMLT - Mảng hai chiều && VC VC BB BB Truy xuất đến phần tử  Thông qua số [][]  Ví dụ  Cho mảng chiều sau int a[3][4];  Các truy xuất • Hợp lệ: a[0][0], a[0][1], …, a[2][2], a[2][3] • Khơng hợp lệ: a[-1][0], a[2][4], a[3][3] NMLT - Mảng hai chiều && VC VC BB BB Gán liệu kiểu mảng  Không sử dụng phép gán thông thường mà phải gán trực tiếp phần tử  Ví dụ int a[5][10], b[5][10]; b = a; // Sai int i, j; for (i = 0; i < 5; i++) for (j = 0; j < 10; j++) b[i][j] = a[i][j]; NMLT - Mảng hai chiều && VC VC BB BB Truyền mảng cho hàm  Truyền mảng cho hàm  Tham số kiểu mảng khai báo hàm giống khai báo biến mảng void NhapMaTran(int a[50][100]);  Tham số kiểu mảng truyền cho hàm địa phần tử mảng • Có thể bỏ số lượng phần tử chiều thứ trỏ • Mảng thay đổi nội dung sau thực hàm void NhapMaTran(int a[][100]); void NhapMaTran(int (*a)[100]); NMLT - Mảng hai chiều && VC VC BB BB Truyền mảng cho hàm  Truyền mảng cho hàm  Số lượng phần tử thực truyền qua biến khác void XuatMaTran(int a[50][100], int m, int n); void XuatMaTran(int a[][100], int m, int n); void XuatMaTran(int (*a)[100], int m, int n);  Lời gọi hàm void NhapMaTran(int a[][100], int &m, int &n); void XuatMaTran(int a[][100], int m, int n); void main() { int a[50][100], m, n; NhapMaTran(a, m, n); XuatMaTran(a, m, n); } NMLT - Mảng hai chiều && VC VC BB BB Tìm kiếm phần tử Ma Trận  Yêu cầu  Tìm xem phần tử x có nằm ma trận a kích thước mxn hay không?  Ý tưởng  Duyệt phần ma trận a Nếu phần tử xét x trả có (1), ngược lại trả khơng có (0) NMLT - Mảng hai chiều && VC VC BB BB Hàm Tìm Kiếm int TimKiem(int a[][MAXC], int m, int n, int x) { int i, j; for (i=0; i

Ngày đăng: 08/05/2021, 19:10