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 Định hướng khoa học máy tính Kết nối tri thức>
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.
Luyện tập 1
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.
Phương pháp giải:
Dựa vào hướng dẫn của Nhiệm vụ 1 trang 86, 87 SGK kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
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.")
Luyện tập 2
Chỉnh sửa lại chương trình để người dùng có thể:
a) Tra cứu các đầu điểm kiểm tra theo STT (số thứ tự) của học sinh. Quy ước số thứ tự bắt đầu từ 1. Nếu người dùng nhập STT lớn hơn số lượng học sinh thì chương trình thông báo STT không hợp lệ và yêu cầu nhập lại.
b) Tra cứu điểm kiểm tra cụ thể lần thứ n của một học sinh theo STT. Nếu n và STT không hợp lệ chương trình cần thông báo và yêu cầu nhập lại.
Phương pháp giải:
Dựa vào kiến thức trong bài kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
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]
num_students = len(marks)
for m in marks:
total += m
if min_mark > m:
min_mark = m
if max_mark < m:
max_mark = m
print("Điểm trung bình: ", total / num_students)
print("Điểm cao nhất: ", max_mark)
print("Điểm thấp nhất: ", min_mark)
while True:
stt = int(input("Nhập vào STT (1 <= STT <= số lượng học sinh): "))
if stt < 1 or stt > num_students:
print("STT không hợp lệ. Vui lòng nhập lại!")
else:
print("Điểm của học sinh có STT", stt, "là:", marks[stt - 1])
break
while True:
stt = int(input("Nhập vào STT của học sinh: "))
if stt < 1 or stt > num_students:
print("STT không hợp lệ. Vui lòng nhập lại!")
else:
n = int(input("Nhập vào số lần kiểm tra cần tra cứu (1 <= n <= số lượng điểm kiểm tra): "))
if n < 1 or n > len(marks):
print("N không hợp lệ. Vui lòng nhập lại!")
else:
print("Điểm kiểm tra lần thứ", n, "của học sinh có STT", stt, "là:", marks[stt - 1])
break
Vận dụng 1
Viết chương trình nhập vào từ bàn phím danh sách tên (không gồm họ và đệm) học sinh cách nhau bởi dấu cách và lưu vào trong một mảng. Giả thiết rằng tên, không gồm khoảng trắng. Sau đó hệ thống kê xem có bao nhiêu tên khác nhau và mỗi tên xuất hiện bao nhiêu lần trong danh sách.
Phương pháp giải:
Vận dụng kiến thức trong bài để trả lời câu hỏi.
Lời giải chi tiết:
ds=list(map(str,input().split()))
c={}
for i in ds:
if i in c:
c[i] =c[i]+1
else:
c[i] = 1
print('số tên khác nhau là',len(c))
print('mỗi tên có số lần xuất hiện là:')
for i in c:
print(i, c[i])
Vận dụng 2
Viết chương trình nhập từ bàn phím số tự nhiên m và n. Sau đó lần lượt nhập m dòng, mỗi dòng bao gồm n số cách nhau bởi dấu cách, Đưa dữ liệu đã nhập vào ma trận A, in ma trận A ra màn hình, Sau đó:
a) Tính tổng các phần tử ma trận A.
b) In ra dòng có tổng các phần tử lớn nhất (nếu có nhiều dòng bằng nhau thì in tất cả các dòng)
c) In ra giá trị các phần tử phân biệt trong ma trận tức là nếu có các giá trị xuất hiện nhiều lần trong ma trận A thì chỉ in rõ một lần.
d) Cho phép người dùng tìm số lần xuất hiện của một số bất kì trong ma trận A, ví dụ người dùng nhập vào số 3 chương trình thông báo số 3 xuất hiện x lần trong ma trận tại các vị trí cột (i,j) cụ thể.
Phương pháp giải:
Vận dụng kiến thức trong bài, hướng dẫn; kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi,
Lời giải chi tiết:
a)
m = int(input("Nhập số dòng của ma trận: "))
n = int(input("Nhập số cột của ma trận: "))
# Khởi tạo ma trận A với kích thước m x n
A = []
for i in range(m):
row = list(map(int, input(f"Nhập dòng thứ {i+1} (gồm {n} số cách nhau bởi dấu cách): ").split()))
A.append(row)
# In ma trận A ra màn hình
print("Ma trận A:")
for row in A:
print(*row)
# Tính tổng các phần tử trong ma trận A
total = 0
for row in A:
total += sum(row)
print("Tổng các phần tử trong ma trận A là:", total)
b)
# Tìm dòng có tổng các phần tử lớn nhất
max_sum = max(sum(row) for row in A)
print("Dòng có tổng các phần tử lớn nhất là:")
for i, row in enumerate(A):
if sum(row) == max_sum:
print(f"Dòng thứ {i+1}: {row}")
c)
Tìm các giá trị phân biệt trong ma trận A
distinct_values = set()
for row in A:
distinct_values.update(set(row))
# In các giá trị phân biệt ra màn hình
print("Các giá trị phân biệt trong ma trận:")
print(*distinct_values)
d)
k=int(input("nhập số cần tìm"))
l=0
for i in range(m):
for j in range(n):
if k==a[i][j]:
l=l+1
print('xuất hiện ở các vị trí',i,j)
print('số',k,' xuất hiện',l,' lần')
- Bài 19. Bài toán tìm kiếm trang 89 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 20. Thực hành bài toán tìm kiếm trang 94 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 21. Các thuật toán sắp xếp đơn giản trang 99, 100 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 22. Thực hành bài toán sắp xếp trang 104 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 22. Kiếm thử và đánh giá chương trình trang 106 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
>> Xem thêm
Các bài khác cùng chuyên mục
- Bài 31. Thực hành thiết lập thư viên chương trình trang 143 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 30. Thiết lập thư viện cho chương trình trang 137 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 29. Thực hành thiết kế chương trình theo mô đun trang 132 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 28. Thiết kế chương trình theo mô đun trang 127 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 27. Thực hành thiết kế chương trình theo phương pháp làm mịn dần trang 123 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 31. Thực hành thiết lập thư viên chương trình trang 143 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 30. Thiết lập thư viện cho chương trình trang 137 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 29. Thực hành thiết kế chương trình theo mô đun trang 132 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 28. Thiết kế chương trình theo mô đun trang 127 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức
- Bài 27. Thực hành thiết kế chương trình theo phương pháp làm mịn dần trang 123 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức