intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình C nâng cao‎: Chương 1 - Trần Minh Thái

Chia sẻ: Năm Tháng Tĩnh Lặng | Ngày: | Loại File: PPTX | Số trang:25

124
lượt xem
15
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình C nâng cao‎: Chương 1 - Trần Minh Thái

  1. 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
  2. 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
  3. 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];
  4. 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};
  5. 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
  6. 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ử
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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=n­1 • a[5] = a[4] • a[4] = a[3] a[i+1]=a[i] i=k • a[3] = 111 a[k]=x
  12. 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
  13. 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++; }
  14. 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
  15. Bài tập áp dụng #15 int TimVTMin(int a[], int n) { int vtmin=0; for(int i=1; i
  16. 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); }
  17. 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
  18. 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
  19. 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=n­2 • a[3] = a[4] • a[4] = a[5] a[i]=a[i+1] i=k
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2