CHỦ ĐỀ 6: KĨ THUẬT LẬP TRÌNH
BÀI 30: THIẾT LẬP THƯ VIỆN CHO CHƯƠNG TRÌNH
A. TRẮC NGHIỆM
1. NHẬN BIẾT
Câu 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 lệnh import có chức năng đưa thư viện vào bộ nhớ
- đặt tệp chương trình này cùng thư mục với tệp thư viện
- các hàm thư viện được viết một lần và sử dụng nhiều lần
Câu 2: Trong Python, lệnh import có chức năng:
- 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.
- đưa thư viện vào bộ nhớ để sẵn sàng sử dụng
- đặt tệp chương trình này cùng thư mục với tệp thư viện
- các hàm thư viện được viết một lần và sử dụng nhiều lần
Câu 3: Danh sách liên kết cấu trúc bao gồm:
- Cấu trúc node mô tả các phần tử của danh sách
- Cấu trúc head là đầu của mỗi danh sách liên kết
- Node cuối cùng của danh sách sẽ có thông tin next = Node (dữ liệu rỗng)
- Tất cả các đáp án trên
Câu 4: Mỗi node sẽ có dữ liệu khóa (key) là:
- thông tin chính và thông tin next để kết nối sangt phần tử tiếp theo của danh sách
- đầu của mỗi danh sách liên kết
- có thể thiết lập các hàm tìm kiếm
- bổ sung hoặc xóa thông tin trên danh sách liên kết
Câu 5: Cấu trúc head là:
- thông tin chính và thông tin next để kết nối sangt phần tử tiếp theo của danh sách
- đầu của mỗi danh sách liên kết
- có thể thiết lập các hàm tìm kiếm
- bổ sung hoặc xóa thông tin trên danh sách liên kết
2. THÔNG HIỂU
Câu 1: 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?
- Chương trình sẽ ngắn hơn.
- Các hàm thư viện được viết một lần và sử dụng nhiều lần.
- Chương trình sẵn sàng, dễ hiểu hơn.
- Chương trình sẽ chạy nhanh hơn.
Câu 2: Vì sao lại cần thư viện chương trình?
- Có chức năng đưa thư viện vào bộ nhớ để sẵn sàng sử dụng.
- 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.
- Các hàm thư viện được viết một lần và sử dụng nhiều lần.
- Chương trình sẵn sàng, dễ hiểu hơn.
Câu 3: Ý nghĩa của các hàm trong thư viện chương trình là gì?
- Có chức năng đưa thư viện vào bộ nhớ để sẵn sàng sử dụng.
- 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.
- Các hàm thư viện được viết một lần và sử dụng nhiều lần.
- Chương trình sẵn sàng, dễ hiểu hơn.
3. VẬN DỤNG
Câu 1: Đoạn hàm sau thực hiện công việc gì?
- Thêm 1 chuỗi
- Thêm chiều dài chuỗi
- Thêm chiều rộng chuỗi
- Thêm 2 chuỗi
Câu 2: Cách viết một hàm thư viện sắp xếp chèn nào sau đây là đúng?
- 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
Câu 3: Cách viết một hàm thư viện sắp xếp chọn nào sau đây là đúng?
- 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
Câu 4: Cách viết một hàm thư viện sắp xếp nổi bọt nào sau đây là đúng?
- 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
Câu 5: Cách viết một thư viện hàm nhập dữ liệu là một dãy số nào sau đây là đúng?
- 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
4. VẬN DỤNG CAO
Câu 1: Viết đoạn chương trình ngắn sau sử dụng thư viện LinkedList đề thiết lập một danh sách liên kết L và bổ sung các tên "Bình", "Hoa", "Hà" vào danh sách này.
node AddHead(node head, int value){
node temp = CreateNode(value); // Khởi tạo node temp với data = value
if(head == NULL){
head = temp; // //Nếu linked list đang trống thì Node temp là head luôn
}else{
temp->next = head; // Trỏ next của temp = head hiện tại
head = temp; // Đổi head hiện tại = temp(Vì temp bây giờ là head mới mà)
}
return head;
}
Em hãy nhận xét về cách viết đoạn chương trình trên:
- Hoàn toàn đồng ý
- Cách viết trên là sai
- Cách viết trên cần bổ sung dấu “!” sau “node”
- Ý kiến khác
--------------- Còn tiếp ---------------