5 phút giải Khoa học máy tính 11 Kết nối tri thức trang 81

5 phút giải Khoa học máy tính 11 Kết nối tri thức trang 81. Giúp học sinh nhanh chóng, mất ít thời gian để giải bài. Tiêu chí bài giải: nhanh, ngắn, súc tích, đủ ý. Nhằm tạo ra bài giải tốt nhất. 5 phút giải bài, bằng ngày dài học tập.


Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây

BÀI 17. DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU

PHẦN I. HỆ THỐNG CÂU HỎI, BÀI TẬP TRONG SGK

KHỞI ĐỘNG

Em được giao nhiệm vụ thiết lập và lưu trữ một danh sách các địa điểm là nơi các bạn trong lớp sẽ thường xuyên đến để tham quan và trải nghiệm thực tế. Mỗi địa điểm như vậy cần nhiều thông tin, nhưng thông tin quan trọng nhất là toạ độ (x. y) của thông tin đó trên bàn đồ. Em sẽ dụng cầu trúc dữ liệu gì để mô tả danh sách các địa điểm này?

1. CẤU TRÚC DỮ LIỆU MẢNG MỘT CHIỀU

Hoạt động 1: Thực hiện các thao tác sau, quan sát, trao đổi và thảo luận, từ đó nhận biết về cấu trúc dữ liệu mảng một chiều trong Python.

Câu hỏi 1: Sử dụng hàm sum() tính tổng các số của một dãy. Hãy viết câu lệnh tính giá trị trung bình của dãy số A cho trước.

Câu hỏi 2: Có thể duyệt các phần tử của mảng theo chiều ngược lại, từ cuối về đầu, được không?

2. CẤU TRÚC DỮ LIỆU MẢNG HAI CHIỀU

Hoạt động 2: Thực hiện các lệnh sau, sau sát, trao đổi và thảo luận, từ đó nhận biết về mô hình danh sách trong Python.

Câu hỏi 1: Thiết lập mảng bao gồm dữ liệu là toạ độ các điểm trên mặt phẳng, mỗi điểm p được cho bởi hai toạ độ (px, py).

Câu hỏi 2: Thiết lập màng bao gồm dãy các thông tin là danh sách học sinh và thông tin 3 điểm thi của học sinh tương ứng các bải thi số 1, 2, 3. Viết đoạn lệnh nhập bộ dữ liệu trên và chương trình in ra danh sách học sinh cùng với điểm trung bình của các bài thi.

Hoạt động 3: Đọc, trao đổi, thảo luận về cấu trúc dữ liệu mảng hai chiều trong Python.

Câu hỏi 1: Câu lệnh sau sẽ tạo dữ liệu thuộc thể loại gì?

Câu hỏi 2: Nếu A là bảng (ma trận) kích thước m X N thì đoạn chương trình sau sẽ in ra thông tin gì trên màn hình?

for i in range(m):

    for j in range(n):

     print(A[i][j],end=” “)

    print()

LUYỆN TẬP

Luyện tập 1: Giả sử số đo chiều cao các bạn trong lớp được cho trong dãy số A. Hãy viết đoạn chương trình tính:

  • Số đo chiều cao trung bình của cả lớp.
  • Số bạn có chiều cao lớn hơn chiều cao trung bình của cả lớp.

Luyện tập 2: Viết chương trình nhập từ bàn phím số tự nhiên m, 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, sau đó in ma trận A ra màn hình.

VẬN DỤNG

Vận dụng 1: Viết hàm số UnitMatrix(n) với n là số tự nhiên cho trước, hàm trả lại giá trị là ma trận bậc n như Hình 17.1.

BÀI 17. DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU

Vận dụng 2: Viết chương trình cho phép người dùng nhập từ bàn phim một dãy số tự nhiên, hãy đếm với mỗi giá trị của dây có bao nhiêu số lặp lại. Ví dụ nếu dãy ban đầu là:

0 1 5 7 0 2 5 1 1 2

thì chương trình cần thông báo như Hình 17.2.

BÀI 17. DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU

Vận dụng 3: Viết chương trình cho phép người dùng nhập từ bàn phim một dãy số tự

PHẦN II. 5 PHÚT TRẢ LỜI CÂU HỎI, BÀI TẬP SGK

KHỞI ĐỘNG

Đáp án KD:

Em sẽ dụng cấu trúc dữ liệu 2 chiều.

1.CẤU TRÚC DỮ LIỆU MẢNG MỘT CHIỀU

Đáp án HD1

Cấu trúc dữ liệu màng một chiều trong Python có thể biểu diễn bằng kiểu dữ liệu danh sách với chức năng truy cập dễ dàng từng phần tử theo chỉ số, truy cập theo vùng chỉ số. 

Đáp án CH1:

tb = sum(A) / len(A)

print(tb)

Đáp án CH2:

Có thể.

2. CẤU TRÚC DỮ LIỆU MẢNG HAI CHIỀU

Đáp án HD2

