Viết chương trình tra cứu tên theo điểm thi của học sinh trong lớp

Giải Tin học 11 Bài 20: Thực hành bài toán tìm kiếm - Kết nối tri thức

Vận dụng trang 98 Tin học 11: Viết chương trình tra cứu tên theo điểm thi của học sinh trong lớp. Chương trình cho phép người dùng nhập vào khoảng điểm số cần tìm kiếm (ví dụ từ 6 đến 8). Chương trình kiểm tra và thông báo tên của học sinh có điểm số nằm trong khoảng tương ứng. Giải bài toán trong hai trường hợp: điểm được sắp xếp theo thứ tự ngẫu nhiên như trong Nhiệm vụ 1 hoặc điểm được sắp xếp theo thứ tự tăng dẫn như sau:

Sơn 5.6

Huyền 7.4

Nam 7.8

Hùng 8.4

Hương 8.9

Hà 9.5

Quảng cáo

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.")

Quảng cáo

Lời giải bài tập Tin học 11 Bài 20: Thực hành bài toán tìm kiếm hay khác:

Quảng cáo

Xem thêm lời giải bài tập Tin học lớp 11 Kết nối tri thức hay nhất, ngắn gọn khác:

Tủ sách VIETJACK shopee lớp 10-11 cho học sinh và giáo viên (cả 3 bộ sách):

Săn shopee siêu SALE :

ĐỀ THI, GIÁO ÁN, SÁCH LUYỆN THI DÀNH CHO GIÁO VIÊN VÀ PHỤ HUYNH LỚP 11

Bộ giáo án, bài giảng powerpoint, đề thi, sách dành cho giáo viên và gia sư dành cho phụ huynh tại https://tailieugiaovien.com.vn/ . Hỗ trợ zalo VietJack Official

Tổng đài hỗ trợ đăng ký : 084 283 45 85

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.


Tài liệu giáo viên