Giải bài 31: Thực hành thiết lập thư viện cho chương trình | Tin học 11 Kết nối tri thức

Xin gửi tới bạn đọc bài viết 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 cho chương trình để bạn đọc cùng tham khảo và có thêm tài liệu giải SGK Tin học 11 Kết nối tri thức nhé. Mời các bạn cùng theo dõi bài viết dưới đây.

Tin học 11 Kết nối tri thức bài 31
Khởi động
Câu hỏi: Em sẽ thiết kế chương trình như thế nào? Trao đổi với bạn về cách thiết
kế chương trình sao cho hợp lí nhất.
Bài làm
B1. Thiết kế chung
B2. Thiết kê công việc nhập dữ liệu
B3. Thiết kế công việc xử lí dữ liệu
B4. Thiết lập báo cáo, đưa ra dữ liệu
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 đó.
Bài làm
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
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
Bài làm
# Đị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 ax
2
+ 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.
Bài làm
Gợ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.
Bài làm
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)
| 1/3

Preview text:

Tin học 11 Kết nối tri thức bài 31 Khởi động
Câu hỏi: Em sẽ thiết kế chương trình như thế nào? Trao đổi với bạn về cách thiết
kế chương trình sao cho hợp lí nhất. Bài làm B1. Thiết kế chung
B2. Thiết kê công việc nhập dữ liệu
B3. Thiết kế công việc xử lí dữ liệu
B4. Thiết lập báo cáo, đưa ra dữ liệu 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 đó. Bài làm 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
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 Bài làm
# Đị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. Bài làm Gợ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 . 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 ”.
- 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 . .
Tệp main.py sử dụng thư viện quan_ly_cd. Bài làm
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)
Document Outline

  • Khởi động
  • Luyện tập
  • Vận dụng