C05-Kieu du lieu mang

56 144 0
C05-Kieu du lieu mang

Đ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

Chương KIỂU DỮ LIỆU MẢNG Hà Nội – 2014 Nội dung 12/12/17 Mảng chiều Mảng nhiều chiều Chương 5- Kiểu liệu mảng 2/56 5.1 Mảng chiều 12/12/17 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 Chương 5- Kiểu liệu mảng 3/56 Đặt vấn đề  Ví dụ  Chương trình cần lưu trữ số nguyên? => Khai báo biến int a1, a2, a3;  Chương trình cần lưu trữ 100 số nguyên? => Khai báo 100 biến kiểu số nguyên!  Người dùng muốn nhập n số nguyên? => Không thực được!  Giải pháp  12/12/17 Kiểu liệu cho phép lưu trữ dãy số nguyên dễ dàng truy xuất Chương 5- Kiểu liệu mảng 4/56 5.1.1 Khái niệm  12/12/17 Khái niệm  Là kiểu liệu có cấu trúc người lập trình định nghĩa  Biểu diễn dãy biến có kiểu Ví dụ: dãy số nguyên, dãy ký tự…  Kích thước xác định khai báo không thay đổi  C định khối nhớ liên tục cho biến kiểu mảng Chương 5- Kiểu liệu mảng 5/56 5.1.2 Khai báo  Khai báo tường minh []; [][]…[];   12/12/17 , …, : số lượng phần tử chiều Lưu ý  Phải xác định cụ thể (hằng) khai báo  Mảng nhiều chiều: = N1*N2*…*Nn  Bộ nhớ sử dụng = *sizeof()  Một dãy liên tục có số từ đến -1 Chương 5- Kiểu liệu mảng 6/56 Khai báo tường minh (tt)  Ví dụ int Mang1Chieu[10]; 9 Mang1Chieu int Mang2Chieu[3][4]; Mang2Chieu 12/12/17 Chương 5- Kiểu liệu mảng 7/56 10 11 Khai báo không tường minh  Cú pháp  Không tường minh (thông qua khai báo kiểu) typedef []; typedef []…[]; ;  Ví dụ typedef int Mang1Chieu[10]; typedef int Mang2Chieu[3][4]; Mang1Chieu m1, m2, m3; Mang2Chieu m4, m5; 12/12/17 Chương 5- Kiểu liệu mảng 8/56 Số phần tử mảng  Phải xác định cụ thể số phần tử lúc khai báo, không sử dụng biến thường int n1 = 10; int a[n1]; const int n2 = 20; int b[n2];  Nên sử dụng thị tiền xử lý #define để định nghĩa số phần tử mảng #define n1 10 #define n2 20 int a[n1]; //  int a[10]; int b[n1][n2]; //  int b[10][20]; 12/12/17 Chương 5- Kiểu liệu mảng 9/56 Khởi tạo giá trị cho mảng lúc khai báo  Gồm cách sau  Khởi tạo giá trị cho phần tử mảng int a[4] = {2912, 1706, 1506, 1904}; a  2912 1706 1506 1904 Khởi tạo giá trị cho số phần tử đầu mảng int a[4] = {2912, 1706}; a 12/12/17 2912 1706 0 Chương 5- Kiểu liệu mảng 10/56 5.2.3 Truy xuất đến phần tử  Thông qua số [][]  Ví dụ  Cho mảng chiều sau: 1 int a[3][4];  12/12/17 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] Chương 5- Kiểu liệu mảng 42/56 Gán giá trị cho 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ử = ; //sai [][chỉ số 2]=;  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]; 12/12/17 Chương 5- Kiểu liệu mảng 43/56 5.2.4 Một số toán       12/12/17 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ìm giá trị nhỏ nhất/lớn mảng … Chương 5- Kiểu liệu mảng 44/56 Nhập mảng chiều  Yêu cầu   Nhập vào từ bàn phím mảng a gồm m dòng, n cột Ý tưởng  Khai báo mảng chiều có dòng tối đa MAXD, số cột tối đa MAXC (dùng #define để định nghĩa) 12/12/17  Nhập số dòng m số cột n thực mảng  Nhập phần tử từ [0][0] đến [m-1][n-1] Chương 5- Kiểu liệu mảng 45/56 Nhập mảng chiều  Đoạn chương trình nhập vào từ bàn phím mảng chiều a gồm m dòng, n cột #define MAXD 100 #define MAXC 100 int a[MAXD][MAXC]; int main() { printf(“Nhap so dong, so cot cua ma tran: ”); scanf(“%d%d”, &m, &n); int i, j; for (i=0; i

Ngày đăng: 09/12/2017, 02:54

Mục lục

  • Khai báo tường minh (tt)

  • Khai báo không tường minh

  • Số phần tử của mảng

  • Khởi tạo giá trị cho mảng lúc khai báo

  • Khởi tạo giá trị cho mảng lúc khai báo

  • 5.1.3 Truy xuất đến một phần tử

  • Gán dữ liệu kiểu mảng

  • Một số lỗi thường gặp

  • 5.1.4 Một số bài toán trên mảng 1 chiều

  • Hàm có mảng là tham số

  • Truyền tham số mảng cho hàm (sử dụng)

  • Tìm kiếm một phần tử trong mảng

  • Tìm giá trị lớn nhất của mảng

  • Hàm tìm giá trị lớn nhất của mảng

  • Sắp xếp mảng theo thứ tự tăng dần

  • Hàm sắp xếp mảng theo thứ tự tăng dần

  • Thêm một phần tử vào mảng

  • Hàm thêm một phần tử vào mảng

  • Xóa một phần tử trong mảng

  • Hàm xóa một phần tử trong mảng

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

Tài liệu liên quan