Giải chi tiết Luyện tập 1 Bài 18. Thực hành dữ liệu mảng một chiều và hai chiều (trang 86) – SGK Tin học 11 Kết nối tri thức. Hướng dẫn: Dựa vào hướng dẫn của Nhiệm vụ 1 trang 86.
Câu hỏi/Đề bài:
Chỉnh sửa lại chương trình của Nhiệm vụ 1 để bổ sung chức năng:
a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.
b) Cho phép người dùng tra cứu đầu điểm thứ n với quy ước n bắt đầu từ 1 ứng với điểm đầu tiên, nếu n lớn hơn tổng số đầu điềm hoặc nhỏ hơn 1, cần thông báo không hợp lệ và yêu cầu người dùng nhập lại.
Lời giải:
marks = []
line = input(“Hãy nhập các điểm kiểm tra cách nhau bởi dấu cách: “)
marks = [float(x) for x in line.split()]
total = 0
min_mark = marks[0]
max_mark = marks[0]
for m in marks:
total += m
if min_mark > m:
min_mark = m
if max_mark < m:
max_mark = m
#a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.
print(“Điểm trung bình: “, total / len(marks))
print(“Điểm cao nhất: “, max_mark)
print(“Điểm thấp nhất: “, min_mark)
print(“Điểm đầu tiên: “, marks[0])
print(“Điểm cuối cùng: “, marks[-1])
#b) Cho phép người dùng tra cứu đầu điểm thứ n với quy ước n bắt đầu từ 1 ứng với điểm đầu tiên, nếu n lớn hơn tổng số đầu điềm hoặc nhỏ hơn 1, cần thông báo không hợp lệ và yêu cầu người dùng nhập lại.
while True:
try:
n = int(input(“Nhập n để tra cứu điểm đầu tiên thứ n (n bắt đầu từ 1): “))
if n < 1 or n > len(marks):
print(“Số n không hợp lệ. Vui lòng nhập lại.”)
continue
print(“Điểm đầu tiên thứ”, n, “là:”, marks[n – 1])
break
except ValueError:
print(“Số n không hợp lệ. Vui lòng nhập lại.”)