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
46 người thi tuần này 4.6 677 lượt thi 2 câu hỏi
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
🔥 Học sinh cũng đã học
Đề thi cuối kì 2 Tin học 11 năm 2024-2025 Sở Nam Định có đáp án
Đề thi cuối kì 2 Tin học 11 năm 2025-2026 THPT Xuyên Mộc (TP.HCM) có đáp án
Đề thi cuối kì 2 Tin học 11 năm 2024-2025 THPT Gio Linh (Quảng Trị) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2025-2026 THPT Xuyên Mộc (TP.HCM) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2024-2025 THPT Hồ Nghinh (Quảng Nam) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2025-2026 THPT Hùng Vương (Đà Nẵng) có đáp án
Đề thi giữa kì 2 Tin học 11 năm 2024-2025 THPT (Bắc Giang) có đáp án
Đề thi cuối kì 1 Tin học 11 năm 2024-2025 THPT Gio Linh (Quảng Trị) có đáp án
Danh sách câu hỏi:
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
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’)
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
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.")
Đăng ký để học cùng Vietjack. Hoàn toàn miễn phí!
Bằng việc đăng ký, bạn đồng ý với Điều khoản sử dụng và Chính sách bảo mật của Vietjack.