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’)