Toptailieu.vn biên soạn và giới thiệu lời giải Tin học 11 (Kết nối tri thức) Bài 18: Thực hành dữ liệu mảng một chiều và hai chiều hay, chi tiết sẽ giúp học sinh dễ dàng trả lời câu hỏi SGK Tin học 11 Bài 18 từ đó học tốt môn Tin học 11
Tin học 11 (Kết nối tri thức) Bài 18: Thực hành dữ liệu mảng một chiều và hai chiều
Luyện tập
Luyện tập 1 trang 88 Tin học 11: 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.
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.")
Luyện tập 2 trang 88 Tin học 11: Chỉnh sửa lại chương trình để người dùng có thể:
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]
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
Lời giải:
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])
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)
Lời giải:
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')
Xem thêm các bài giải SGK Tin học lớp 11 Kết nối tri thức hay, chi tiết khác:
Bài 16: Công việc quản trị cơ sở dữ liệu
Bài 17: Dữ liệu mảng một chiều và hai chiều
CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK
- Người đại diện: Nguyễn Thanh Tuyền
- Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.
2021 © All Rights Reserved.