Bài 30: Thiết lập thư viện cho chương trình

Khởi động (SGK Kết nối tri thức với cuộc sống - Trang 137)

Hướng dẫn giải

THAM KHẢO!

Một số ví dụ thực tế của mô hình danh sách liên kết:

-Quản lý danh bạ: Một ứng dụng quản lý danh bạ điện thoại di động có thể sử dụng mô hình danh sách liên kết đơn để lưu trữ danh sách các liên hệ. Mỗi liên hệ có thể được biểu diễn là một đối tượng trong danh sách liên kết, trong đó mỗi đối tượng chứa thông tin như tên, số điện thoại, địa chỉ, và liên kết đến liên hệ tiếp theo trong danh sách.

-Trình quản lý tập tin: Một trình quản lý tập tin trên hệ điều hành có thể sử dụng mô hình danh sách liên kết đôi để duyệt qua các thư mục và tập tin trong hệ thống tập tin. Mỗi thư mục hoặc tập tin có thể được biểu diễn là một đối tượng trong danh sách liên kết đôi, trong đó mỗi đối tượng chứa thông tin như tên, đường dẫn, kích thước, và liên kết đến thư mục hoặc tập tin trước và sau nó trong danh sách.

-Quản lý bài đăng trên mạng xã hội: Một mạng xã hội có thể sử dụng mô hình danh sách liên kết kép để quản lý các bài đăng của người dùng. Mỗi bài đăng có thể được biểu diễn là một đối tượng trong danh sách liên kết kép, trong đó mỗi đối tượng chứa thông tin như nội dung, người đăng, thời gian đăng, và liên kết đến bài đăng trước và sau nó trong danh sách.

-Duyệt web: Một trình duyệt web có thể sử dụng mô hình danh sách liên kết kép để duyệt qua các trang web đã xem trước đó. Mỗi trang web có thể được biểu diễn là một đối tượng trong danh sách liên kết kép, trong đó mỗi đối tượng chứa thông tin như URL, tiêu đề, nội dung, và liên kết đến trang web trước và sau nó trong danh sách.

(Trả lời bởi Thanh An)
Thảo luận (1)

Hoạt động 1 (SGK Kết nối tri thức với cuộc sống - Trang 137)

Hướng dẫn giải

THAM KHẢO!

1. Thư viện chương trình là tập hợp các hàm được đặt trong các mô đun độc lập để dùng chung cho nhiều chương trình khác nhau. Các thư viện này có thể được dùng nhiều lần và có thể cập nhật, nâng cấp bất cứ lúc nào.

2. Các hàm trong thư viện chương trình có ý nghĩa là cung cấp các đoạn mã đã được đóng gói lại để thực hiện một chức năng hoặc tính năng cụ thể. Các hàm trong thư viện chương trình thường được thiết kế và cài đặt để hoạt động trong một môi trường cụ thể.

(Trả lời bởi Thanh An)
Thảo luận (1)

Câu hỏi (SGK Kết nối tri thức với cuộc sống - Trang 138)

Hướng dẫn giải

Những câu nào sau đây là sai về ý nghĩa của việc sử dụng thư viện khi viết chương trình?

A. Chương trình sẽ ngắn hơn.

B. Các hàm thư viện được viết một lần và sử dụng nhiều lần.

C. Chương trình sẵn sàng, dễ hiểu hơn.

D. Chương trình sẽ chạy nhanh hơn.

(Trả lời bởi animepham)
Thảo luận (1)

Hoạt động 2 (SGK Kết nối tri thức với cuộc sống - Trang 139)

Hướng dẫn giải

Để lấy ra khoá của node đầu tiên trong danh sách liên kết, bạn có thể sử dụng thuộc tính key của đối tượng node đầu tiên trong danh sách.

(Trả lời bởi Time line)
Thảo luận (1)

Câu hỏi 1 (SGK Kết nối tri thức với cuộc sống - Trang 142)

Hướng dẫn giải

Tham khảo:

Đoạn mã trên sử dụng thư viện LinkedList và tạo một đối tượng danh sách liên kết mới (gọi là L) bằng cách gọi hàm khởi tạo LL().

