Viết chương trình tra cứu tên theo điểm thi của học sinh trong lớp
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
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.")
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:
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:
Tin học 11 Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Tin học 11 Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán
Xem thêm các tài liệu học tốt lớp 11 hay khác:
- Giải sgk Tin học 11 Kết nối tri thức
- Giải Chuyên đề Tin học 11 Kết nối tri thức
- Giải SBT Tin học 11 Kết nối tri thức
- Giải lớp 11 Kết nối tri thức (các môn học)
- Giải lớp 11 Chân trời sáng tạo (các môn học)
- Giải lớp 11 Cánh diều (các môn học)
- Soạn văn 11 (hay nhất) - KNTT
- Soạn văn 11 (ngắn nhất) - KNTT
- Giải sgk Toán 11 - KNTT
- Giải Tiếng Anh 11 Global Success
- Giải sgk Tiếng Anh 11 Smart World
- Giải sgk Tiếng Anh 11 Friends Global
- Giải sgk Vật Lí 11 - KNTT
- Giải sgk Hóa học 11 - KNTT
- Giải sgk Sinh học 11 - KNTT
- Giải sgk Lịch Sử 11 - KNTT
- Giải sgk Địa Lí 11 - KNTT
- Giải sgk Giáo dục KTPL 11 - KNTT
- Giải sgk Tin học 11 - KNTT
- Giải sgk Công nghệ 11 - KNTT
- Giải sgk Hoạt động trải nghiệm 11 - KNTT
- Giải sgk Giáo dục quốc phòng 11 - KNTT
- Giải sgk Âm nhạc 11 - KNTT