Giáo án ppt KHMT 11 kết nối: Bài 20 Thực hành bài toán tìm kiếm

Giáo án điện tử Tin học khoa học máy tính 11 kết nối tri thức: Bài 20 Thực hành bài toán tìm kiếm. Bài giảng được thiết kế hiện đại, sáng tạo, sinh động với đầy đủ nội dung, hình ảnh,… giúp học sinh có hứng thú học tập tiếp thu hiệu quả hơn. Giáo viên tải về có thể sử dụng luôn để giảng dạy.

Nội dung chi tiết

... Còn nữa ...

CHAgrave;O MỪNG CẢ LỚP QUAY TRỞ LẠI VỚI MOcirc;N HỌC!

KHỞI ĐỘNG

Trong bagrave;i học trước, caacute;c em đatilde; được học caacute;ch triển khai thuật toaacute;n tigrave;m kiếm tuần tự vagrave; tigrave;m kiếm nhị phacirc;n; vậy chuacute;ng ta coacute; thể aacute;p dụng caacute;c thuật toaacute;n tigrave;m kiếm đatilde; học vagrave;o thực tế như thế nagrave;o?

BAgrave;I 20: THỰC HAgrave;NH BAgrave;I TOAacute;N TIgrave;M KIẾM

NHIỆM VỤ THỰC HAgrave;NH

Đọc vagrave; ghi tệp trong Python

Viết chương trigrave;nh tra cứu điểm thi

Viết chương trigrave;nh kiểm tra điểm thi

01 ĐỌC VAgrave; GHI TỆP TRONG PYTHON

  1. a) Đối tượng tệp
  • Python cho pheacute;p đọc, ghi dữ liệu với tệp văn bản (text file).
  • Đối tượng tệp được tạo ra bằng lệnh open() với caacute;c caacute;ch như sau:

  • Lệnh mở tệp để đọc:

f = open(<file name>,"r",encoding= "UTF -8")

  • Lệnh mở tệp để ghi dữ liệu từ đầu:

f = open(<file name>,"w",encoding= "UTF=8")

  • Lệnh mở tệp để ghi tiếp dữ liệu:

f = open(<file name>,"a",encoding = "UTF-8")

  • Đoacute;ng đối tượng tệp bằng lệnh sau:

f.close()

  1. b) Caacute;c lệnh đọc dữ liệu từ tệp văn bản

Tigrave;m hiểu về caacute;c lệnh đọc dữ liệu từ tệp văn bản.

Viacute; dụ 1

Chương trigrave;nh becirc;n đọc dữ liệu từ tệp Data.inp:

  1. c) Ghi dữ liệu ra tệp văn bản
  • Việc ghi tệp dữ liệu ra tệp văn bản đơn giản nhất lagrave; sử dụng lệnh print(). Cuacute; phaacute;p lệnh print() như sau:

print(<v1>, <v2>, file = <đối tượng file>)

  • Yacute; nghĩa của một vagrave;i tham số trong lệnh đọc/ghi tệp dữ liệu:
    • 'r' lagrave; viết tắt của read
    • 'w' lagrave; viết tắt của write
    • 'a' lagrave; viết tắt của append

Hoạt động nhoacute;m đocirc;i, thực hiện caacute;c nhiệm vụ sau:

  • Thực hiện ghi dữ liệu vagrave;o tệp trecirc;n maacute;y tiacute;nh.
  • Thực hiện ghi tiếp dữ liệu vagrave;o tệp trecirc;n maacute;y tiacute;nh.
  • Thực hiện đọc dữ liệu từ tệp trecirc;n maacute;y tiacute;nh theo caacute;c caacute;ch khaacute;c nhau: đọc toagrave;n bộ caacute;c dograve;ng, đọc lần lượt từng dograve;ng.

02 VIẾT CHƯƠNG TRIgrave;NH TRA CỨU ĐIỂM THI

Hoạt động cặp đocirc;i

Viết chương trigrave;nh tra cứu điểm thi theo tecirc;n caacute;c học sinh trong lớp. Chương trigrave;nh cho pheacute;p người dugrave;ng nhập tecirc;n của học sinh cần tra cứu, sau đoacute; kiểm tra vagrave; thocirc;ng baacute;o điểm số của học sinh cần tigrave;m.

Gợi yacute;: Nhiệm vụ nagrave;y coacute; thể được thực hiện thocirc;ng qua thuật toaacute;n tigrave;m kiếm.

Lưu yacute;

  • Mỗi dograve;ng trong tệp dữ liệu bao gồm tecirc;n vagrave; điểm số, cần sử dụng lệnh split() để taacute;ch hai trường dữ liệu nagrave;y.
  • Dữ liệu điểm số được đọc dưới dạng 'string', nếu muốn sử dụng như kiểu dữ liệu dạng số, cần sử dụng hagrave;m (float) để chuyển đổi kiểu dữ liệu.

Chương trigrave;nh tham khảo:

03 VIẾT CHƯƠNG TRIgrave;NH KIỂM TRA ĐIỂM THI

Hoạt động cặp đocirc;i

Viết chương trigrave;nh kiểm tra điểm thi của caacute;c học sinh trong một lớp học. Điểm thi của học sinh được ghi trong tệp diemthi_sx.inp, trong đoacute; mỗi điểm thi của caacute;c học sinh được viết trong một hagrave;ng vagrave; được sắp xếp theo thứ tự tăng dần.

Chương trigrave;nh đọc dữ liệu điểm thi từ tệp, sau đoacute; cho pheacute;p người dugrave;ng nhập một điểm số cần kiểm tra. Nếu điểm số coacute; tồn tại thigrave; in ra vị triacute; magrave; điểm số đoacute; xuất hiện trong tệp, nếu điểm số khocirc;ng tồn tại thigrave; in ra thocirc;ng baacute;o điểm số khocirc;ng tồn tại. Viacute; dụ coacute; cấu truacute;c như Higrave;nh 20.2.

Chương trigrave;nh tham khảo:

LUYỆN TẬP

Chỉnh sửa lại chương trigrave;nh của Nhiệm vụ 3 để cho pheacute;p chương trigrave;nh coacute; thể tigrave;m kiếm điểm số trecirc;n danh saacute;ch điểm số được sắp xếp theo thứ tự giảm dần.

Phương aacute;n 1:

1 def BinarySearch(A,K):

2 left = 0

3 right = len(A) - 1

4 while left <= right:

5 mid = (left + right)//2

6 if A[mid] == K:

7 return mid

8 elif A[mid] > K:

9 left = mid + 1

10 else:

11 right = mid -1

12 return -1

Phương aacute;n 2:

1 def BinarySearch(A,K):

2 left = 0

3 right = len(A) - 1

4 while left <= right:

5 mid = (left + right)//2

6 if A[mid] == K:

7 return mid

8 elif A[mid] < K:

9 left = mid - 1

10 else:

11 right = mid + 1

12 return -1

VẬN DỤNG