Giải chi tiết Tin học 11 định hướng KHMT Kết nối mới bài 31: Thực hành thiết lập thư viện cho chương trình

Giải bài 31: Thực hành thiết lập thư viện cho chương trình sách Tin học 11 định hướng KHMT kết nối. Phần đáp án chuẩn, hướng dẫn giải chi tiết cho từng bài tập có trong chương trình học của sách giáo khoa. Hi vọng, các em học sinh hiểu và nắm vững kiến thức bài học.

Luyện tập

Câu hỏi 1. Đặt tất cả các tệp thư viện đã định nghĩa ở nhiệm vụ 1, 2 và 3 vào thư mục myLibs rồi viết mã nguồn ở tệp main.py (đặt cùng đường dẫn với thư mục myLibs) để sử dụng các hàm trong các thư viện đó.

Hướng dẫn trả lời:

Đặt tất cả các tệp thư viện đã định nghĩa ở nhiệm vụ 1, 2 và 3 vào thư mục myLibs rồi viết mã nguồn ở tệp main.py

Câu hỏi 2. Sửa lại thư viện hình_ tròn ở nhiệm vụ 1 bằng cách không sử dụng thư viện chuẩn math mà hãy định nghĩa thư viện my_math trong đó có định nghĩa hằng số Pi

Hướng dẫn trả lời:

# Định nghĩa thư viện my_math

class my_math:

 # Định nghĩa hằng số Pi

 Pi = 3.14159

 # Hàm tính chu vi hình tròn

 def tinhchuvi(r):

  return 2 * my_math.Pi * r

 # Hàm tính diện tích hình tròn

 def tinhdientich(r):

  return my_math.Pi * r * r

# Sử dụng thư viện my_math đã định nghĩa

r = float(input("Nhập bán kính hình tròn: "))

p = my_math.tinhchuvi(r)

print("Chu vi hình tròn là", p)

s = my_math.tinhdientich(r)

print(f"Diện tích hình tròn là", s)

Vận dụng

Câu hỏi 1. Tạo thư viện phương_ trình gồm hàm phương Trình Bậc 2 (a, b, c) với a, b, c là các hệ số của phương trình ax2 + bx + c = 0. Tuỳ vào các giá trị của các tham số, hàm sẽ in ra thông báo nghiệm của phương trình.

Hướng dẫn trả lời:

  • Đầu tiên tính delta = b² – 4ac
  • Nếu delta < 0 thì kết luận vô nghiệm
  • Nếu delta = 0 thì có nghiệm kép
  • Nếu delta > 0 thì sẽ có 2 nghiệm phân biệt

Ý tưởng:

  • Dùng một vòng do while để nhập a, b, c nếu a = 0, thì nhập lại.
  • Chúng ta dùng hàm sqrt() trong thư viện math.h để tính căn delta hoặc tính căn không dùng hàm sqrt()tại đây.
  • Chúng ta tạo hàm giaiPT trả về kiểu int chính là số nghiệm của phương trình (1).
  • Chúng ta sẽ đưa tham chiếu 2 biến x1 , x2 vào hàm giaiPT để gán giá trị hai nghiệm.
  • Nếu pt (1) vô nghiện thì giaiPT sẽ trả về 0 , đồng thời gán x1 = x2 =0 .
  • Nếu pt (1) có nghiệm kép thì giaiPT sẽ trả về 1 , đồng thời gán x1 = x2 = -b/2a .
  • Nếu pt (1) có 2 nghiệm thì giaiPT sẽ trả về 2 , gán x1 = (-b+√delta ) / 2a  x = (-b-√delta ) / 2a .

Câu hỏi 2. Viết chương trình quản li các bải hát trong một đĩa CD hay mớt play list, sử dụng cấu trúc LinkedList (đã được định nghĩa ở bài trước). Chương trình gồm hai tệp:

 Tệp quan _ly_cd.py gồm ba hàm:

- Hàm nhapDL(): Yêu cầu người dùng nhập số lượng bài hát, rồi sau đó nhập lần lượt tên các bài hát và bổ sung vào đĩa CD (hay play list), trả lại biến kiểu

LinkedList chứa các bài hát.

- Hàm timBai(): Tham số gồm đối tượng LinkedList và tên bài hát <ten_bai>. Nếu có bài hát cần tìm, hàm in ra vị trí đầu tiền xuất hiện bài hát,nếu không in ra thông báo “Không tìm thấy bài hát <ten_bai>”.

- Hàm inTT() tham số là đối tượng LinkedList. thực hiện in mỗi bài hát trên một dòng theo định dạng <Số thứ tự>. <Tên bài hát>.

 Tệp main.py sử dụng thư viện quan_ly_cd.

Hướng dẫn trả lời:

from LinkedList import LinkedList

def nhapDL():

  ds_bai_hat = LinkedList()

  n = int(input("Nhập số lượng bài hát: "))

 for i in range(n):

  ten_bai = input(f"Nhập tên bài hát thứ {i+1}: ")

  ds_bai_hat.append(ten_bai)

 return ds_bai_hat

def timBai(ds_bai_hat, ten_bai):

 result = ds_bai_hat.find(ten_bai)

 if result is not None:

  print(f"Bài hát '{ten_bai}' được tìm thấy ở vị trí đầu tiên: {ds_bai_hat.__str__().index(ten_bai) // 4 + 1}")

 else:

  print(f"Không tìm thấy bài hát '{ten_bai}'")

def inTT(ds_bai_hat):

 print("Danh sách bài hát trên đĩa CD hay playlist:")

 print(ds_bai_hat)

from quan_ly_cd import nhapDL, timBai, inTT

def main():

 ds_bai_hat = nhapDL()

 while True:

  print("====================================")

  print("1. Tìm bài hát")

  print("2. In danh sách bài hát")

  print("3. Thoát")

  choice = int(input("Nhập lựa chọn của bạn: "))

  if choice == 1:

   ten_bai = input("Nhập tên bài hát cần tìm: ")

   timBai(ds_bai_hat, ten_bai)

Tìm kiếm google: Giải tin học 11 kết nối bài 31 Thực hành thiết lập thư viện cho chương trình, Giải tin học 11 kết nối tri thức bài 31, Giải tin học KNTT bài 31

Xem thêm các môn học

Giải tin học 11 định hướng Khoa học máy tính KNTT mới


Copyright @2024 - Designed by baivan.net