Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
1,92 MB
Nội dung
Trường Đại học Khoa học Tự nhiên Khoa Công nghệ thơng tin Bộ mơn Tin học sở NHẬP MƠN LẬP TRÌNH Đặng Bình Phương dbphuong@fit.hcmuns.edu.vn MẢNG HAI CHIỀU 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 … n-1 … … … 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 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 Tìm kiếm phần tử Ma Trận 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