Python hỗ trợ mô hình dữ liệu danh sách trong danh sách.

Đáp án CH1

Ta có thể sử dụng kiểu dữ liệu danh sách trong Python để lưu trữ các điểm trên mặt phẳng. Mỗi điểm sẽ được biểu diễn bằng một danh sách chứa hai phần tử là toạ độ px và py.

Đáp án CH2: # Nhập danh sách học sinh và điểm số

students = []

n = int(input("Nhập số lượng học sinh: "))

for i in range(n):

  name = input(f"Nhập tên học sinh thứ {i+1}: ")

  mark1 = float(input(f"Nhập điểm bài thi 1 của {name}: "))

  mark2 = float(input(f"Nhập điểm bài thi 2 của {name}: "))

  mark3 = float(input(f"Nhập điểm bài thi 3 của {name}: "))

  students.append([name, mark1, mark2, mark3])

# Tính điểm trung bình và in ra danh sách học sinh và điểm trung bình của họ

for student in students:

  name = student[0]

  mark1 = student[1]

  mark2 = student[2]

  mark3 = student[3]

  avg_mark = (mark1 + mark2 + mark3) / 3

  print(f"Học sinh {name} có điểm trung bình là {avg_mark}")

Đáp án HD3: 

Cấu trúc dữ liệu hai chiều là một bảng hay ma trận, bao gồm các hàng và cột dữ liệu. Bảng có thể có kích thước vuông n x n hoặc kích thước bất kì m x n.

Đáp án CH1:

Dữ liệu thuộc thể loại List trong Python.

Đáp án CH2:

Đoạn chương trình trên sẽ in ra giá trị của từng phần tử trong ma trận A, mỗi dòng một.

LUYỆN TẬP

Đáp án LT1

A = [170, 175, 160, 180, 165] # ví dụ dãy số đo chiều cao của lớp

n = len(A) # số lượng học sinh trong lớp

tong_chieu_cao = sum(A) # tổng số đo chiều cao của cả lớp

trung_binh_chieu_cao = tong_chieu_cao/n # số đo chiều cao trung bình của cả lớp

so_hs_tren_tb = 0 # số học sinh có chiều cao lớn hơn chiều cao trung bình của cả lớp

for i in range(n):

  if A[i] > trung_binh_chieu_cao:

   so_hs_tren_tb += 1

print("Số đo chiều cao trung bình của cả lớp là:", trung_binh_chieu_cao)

print("Số bạn có chiều cao lớn hơn chiều cao trung bình của cả lớp là:", so_hs_tren_tb)

Đáp án LT2

m = int(input("Nhập số hàng của ma trận: "))

n = int(input("Nhập số cột của ma trận: "))

A = []

for i in range(m):

  # Nhập một dòng gồm n số nguyên cách nhau bởi dấu cách

  row = list(map(int, input(f"Nhập dòng {i+1}: ").split()))

  A.append(row)

# In ma trận A ra màn hình

for i in range(m):

  for j in range(n):

   print(A[i][j], end=" ")

  print()

VẬN DỤNG

Đáp án VD1:

def UnitMatrix(n):

 matrix = []

 for i in range(n):

  row = []

  for j in range(n):

   if i == j:

    row.append(1)

   else:

    row.append(0)

  matrix.append(row)

 return matrix

Đáp án VD2:

numbers = list(map(int, input("Nhập dãy số: ").split()))

count = {}

for number in numbers:

  if number in count:

   count[number] += 1

  else:

   count[number] = 1

for number in count:

   print(f"Số {number} lặp lại {count[number]} lần")

Đáp án VD3:

#Tạo mảng 2 chiều lưu trữ số tiền điện của gia đình   

electricity_bills = [

 [100, 120, 130, 110, 90, 80, 70, 60, 50, 70, 80, 90],

 [110, 130, 140, 120, 100, 90, 80, 70, 60, 80, 90, 100],

 [120, 140, 150, 130, 110, 100, 90, 80, 70, 90, 100, 110],

 [130, 150, 160, 140, 120, 110, 100, 90, 80, 100, 110, 120]

]

# Tính số tiền điện trung bình của từng năm và in kết quả

for i in range(len(electricity_bills)):

 year_total = sum(electricity_bills[i])

 year_average = year_total / len(electricity_bills[i])

 print(f"Average electricity bill for year {i+1}: {year_average}")

# Tính số tiền điện trung bình của tất cả các năm và in kết quả

total = 0

count = 0

for row in electricity_bills:

 total += sum(row)

 count += len(row)

overall_average = total / count

print(f"Overall average electricity bill: {overall_average}")


Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây

Nội dung quan tâm khác

Thêm kiến thức môn học

Từ khóa tìm kiếm:

giải 5 phút Khoa học máy tính 11 Kết nối tri thức, giải Khoa học máy tính 11 Kết nối tri thức trang 81, giải Khoa học máy tính 11 KNTT trang 81

Bình luận

Giải bài tập những môn khác