Bài giảng Ngôn ngữ lập trình - Chương 6: Mảng 2 chiều

ppt
Số trang Bài giảng Ngôn ngữ lập trình - Chương 6: Mảng 2 chiều 32 Cỡ tệp Bài giảng Ngôn ngữ lập trình - Chương 6: Mảng 2 chiều 2 MB Lượt tải Bài giảng Ngôn ngữ lập trình - Chương 6: Mảng 2 chiều 1 Lượt đọc Bài giảng Ngôn ngữ lập trình - Chương 6: Mảng 2 chiều 14
Đánh giá Bài giảng Ngôn ngữ lập trình - Chương 6: Mảng 2 chiều
5 ( 12 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

&& VC VC BB BB Nội dung 1 Khái niệm 2 Khai báo 3 Truy xuất dữ liệu kiểu mảng 4 Một số bài toán trên mảng 2 chiều NMLT - Mảng hai chiều 1 && VC VC BB BB Ma Trận 0 1 … n-1 0 0 m-1 0 An … … Am,n … n-1 n-1 NMLT - Mảng hai chiều 2 && VC VC BB BB Ma Trận 0 … n-1 0 0 0 … … n-1 n-1 0 dòng > cột … n-1 0 0 dòng < cột … n-1 0 0 … … … n-1 n-1 dòng + cột > n-1 … n-1 0 n-1 dòng + cột = n-1 … n-1 0 n-1 dòng = cột An … n-1 … An 0 dòng + cột < n-1 NMLT - Mảng hai chiều 3 && VC VC BB BB Khai báo kiểu mảng 2 chiều  Cú pháp typedef [][];  N1, N2: số lượng phần tử mỗi chiều  Ví dụ typedef int MaTran[3][4]; 0 1 2 3 0 Kiểu MaTran 1 2 NMLT - Mảng hai chiều 4 && VC VC BB BB Khai báo biến mảng 2 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 5 && VC VC BB BB Khai báo biến mảng 2 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 6 && VC VC BB BB Truy xuất đến một phần tử  Thông qua chỉ số [][]  Ví dụ  Cho mảng 2 chiều như sau int a[3][4];  Các truy xuất 0 1 2 3 0 1 2 • 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 7 && VC VC BB BB Gán dữ liệu kiểu mảng  Không được sử dụng phép gán thông thường mà phải gán trực tiếp giữa các 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 8 && VC VC BB BB Truyền mảng cho hàm  Truyền mảng cho hàm  Tham số kiểu mảng trong khai báo hàm giống như khai báo biến mảng void NhapMaTran(int a[50][100]);  Tham số kiểu mảng truyền cho hàm chính là địa chỉ của phần tử đầu tiên của mảng • Có thể bỏ số lượng phần tử chiều thứ 2 hoặc con trỏ. • Mảng có thể thay đổi nội dung sau khi thực hiện hàm. void NhapMaTran(int a[][100]); void NhapMaTran(int (*a)[100]); NMLT - Mảng hai chiều 9 && 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 sự 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 1 0 && VC VC BB BB Một số bài toán cơ bản  Viết chương trình con thực hiện các yêu cầu sau  Nhập mảng  Xuất mảng  Tìm kiếm một phần tử trong mảng  Kiểm tra tính chất của mảng  Tính tổng các phần tử trên dòng/cột/toàn ma trận/đường chéo chính/nửa trên/nửa dưới  Tìm giá trị nhỏ nhất/lớn nhất của mảng … NMLT - Mảng hai chiều 1 1 && VC VC BB BB Một số quy ước  Kiểu dữ liệu #define MAXD 50 #define MAXC 100  Các chương trình con  Hàm void HoanVi(int x, int y): hoán vị giá trị của hai số nguyên.  Hàm int LaSNT(int n): kiểm tra một số có phải là số nguyên tố. Trả về 1 nếu n là số nguyên tố, ngược lại trả về 0. NMLT - Mảng hai chiều 1 2 && VC VC BB BB Thủ tục HoanVi & Hàm LaSNT void HoanVi(int &x, int &y){ int tam = x; x = y; y = tam; } bool LaSNT(int n){ int i=2; while(i j) tong = tong + a[i][j]; return tong; } NMLT - Mảng hai chiều 2 9 && VC VC BB BB Hàm tính tổng trên đường chéo phụ int TongDCPhu(int a[][MAXC], int n) { int i, tong; tong = 0; for (i=0; i max) max = a[i][j]; return max; } NMLT - Mảng hai chiều 3 2
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.