Bài giảng kỹ thuật lập trình bài 8 phạm đình sắc

17 137 0
Bài giảng kỹ thuật lập trình  bài 8   phạm đình sắc

Đ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

Trường Cao đẳng Kỹ thuật Công nghệ Đồng Nai Khoa Cơng nghệ thơng tin NHẬP MƠN LẬP TRÌNH Phạm Đình Sắc dinhsac@gmail.com 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 … n-1 0 … n-1 … … n-1 n-1 n-1 dòng = cột dòng > cột dòng < cột 0 … n-1 … n-1 … … n-1 n-1 n-1 dòng + cột = n-1 dòng + cột > n-1 … n-1 … An … 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 10 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 11 Một số tốn Viết chương trình thực yêu cầu sau  Nhập mảng  Xuất mảng  Tìm kiếm phần tử mảng  Kiểm tra tính chất mảng  Tính tổng phần tử dịng/cột/tồn ma trận/đường chéo chính/nửa trên/nửa  Tìm giá trị nhỏ nhất/lớn mảng … NMLT - Mảng hai chiều 12 VC VC && BB BB Một số quy ước Kiểu liệu #define MAXD 50 #define MAXC 100 Các chương trình  Hàm void HoanVi(int x, int y): hoán vị giá trị hai số nguyên  Hàm int LaSNT(int n): kiểm tra số có phải số nguyên tố Trả n số nguyên tố, ngược lại trả NMLT - Mảng hai chiều VC VC && BB BB 13 Thủ tục HoanVi & Hàm LaSNT NMLT - Mảng hai chiều 14 VC VC && Nhập Ma Trận BB BB Yêu cầu  Cho phép nhập mảng a, m dòng, n cột Ý tưởng  Cho trước mảng chiều có dịng tối đa MAXD, số cột tối đa MAXC  Nhập số lượng phần tử thực m, n chiều  Nhập phần tử từ [0][0] đến [m-1][n-1] NMLT - Mảng hai chiều VC VC && BB BB 15 Hàm Nhập Ma Trận void NhapMaTran(int a[][MAXC], int &m, int &n) { printf(“Nhap so dong, so cot cua ma tran: ”); scanf(“%d%d”, &m, &n); int i, j; for (i=0; i

Ngày đăng: 03/12/2015, 20:50

Tài liệu cùng người dùng

Tài liệu liên quan