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

Bài giảng Tin học cơ sở 4 - Bài 6: Các thao tác với mảng

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:31

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

Bài giảng Tin học cơ sở 4 - Bài 6: Các thao tác với mảng, cung cấp cho người học những kiến thức như: Tìm kiếm, sửa các phần tử; Chèn, xóa một, nhiều phần tử; Sắp xếp; Mảng 2 chiều. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tin học cơ sở 4 - Bài 6: Các thao tác với mảng

  1. Tin học cơ sở 4 Buổi 6. Các thao tác với mảng Bộ môn Khoa học máy tính - 2017
  2. Nội dung buổi học 1. Tìm kiếm, sửa các phần tử 2. Chèn, xóa một, nhiều phần tử 3. Sắp xếp 4. Mảng 2 chiều 2
  3. Quản lý dữ liệu  Nảy sinh nhu cầu khi có nhiều dữ liệu  Tìm kiếm (search)  Sửa, cập nhật (update)  Chèn thêm, xóa đi (insert, delete)  Sắp xếp (sort) 3
  4. Tìm kiếm  Tìm phần tử thỏa mãn điều kiện 4  Tìm các số lớn hơn 4 7  Tìm vị trí các số nguyên tố  Đếm số lượng số chẵn 0  … 6 8 1 4
  5. Tìm kiếm  Đoạn mã tìm kiếm mẫu 4 for (int i = 0; i < n; i++) { 7 if ( isConditionSatisfied(a[i]) ) { 0 // đoạn mã xử lý khi 6 // a[i] thỏa mãn điều kiện ... 8 } 1 } 5
  6. CT1. Tìm các số lớn hơn 4 4 for (int i = 0; i < n; i++) { 7 if ( a[i] > 4 ) { cout
  7. CT2. Tìm các số nguyên tố for (int i = 0; i < n; i++) { if ( isPrime(a[i]) ) { 4 cout
  8. CT3. Đếm số lượng số chẵn 4 int count = 0; 7 for (int i = 0; i < n; i++) { if (a[i] % 2 == 0) 0 count++; 6 } cout
  9. Sửa, cập nhật phần tử  Cập nhật phần tử 4  Khi phần tử thỏa mãn điều kiện 7  Bằng hàm, công thức tính từ các phần tử khác 0 … 6 8 1 9
  10. Sửa, cập nhật các phần tử  Đoạn mã cập nhật mẫu 4 for (int i = 0; i < n; i++) { 7 if ( isConditionSatisfied(a[i]) ) { 0 // đoạn mã cập nhật khi 6 // a[i] thỏa mãn điều kiện ... 8 } 1 } 10
  11. CT4. Sửa các số lớn hơn 4 thành 4 4 for (int i = 0; i < n; i++) { 7 if ( a[i] > 4 ) { a[i] = 4; 0 } 6 } 8 1 11
  12. CT4. Sửa các số lớn hơn 4 thành 4 4 for (int i = 0; i < n; i++) { 4 if ( a[i] > 4 ) { a[i] = 4; 0 } 4 } 4 1 12
  13. CT5. Sửa các số thành tổng của nó và phần tử phía trước 4 for (int i = 0; i < n; i++) { 7 a[i] += a[i-1]; (i > 0 ? a[i-1] : 0); } 0 6 Chỉ số không Biểu thức lựa 8 hợp lệ khi i =chọn 0 ?: 1 13
  14. CT5. Sửa các số thành tổng của nó và phần tử phía trước 4 for (int i = 0; i < n; i++) { 11 a[i] += (i > 0 ? a[i-1] : 0); } 11 17 25 26 Do vòng lặp for: các phần tử bị sửa trước khi cộng 14
  15. CT5. Sửa các số thành tổng của nó và phần tử phía trước  Kỹ thuật lặp ngược lại 4 for (int i = n-1; i >= 0; i--) { 7 a[i] += (i > 0 ? a[i-1] : 0); } 0 6 Luôn cộng các phần tử 8 chưa bị sửa 1 15
  16. CT5. Sửa các số thành tổng của nó và phần tử phía trước  Kỹ thuật lặp ngược lại 4 for (int i = n-1; i >= 0; i--) { 11 a[i] += (i > 0 ? a[i-1] : 0); } 7 6 Luôn cộng các phần tử 14 chưa bị sửa 9 16
  17. CT6. Sửa các số thành tổng hai phần tử bên cạnh  Kỹ thuật lưu phần tử trước khi thao tác int prev = 0; for (int i = 0; i < n; i++) { int realPrev = prev; prev = a[i]; a[i] = (i > 0 ? realPrev : 0) + (i < n-1 ? a[i+1] : 0); } Lưu trữ a[i-1] 17
  18. Chèn thêm phần tử 1. Đẩy các phần tử sang phải 2. Đưa phần tử cần chèn vào chỗ trống 9 4 7 0 4 7 0 4 7 0 4 7 0 4 7 0 9 4 7 0 18
  19. Chèn thêm phần tử int insert(int arr[], int n, int pos, int value) { for (int i = n; i > pos; i--) { arr[i] = arr[i-1]; for ngược } arr[pos] = value; return n+1; Trả về số phần tử mới } 9 4 7 0 4 7 0 4 7 0 4 7 0 4 7 0 9 4 7 0 19
  20. Chèn mảng vào mảng 1. Đẩy các phần tử sang phải cho đủ chỗ 2. Đưa phần tử cần chèn vào chỗ trống 9 5 4 7 0 4 7 0 4 7 0 4 7 0 4 7 0 9 5 4 7 0 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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