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Đặng TRÌNH 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 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 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