Sau đó, thực hiện hai lần gọi hàm insert(L,10) và insert(L,20) để chèn các giá trị 10 và 20 vào danh sách liên kết L.

Cuối cùng, gọi hàm show(L) để hiển thị nội dung của danh sách liên kết L sau khi đã chèn các giá trị 10 và 20 vào trong đó.

Vậy đoạn mã này thực hiện việc tạo danh sách liên kết mới, chèn các giá trị 10 và 20 vào danh sách, và hiển thị danh sách liên kết đó.

(Trả lời bởi Time line)
Thảo luận (1)

Câu hỏi 2 (SGK Kết nối tri thức với cuộc sống - Trang 142)

Hướng dẫn giải

Tham khảo:

from LinkedList import *

# Tạo danh sách liên kết mới

L = LL()

# Thêm các tên vào danh sách liên kết

insert(L, "Bình")

insert(L, "Hoa")

insert(L, "Hà")

# Hiển thị nội dung của danh sách liên kết

show(L)

(Trả lời bởi Time line)
Thảo luận (1)

Luyện tập 1 (SGK Kết nối tri thức với cuộc sống - Trang 142)

Hướng dẫn giải

def nhap_day_so():
   """Hàm nhập dãy số từ bàn phím"""
   n = int(input("Nhập số lượng phần tử của dãy: "))
   a = []
   for i in range(n):
       a.append(int(input(f"Nhập phần tử thứ {i+1}: ")))
   return a

def sap_xep_chen(a):
   """Hàm sắp xếp dãy số bằng phương pháp sắp xếp chèn"""
   for i in range(1, len(a)):
       key = a[i]
       j = i - 1
       while j >= 0 and key < a[j]:
           a[j+1] = a[j]
           j -= 1
       a[j+1] = key
   return a

def sap_xep_chon(a):
   """Hàm sắp xếp dãy số bằng phương pháp sắp xếp chọn"""
   for i in range(len(a)):
       min_idx = i
       for j in range(i+1, len(a)):
           if a[j] < a[min_idx]:
               min_idx = j
       a[i], a[min_idx] = a[min_idx], a[i]
   return a

 

def sap_xep_noi_bot(a):
   """Hàm sắp xếp dãy số bằng phương pháp sắp xếp nổi bọt"""
   for i in range(len(a)):
       for j in range(0, len(a)-i-1):
           if a[j] > a[j+1]:
               a[j], a[j+1] = a[j+1], a[j]
   return a

(Trả lời bởi Time line)
Thảo luận (1)

Luyện tập 2 (SGK Kết nối tri thức với cuộc sống - Trang 142)

Hướng dẫn giải

Để lấy ra khoá của node đầu tiên trong danh sách liên kết, bạn có thể sử dụng thuộc tính key của đối tượng node đầu tiên trong danh sách.

(Trả lời bởi Time line)
Thảo luận (1)

Vận dụng 1 (SGK Kết nối tri thức với cuộc sống - Trang 142)

Hướng dẫn giải
Để lấy ra khoá của node đầu tiên trong danh sách liên kết, bạn có thể sử dụng thuộc tính key của đối tượng node đầu tiên trong danh sách. (Trả lời bởi Time line)
Thảo luận (1)

Vận dụng 2 (SGK Kết nối tri thức với cuộc sống - Trang 142)

Hướng dẫn giải

class Node:

 def __init__(self, key=None):

  self.key = key

  self.next = None

def delete_Jast(L):

 if L is None or L.next is None: # Nếu danh sách liên kết rỗng hoặc chỉ có một phần tử

  return None # Không cần xoá, trả về None

 current = L # Đặt con trỏ current trỏ đến node đầu tiên của danh sách liên kết

 while current.next.next is not None: # Duyệt đến node trước node cuối cùng

  current = current.next # Chuyển con trỏ current sang node kế tiếp trong danh sách liên kết

 current.next = None # Thay đổi liên kết của node trước node cuối cùng để xoá node cuối cùng

 return L # Trả về đối tượng đầu tiên của danh sách liên kết sau khi xoá

L = delete_Jast(L)

    

(Trả lời bởi Thanh An)
Thảo luận (1)