Tài liệu Bài giảng Lập trình C - Chương 3: Mảng 1 chiều nâng cao: 1 
CHƢƠNG 2 
MẢNG 1 CHIỀU NÂNG CAO 
Mảng 1 chiều 
 Mảng thực chất là một biến đƣợc cấp phát bộ nhớ liên 
tục và bao gồm nhiều biến thành phần. 
 Các thành phần của mảng là tập hợp các biến có cùng 
kiểu dƣ̃ liệu và cùng tên. Do đó để truy xuất các biến 
thành phần, ta dùng cơ chế chỉ mục theo dạng: tên 
mảng [chỉ số] 
 Mảng có n phần tử thì chỉ số tính từ 0 đến n-1 
2 
Giá trị 15 6 7 11 9 3 8 10 25 
Chỉ số 0 1 2 3 4 5 6 7 8 
Khai báo mảng 
Cách 1: Con trỏ hằng 
 Cú pháp: 
 [] ; 
 Ví dụ: 
 int a[100]; //Khai bao mang so nguyen a gom 100 phan tu 
 float b[50]; //Khai bao mang so thuc b gom 50 phan tu 
 Khởi gán giá trị ban đầu cho mảng: 
 [] = {Giá trị}; 
 Ví dụ: int a[5] = {11}; 
3 
Giá trị 11 11 11 11 11 
Chỉ số 0 1 2 3 4 
Khai báo mảng 
Cách 2: Con trỏ 
 Ý nghĩa: Khi ta khai báo một mảng với kiểu dữ liệu bất kì (int, 
float, char,) thì tên của mảng thực chất là một hằng địa c...
                
              
                                            
                                
            
 
            
                 12 trang
12 trang | 
Chia sẻ: honghanh66 | Lượt xem: 959 | Lượt tải: 0 
              
            Bạn đang xem nội dung tài liệu Bài giảng Lập trình C - Chương 3: Mảng 1 chiều nâng cao, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1 
CHƢƠNG 2 
MẢNG 1 CHIỀU NÂNG CAO 
Mảng 1 chiều 
 Mảng thực chất là một biến đƣợc cấp phát bộ nhớ liên 
tục và bao gồm nhiều biến thành phần. 
 Các thành phần của mảng là tập hợp các biến có cùng 
kiểu dƣ̃ liệu và cùng tên. Do đó để truy xuất các biến 
thành phần, ta dùng cơ chế chỉ mục theo dạng: tên 
mảng [chỉ số] 
 Mảng có n phần tử thì chỉ số tính từ 0 đến n-1 
2 
Giá trị 15 6 7 11 9 3 8 10 25 
Chỉ số 0 1 2 3 4 5 6 7 8 
Khai báo mảng 
Cách 1: Con trỏ hằng 
 Cú pháp: 
 [] ; 
 Ví dụ: 
 int a[100]; //Khai bao mang so nguyen a gom 100 phan tu 
 float b[50]; //Khai bao mang so thuc b gom 50 phan tu 
 Khởi gán giá trị ban đầu cho mảng: 
 [] = {Giá trị}; 
 Ví dụ: int a[5] = {11}; 
3 
Giá trị 11 11 11 11 11 
Chỉ số 0 1 2 3 4 
Khai báo mảng 
Cách 2: Con trỏ 
 Ý nghĩa: Khi ta khai báo một mảng với kiểu dữ liệu bất kì (int, 
float, char,) thì tên của mảng thực chất là một hằng địa chỉ 
của phần tử đầu tiên. 
 Cú pháp: 
 *; 
 Ví dụ : 
 int *p; // khai bao con tro p 
 int b[100]; 
 p = new int [100]; 
 p = b; // p tro vao phan tu 0 cua mang b 
 Với cách viết nhƣ trên thì ta có thể hiểu các cách viết sau là 
tƣơng đƣơng : p[i]  *(p + i)  b[i]  *(b+i) 
 Cấp phát bộ nhớ: new 
 Giải phóng bộ nhớ: delete 
4 
Các thao tác 
 Nhập / xuất 
 Tìm kiếm 
 Sắp xếp 
 Kiểm tra 
 Đếm 
 Thêm / xóa 
 Tính tổng, giá trị trung bình,  
5 
Bài tập ứng dụng 
1. Nhập vào ngày tháng năm, kiểm tra xem ngày tháng 
năm có hợp lệ không 
2. Phát sinh 2 mảng số nguyên tăng dần: a và b, nối 
thành mảng c sao cho c cũng tăng dần 
3. Thống kê số lƣợng các phần tử có trong mảng số 
nguyên có 10.000 phần tử (các phần tử trong mảng 
đƣợc phát sinh ngẫu nhiên có giá trị từ 0 đến 30.000) 
4. Cho biết phần tử nào xuất hiện nhiều nhất trong 
mảng số nguyên có 10.000 phần tử (các phần tử 
trong mảng đƣợc phát sinh ngẫu nhiên có giá trị từ 0 
đến 30.000) 
6 
Chèn phần tử vào mảng 
 Cho mảng sau: 
 Hãy trình bày từng bƣớc chèn 111 vào vị trí 3 của 
mảng 
7 
12 5 7 9 21 38 
0 1 2 3 4 5 
12 5 7 
0 1 2 3 4 5 
38 21 9 
111 
Chèn phần tử vào mảng 
Hãy viết hàm chèn phần tử có giá trị x vào vị trí k cho 
trƣớc trong mảng a kích thƣớc n theo mẫu sau: 
 void ChenX(int a[], int &n, int x, int k); 
8 
Bài tập áp dụng 
Hãy viết hàm chèn phần tử có giá trị x vào sau phần tử 
có giá trị nhỏ nhất có trong mảng a, kích thƣớc n (giả sử 
mảng không có giá trị trùng nhau) 
9 
Xóa phần tử khỏi mảng 
 Cho mảng sau: 
 Hãy trình bày từng bƣớc xóa phần tử tại vị trí 3 trong 
mảng 
10 
12 5 7 9 21 38 
0 1 2 3 4 5 
12 5 7 9 
0 1 2 3 4 5 
21 38 
Xóa phần tử khỏi mảng 
Hãy viết hàm xóa phần tử tại vị trí k cho trƣớc trong 
mảng a kích thƣớc n theo mẫu sau: 
 void XoaTaiVTk(int a[], int &n, int k); 
11 
Bài tập áp dụng 
Hãy viết hàm xóa phần tử x (nếu có) trong mảng a, kích 
thƣớc n (giả sử mảng không có giá trị trùng nhau) 
12 
            Các file đính kèm theo tài liệu này:
 chuong_3_mang_1_chieu_nang_cao_7383.pdf chuong_3_mang_1_chieu_nang_cao_7383.pdf