Trang chủ Lớp 11 Tin học lớp 11 SGK Tin học 11 - Kết nối tri thức Luyện tập Bài 20 (trang 94) Tin học 11: Chỉnh sửa lại...

Luyện tập Bài 20 (trang 94) Tin học 11: Chỉnh sửa lại chương trình của Nhiệm vụ 3 để cho phép chương trình có thể tìm kiếm điểm số trên danh sách điểm số được sắp xếp theo thứ

Giải Luyện tập Bài 20. Thực hành bài toán tìm kiếm (trang 94) – SGK Tin học 11 Kết nối tri thức. Gợi ý: Dựa vào hướng dẫn của Nhiệm vụ 3 trang 97.

Câu hỏi/Đề bài:

Chỉnh sửa lại chương trình của Nhiệm vụ 3 để cho phép chương trình có thể tìm kiếm điểm số trên danh sách điểm số được sắp xếp theo thứ tự giảm dần.

Lời giải:

Def BinrySearch(A,K):

     left=0

     right=len(A)-1

     while left<=right:

         mid=(left+right)//2

         if A[mid]==K:

          return mid

         elif A[mid]<K:

          left=mid-1

         else:

          right=mid+1

     return -1

input_file=open(“diemthi_sx.inp”)

ds_diem=[]

for line in input_file.readlines():

     ds_diem.append(float(line))

input_file.close():

diem=float(input(‘nhập điểm số cần kiểm tra:’))

vitri=BanirySearch(ds_diem,diem)

if vitri==-1:

     print(‘không tồn tại điểm số cần tìm trong danh sách’)

else:

     print(‘điểm cần tìm nằm ở hàng thứ’,vitri,’trong danh sách’)