logo

Soạn Tin học 11 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, 145)

Hướng dẫn Soạn Tin học 11 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, 145 ngắn gọn, hay nhất theo chương trình Sách mới.

Bài 31: Thực hành thiết lập thư viện chương trình


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 đó.

Gợ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


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

Gợi ý:

- 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


3. 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.

* Gợi ý:

Đây là một ví dụ về việc tạo thư viện phương trình gồm hàm giải phương trình bậc 2:

import math

def giai_pt_bac_2(a, b, c):
   """Giải phương trình bậc 2 ax^2 + bx + c = 0 và in ra kết quả"""

   # tính delta
   delta = b**2 - 4*a*c

   # kiểm tra điều kiện và tính nghiệm
   if delta < 0:
       print("Phương trình vô nghiệm.")
   elif delta == 0:
       x = -b / (2*a)
       print(f"Phương trình có nghiệm kép x = {x}.")
   else:
       x1 = (-b + math.sqrt(delta)) / (2*a)
       x2 = (-b - math.sqrt(delta)) / (2*a)
       print(f"Phương trình có hai nghiệm phân biệt x1 = {x1} và x2 = {x2}.")

Cách sử dụng thư viện phương trình này trong chương trình của bạn:

import phuong_trinh

# giải phương trình x^2 + 2x + 1 = 0
phuong_trinh.giai_pt_bac_2(1, 2, 1)

# giải phương trình 2x^2 - 4x + 2 = 0
phuong_trinh.giai_pt_bac_2(2, -4, 2)

# giải phương trình x^2 - 3x + 2 = 0
phuong_trinh.giai_pt_bac_2(1, -3, 2)

Kết quả sẽ được in ra màn hình theo các nghiệm của phương trình.


4. Viết chương trình quản lí 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.

Trả lời:

Đây là mã cho tệp quan_ly_cd.py với các hàm nhapDL(), timBai() và inTT() sử dụng LinkedList để quản lý danh sách các bài hát:

class Node:
   def __init__(self, data=None):
       self.data = data
       self.next = None


class LinkedList:
   def __init__(self):
       self.head = None
       self.tail = None

   def is_empty(self):
       return self.head is None

   def add_last(self, data):
       new_node = Node(data)
       if self.is_empty():
           self.head = self.tail = new_node
       else:
           self.tail.next = new_node
           self.tail = new_node

   def find(self, data):
       current = self.head
       index = 0
       while current:
           if current.data == data:
               return index
           current = current.next
           index += 1
       return -1


def nhapDL():
   n = int(input("Nhap so luong bai hat: "))
   ds_bai_hat = LinkedList()
   for i in range(n):
       ten_bai_hat = input(f"Nhap ten bai hat thu {i + 1}: ")
       ds_bai_hat.add_last(ten_bai_hat)
   return ds_bai_hat


def timBai(ds_bai_hat, ten_bai):
   index = ds_bai_hat.find(ten_bai)
   if index == -1:
       print(f"Khong tim thay bai hat {ten_bai}")
   else:
       print(f"Vi tri dau tien cua bai hat {ten_bai} la {index}")


def inTT(ds_bai_hat):
   current = ds_bai_hat.head
   index = 1
   while current:
       print(f"{index}. {current.data}")
       current = current.next
       index += 1

Sau đó, ta có thể sử dụng các hàm này trong tệp main.py như sau:

from quan_ly_cd import *

ds_bai_hat = nhapDL()

inTT(ds_bai_hat)

ten_bai = input("Nhap ten bai hat can tim kiem: ")
timBai(ds_bai_hat, ten_bai)

>>> Xem toàn bộ: Soạn Tin 11 Kết nối tri thức

-------------------------------------

Trên đây Toploigiai đã cùng các bạn Soạn Tin học 11 Kết nối tri thức Bài 31 trang 143, 145: Thực hành thiết lập thư viện chương trình trong bộ SGK Kết nối tri thức theo chương trình sách mới. Chúng tôi hi vọng các bạn đã có kiến thức hữu ích khi đọc bài viết này. Click vào trang chủ Toploigiai để tham khảo và chuẩn bị bài cho năm học mới nhé. Chúc các bạn học tốt!

icon-date
Xuất bản : 25/02/2023 - Cập nhật : 19/07/2023

Tham khảo các bài học khác