Đáp án Khoa học máy tính 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

File đáp án Tin học 11 - Định hướng Khoa học máy tính 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. Toàn bộ câu hỏi, bài tập ở trong bài học đều có đáp án. Tài liệu dạng file word, tải về dễ dàng. File đáp án này giúp kiểm tra nhanh kết quả. Chỉ có đáp án nên giúp học sinh tư duy, tránh học vẹt

 

BÀI 18 - THỰC HÀNH MẢNG MỘT CHIỀU VÀ HAI CHIỀU

MỞ ĐẦU

Câu 1: trong bài học trước, em đã biết cấu trúc dữ liệu mảng có thể giúp giải quyết tốt các bài toán quản lí danh sách trên thực tế. Việc quản lí danh sách điểm kiểm tra của một môn học là quản lý danh sách học sinh và mỗi học sinh có một danh sách điểm kiểm tra. Bảng điểm môn học cả lớp được coi là danh sách của danh sách điểm của các học sinh. Theo em, người ta dùng mảng một chiều hay hai chiều để quản lí danh sách điểm một môn học của mỗi học sinh? Để quản lí điểm một môn học của cả lớp?

Trả lời:

  • Người ta thường sử dụng mảng một chiều để quản danh sách điểm một môn học của mỗi học sinh.
  • Người ta có thể sử dụng cả mảng một chiều hay hai chiều để quản lí điểm một môn học của cả lớp. Cách sử dụng mảng tùy thuộc vào cách tổ chức dữ liệu và yêu cầu cụ thể của quy trình quản lý điểm. Hai cách thường được sử dụng là:
  1. Mảng một chiều: Trong trường hợp này, mỗi phần tử trong mảng sẽ đại diện cho một học sinh và chứa điểm số của học sinh đó. Bằng cách sử dụng chỉ số của mỗi phần tử trong mảng, bạn có thể thay đổi hoặc truy xuất điểm số của từng học sinh.
  2. Mảng hai chiều: Trong trường hợp này, mảng sẽ có kích thước là số lượng học sinh và số lượng môn học. Mỗi hàng của mảng sẽ đại diện cho một học sinh và mỗi cột sẽ đại diện cho một môn học. Bằng cách sử dụng chỉ số hàng và cột, bạn có thể truy xuất và thay đổi điểm số của từng học sinh cho từng môn học.

 

LUYỆN TẬP

Câu 1: Chỉnh sửa lại chương trình của Nhiệm vụ 1 để bổ sung chức năng:

  1. a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách.
  2. 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.

Trả lờ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

Câu 1: Viết chương trình nhập vào từ bàn phím danh sách lê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 liện bao nhiêu lần trong danh sách.

Trả lờ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])

 

Câu 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 đó:

  1. a) Tính tổng các phần tử ma trận A.
  2. 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)
  3. 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 mã trận A thì chỉ in rõ một lần
  4. 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ể.

Trả lờ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')

 

=> Giáo án Khoa học máy tính 11 kết nối Bài 18: Thực hành dữ liệu mảng một chiều và hai chiều

Thông tin tải tài liệu:

Phía trên chỉ là 1 phần, tài liệu khi tải về là file word, có nhiều hơn + đầy đủ đáp án. Xem và tải: File word đáp án tin học khoa học máy tính 11 kết nối tri thức - Tại đây

Tài liệu khác

Tài liệu của bạn

Tài liệu môn khác

Tài liệu mới cập nhật

Chat hỗ trợ
Chat ngay