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
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
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
* 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.
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!