Bài giảng Lập trình C nâng cao: Chương 1 - Trần Minh Thái
lượt xem 15
download
Chương 1 của bài giảng Lập trình C nâng cao cung cấp cho người học những kiến thức về mảng một chiều. Chương này trình bày những nội dung sau: Khái quát các kỹ thuật cơ bản xử lý mảng, xoá phần tử trong mảng, chèn phần tử vào mảng,... Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình C nâng cao: Chương 1 - Trần Minh Thái
- Chương 1. Mảng một chiều (nc) TRẦN MINH THÁI Email: minhthai@itc.edu.vn Website: www.minhthai.edu.vn Cập nhật: 05 tháng 01 năm 2015
- Nội dung #2 • Khái quát các kỹ thuật cơ bản xử lý mảng • Xoá phần tử trong mảng • Chèn phần tử vào mảng • Bài tập
- Khái niệm mảng một chiều #3 • Tập các phần tử có cùng kiểu dữ liệu (KDL) được lưu trữ liên tiếp nhau • Các phần tử có chỉ số • Chỉ số của phần tử đầu tiên của mảng là 0 • Khai báo tên mảng [số phần tử tối đa]; VD: mảng số nguyên a có tối đa 100 phần tử int a[100];
- Khái niệm mảng một chiều #4 • Khởi tạo mảng tên mảng [] = {giá trị 1, giá trị 2, …}; hoặc tên mảng [số lượng] = {giá trị}; • VD1: Khởi tạo mảng gồm 5 giá trị riêng biệt int a[] = {10, 12, 20, 15, 34}; • VD2: Khởi tạo mảng gồm 10 phần đều có giá trị 30 int a[10] = {30};
- Khái niệm mảng một chiều #5 • Truy xuất mảng thông qua chỉ số tên mảng[chỉ số] • VD int a[] = {10, 12, 20, 15, 34}; int x = a[2]; // Giá trị x = 20 a[0] = 32; // Cập nhật phần tử tại vị trí 0 bằng 32
- Các thao tác trên mảng #6 • Nhập/ xuất • Xuất có điều kiện • Tìm kiếm • Tìm min/ max • Đếm số lượng thoả điều kiện • Tính tổng/ giá trị trung bình theo điều kiện cho trước • Sắp xếp • Chèn và xoá phần tử
- Các thao tác trên mảng #7 • Sử dụng vòng lặp để thực hiện các thao tác trên mảng • Cấu trúc lặp phổ biến: for(int i=0; i
- Các thao tác trên mảng #8 • VD: Xuất các phần tử có giá trị lẻ trong mảng số nguyên for(int i=0; i
- Chèn phần tử vào mảng #9 • Cho mảng sau: 12 5 7 9 21 38 0 1 2 3 4 5 • Hãy trình bày từng bước chèn 111 vào vị trí 3 của mảng 111 12 5 7 9 21 38 0 1 2 3 4 5 9
- Chèn phần tử vào mảng #10 12 5 7 9 21 38 Chèn 111 vào vị trí 3 của mảng 0 1 2 3 4 5 6 1. Di chuyển a[5] sang a[6]: a[6] = a[5] 12 5 7 9 21 38 0 1 2 3 4 5 6 2. Di chuyển a[4] sang a[5]: a[5] = a[4] 12 5 7 9 21 38 0 1 2 3 4 5 6 3. Di chuyển a[3] sang a[4]: a[4] = a[3] 12 5 7 9 21 38 0 1 2 3 4 5 6 4. Gán a[3] = 111 12 5 7 111 9 21 38 0 1 2 3 4 5 6
- Chèn phần tử vào mảng #11 Gọi k là vị trí cần chèn, n là kích thước mảng, x là giá trị cần chèn • a[6] = a[5] i=n1 • a[5] = a[4] • a[4] = a[3] a[i+1]=a[i] i=k • a[3] = 111 a[k]=x
- Chèn phần tử vào mảng #12 BT: 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); 12
- Chèn phần tử vào mảng #13 void ChenX(int a[], int &n, int x, int k) { for(int i=n-1; i>=k; i--) { a[i+1]=a[i]; } a[k]=x; n++; }
- Bài tập áp dụng #14 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) Gợi ý: 1. Viết hàm tìm vị trí phần tử có giá trị nhỏ nhất (min) 2. Viết hàm chèn x vào sau min (sử dụng hàm ChenX) 14
- Bài tập áp dụng #15 int TimVTMin(int a[], int n) { int vtmin=0; for(int i=1; i
- Bài tập áp dụng #16 void ChenXSauMin(int a[], int &n, int x) { int vtmin=TimVTMin(a, n); ChenX(a, n, x, vtmin+1); }
- Xóa phần tử khỏi mảng #17 • Cho mảng sau: 12 5 7 9 21 38 0 1 2 3 4 5 • Hãy trình bày từng bước xóa phần tử tại vị trí 3 trong mảng 12 5 7 9 21 38 0 1 2 3 4 5 17
- Xoá phần tử khỏi mảng #18 12 5 7 9 21 38 Xoá phần tử tại vị trí 3 0 1 2 3 4 5 1. Dời a[4] sang a[3]: a[3] = a[4] 12 5 7 21 38 0 1 2 3 4 5 2. Dời a[5] sang a[4]: a[4] = a[5] 12 5 7 21 38 0 1 2 3 4 5
- Xoá phần tử khỏi mảng #19 Gọi k là vị trí cần xoá, n là kích thước mảng i=n2 • a[3] = a[4] • a[4] = a[5] a[i]=a[i+1] i=k
- Xóa phần tử khỏi mảng #20 BT: 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); 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình C cơ bản - ThS. Trương Đình Tú
81 p | 280 | 87
-
Bài giảng Lập trình C# 2010: Chương 1 - ĐH Công nghệ Đồng Nai
42 p | 127 | 21
-
Bài giảng Lập trình C# 2010: Chương 2.3 - ĐH Công nghệ Đồng Nai
21 p | 96 | 19
-
Bài giảng Lập trình C nâng cao: Chương 5 - Trần Minh Thái
22 p | 144 | 18
-
Bài giảng Lập trình C# 2010: Chương 2.4 - ĐH Công nghệ Đồng Nai
16 p | 90 | 18
-
Bài giảng Lập trình C trên Windows - Nguyễn Đạt Thông
353 p | 105 | 17
-
Bài giảng Lập trình C# 2010: Chương 2.2 - ĐH Công nghệ Đồng Nai
57 p | 83 | 15
-
Bài giảng Lập trình C nâng cao - Chương 5: Lập trình tập tin
11 p | 120 | 12
-
Bài giảng Lập trình C nâng cao: Chương 2 - Trần Minh Thái
28 p | 81 | 10
-
Bài giảng Lập trình C nâng cao: Chương 4 - Trần Minh Thái
35 p | 82 | 10
-
Bài giảng Lập trình C nâng cao: Chương 3 - Trần Minh Thái
22 p | 89 | 9
-
Bài giảng Lập trình C nâng cao - Chương 2: Cấu trúc
9 p | 122 | 9
-
Bài giảng Lập trình C nâng cao - Chương 3: Lập trình đệ qui
10 p | 81 | 6
-
Bài giảng Lập trình C# 1 - Chương 3: Control
15 p | 57 | 4
-
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 1: Cấu trúc chung của chương trình C
8 p | 9 | 3
-
Bài giảng Lập trình nâng cao - Chương 0: Giới thiệu môn học, Warm up Game over
16 p | 5 | 1
-
Bài giảng Lập trình C cơ bản: Tuần 11
19 p | 5 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn