Giải SGK Tin học 11 KNTT Bài 20. Thực hành bài toán tìm kiếm có đáp án
30 người thi tuần này 4.6 367 lượt thi 2 câu hỏi
🔥 Đề thi HOT:
15 câu Trắc nghiệm Tin học 11 Cánh diều Tin học ứng dụng Nghề quản trị cơ sở dữ liệu có đáp án
15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 5: Truy vấn trong cơ sở dữ liệu quan hệ (tiếp theo) có đáp án
15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 5: Truy vấn trong cơ sở dữ liệu quan hệ có đáp án
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 27 có đáp án
15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 16 có đáp án
15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 4: Giới thiệu phần mềm làm video có đáp án
15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 4: Các biểu mẫu cho xem và cập nhập dữ liệu có đáp án
15 câu Trắc nghiệm Tin học 11 Cánh diều Bài 3: Quan hệ giữa các bảng và khóa ngoài trong cơ sở dữ liệu quan hệ có đáp án
Nội dung liên quan:
Danh sách câu hỏi:
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’)
Lời giải
1.Điểm được sắp xếp theo thứ tự ngẫu nhiên:
# Danh sách tên học sinh
class_names = ["Sơn", "Huyền", "Nam", "Hùng", "Hương", "Hà"]
# Danh sách điểm thi tương ứng
class_scores = [5.6, 7.4, 7.8, 8.4, 8.9, 9.5]
# Nhập khoảng điểm cần tra cứu
start_score = float(input("Nhập điểm bắt đầu của khoảng điểm: "))
end_score = float(input("Nhập điểm kết thúc của khoảng điểm: "))
# Kiểm tra và thông báo tên học sinh có điểm nằm trong khoảng tương ứng
found = False
for i in range(len(class_names)):
if class_scores[i] >= start_score and class_scores[i] <= end_score:
print("Học sinh", class_names[i], "có điểm là", class_scores[i])
found = True
if not found:
print("Không tìm thấy học sinh nào có điểm trong khoảng điểm đã nhập.")
2.Điểm được sắp xếp theo thứ tự tăng dần:
# Danh sách tên học sinh
class_names = ["Sơn", "Huyền", "Nam", "Hùng", "Hương", "Hà"]
# Danh sách điểm thi tương ứng (đã được sắp xếp theo thứ tự tăng dần)
class_scores = [5.6, 7.4, 7.8, 8.4, 8.9, 9.5]
# Nhập khoảng điểm cần tra cứu
start_score = float(input("Nhập điểm bắt đầu của khoảng điểm: "))
end_score = float(input("Nhập điểm kết thúc của khoảng điểm: "))
# Tìm kiếm nhị phân để tra cứu tên học sinh
found = False
low = 0
high = len(class_names) – 1
while low <= high:
mid = (low + high) // 2
if class_scores[mid] >= start_score and class_scores[mid] <= end_score:
print("Học sinh", class_names[mid], "có điểm là", class_scores[mid])
found = True
break
elif class_scores[mid] < start_score:
low = mid + 1
else:
high = mid - 1
if not found:
print("Không tìm thấy học sinh nào có điểm trong khoảng điểm đã nhập.")