Giải bài 28: Thiết kế chương trình theo mô đun | Tin học 11 Kết nối tri thức

Tin học 11 Kết nối tri thức bài 28: Thiết kế chương trình theo mô đun được sưu tầm và xin gửi tới bạn đọc cùng tham khảo. Mời các bạn cùng theo dõi để có thêm tài liệu giải SGK Tin học 11 Kết nối tri thức nhé.

Tin học 11 Kết nối tri thức bài 28
Khởi động
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
1. Thiết kế chương trình theo mô đun
Hoạt động 1: Thiết kế chương trình theo mô đun
Thực hiện các bước thiết kế giải bài toán trên theo phương pháp làm mịn dần, trao
đổi và thảo luận để biết được cách thiết kế chương trình theo mô đun.
Bài làm
Phương pháp thiết kế chương trình theo mô đun sẽ tách bài toán lớn thành các bài
toán nhỏ hơn, hay thành các mô đun, tương đối độc lập với nhau, sau đó tiến hành
thiết kế thuật toán và chương trình cho từng mô đun con. Mỗi mô đun có thể là một
số hàm hoặc thủ tục độc lập. Chương trình chính là một bản ghép nối các hàm và
thủ tục con.
Câu hỏi 1. Chương trình trên được thiết kế có bao nhiêu mô đun?
Bài làm
Chương trình trên được thiết kế có 3 mô đun.
Câu hỏi 2. Các mô đun của chương trình trên có quan hệ với nhau như thế nào?
Bài làm
Phương pháp Thiết kế chương trình như trên được gọi là thiết kế theo mỗ đun. Mỗi
mô đun thường là các chức năng độc lập, riêng biết theo yêu cầu của chương trình.
Tuỳ thuộc vào từng bài toán và quan điểm thiết kế có thể tạo các mô đun này theo
nhiều cách khác nhau.
2. Lợi ích của phương pháp thiết kế theo mô đun
Hoạt động 2: Tìm hiểu lợi ích của phương pháp thiết kế theo mô đun
Với chương trình đã có trong Hoạt động 1, em sẽ làm gì nếu có các yêu cầu bổ sung
như sau:
1. Yêu cầu thay đổi thông tin trong báo cáo: Ghi hai mặt hàng có doanh số cao nhất
và bốn mặt hàng có doanh số thấp nhất.
2. Cập nhật, bổ sung các mặt hàng mới và doanh số trong ngày.
3. Yêu cầu làm thêm một báo cáo trong đó ghi doanh số bán trung bình trong ngày
và danh sách các mặt hàng có doanh số lớn hơn doanh số trung bình này, kết quả
đưa ra tệp Data2.out.
Em có nhận xét gì về công việc thực hiện các công việc bổ sung này?
Bài làm
Vì chương trình được thiết kế theo mô đun nên:
- Các mô đun được thiết lập một lần và sử dụng nhiều lần.
- Dễ dàng nâng cấp, thay đổi, chỉnh sửa mà không mất công sửa lại toàn bộ chương
trình.
- Dễ dàng bổ sung các mô đun mới.
Câu hỏi 1. Phân loại các công việc bổ sung trên vào ba loại sau:
- Công việc mới hoàn toàn.
- Công việc nâng cấp một mô đun cũ.
- Công việc không liên quan đến thuật toán và lập trình.
Bài làm
- Công việc mới hoàn toàn.
- Công việc nâng cấp một mô đun cũ.
- Công việc không liên quan đến thuật toán và lập trình.
Câu hỏi 2: Công việc sau đây, nếu có sẽ thuộc nhóm công việc nào? Nhập một giá
trị số nào đó, ví dụ K, cần tìm trong danh sách các mặt hàng có doanh số xấp xỉ K
(hơn kém nhau không quá hằng số C = 1).
Bài làm
Công việc này sẽ thuộc vào nhóm công việc liên quan đến Tìm kiếm và Lọc dữ liệu.
3. Luyện tập
Câu hỏi 1. Nếu công việc bổ sung 3 có thêm yêu cầu in ra số lượng mặt hàng đã
bán trong ngày thì cần thêm hay sửa lệnh nào của chương trình BC2
Bài làm
Sửa lệnh prinf "in ra số lượng mặt hàng bán trong ngày"
Câu hỏi 2. Viết thêm một chương trình cho công việc bổ sung 4 như sau: Cần in ra
danh sách 1⁄3 số mặt hàng có doanh số thấp nhất trong ngày.
Bài làm
def in_danh_sach_1_3_so_mat_hang_thap_nhat(s,p):
# Sắp xếp danh sách mặt hàng theo doanh số tăng dần
p.sort(key=lambda x: x[s])
# Tính số lượng mặt hàng cần in (1/3 tổng số mặt hàng)
so_luong_can_in = len(p) // 3
# In ra danh sách 1/3 số mặt hàng có doanh số thấp nhất
print("Danh sách 1/3 số mặt hàng có doanh số thấp nhất:")
for i in range(so_luong_can_in):
print(f"{i+1}. Mặt hàng {p[i][0]} - Doanh s: {p[i][p]}")
4. Vận dụng
Câu hỏi 1. Thiết lập chương trình cho công việc thường làm vào cuối giờ bán hàng:
Cho trước số K (một doanh số giả định), cần tìm ra mặt hàng có doanh số nhỏ hơn
K nhưng gần với K nhất. Bài toán này có thể sử dụng thuật toán tìm kiếm nào để
giải?
Bài làm
Chương trình sử dụng thuật toán tìm kiếm nhị phân để tìm mặt hàng có doanh số
nhỏ hơn K nhưng gần với K nhất trong danh sách mặt hàng đã được sắp xếp theo
thứ tự tăng dần của doanh số.
def find_nearest_item(arr, K):
# Sắp xếp danh sách mặt hàng theo thứ tự tăng dần của doanh số
arr.sort()
low, high = 0, len(arr) - 1
result = None
while low <= high:
mid = (low + high) // 2# Tính giá trị trung bình mid của low và high
if arr[mid] < K:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid nhỏ hơn K
# Đặt low = mid + 1 để tìm phần tử lớn hơn K
low = mid + 1
elif arr[mid] > K:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid lớn hơn K
# Đặt high = mid - 1 để tìm phần tử nhỏ hơn K
high = mid – 1
else:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid bằng K
# Trả về mid làm kết quả
result = mid
break
# Cập nhật giá trị gần K nhất
if result is None or abs(arr[mid] - K) < abs(arr[result] - K):
result = mid
return arr[result]
# Example usage
arr = [10, 20, 30, 40, 50, 60, 70, 80, 90]
K = 45
nearest_item = find_nearest_item(arr, K)
print("Mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất là:", nearest_item)
Câu hỏi 2. Em hãy giúp công ty du lịch thiết lập tour du lịch tối ưu cho khách hàng
nếu biết trước các đánh giá của khách hàng đó.
Bài làm
Để thiết lập tour du lịch tối ưu cho khách hàng dựa trên đánh giá của họ, công ty du
lịch có thể sử dụng thuật toán tối ưu hóa hoặc các phương pháp lập lịch và quyết
định dựa trên thông tin đánh giá của khách hàng. Dưới đây là một số ý tưởng và
phương pháp có thể được áp dụng:
- Thuật toán tối ưu hóa: Công ty du lịch có thể sử dụng các thuật toán tối ưu hóa để
tìm kiếm lộ trình du lịch tối ưu dựa trên các yếu tố như thời gian, khoảng cách, ngân
sách và các đánh giá của khách hàng. Các thuật toán như thuật toán di truyền, thuật
toán tìm kiếm cục bộ, thuật toán quy hoạch động, ... có thể được sử dụng để giúp tối
ưu hoá lộ trình du lịch dựa trên các ràng buộc và đánh giá từ khách hàng.
- Phân tích đánh giá khách hàng: Công ty du lịch có thể phân tích các đánh giá của
khách hàng để hiểu các yêu cầu và mong muốn của khách hàng. Các đánh giá này
có thể bao gồm các yêu cầu về địa điểm tham quan, hoạt động, dịch vụ, chất lượng
và dịch vụ khác. Dựa trên phân tích này, công ty du lịch có thể tạo ra các tour du
lịch đáp ứng các yêu cầu và mong muốn của khách hàng.
- Tư vấn và đề xuất: Công ty du lịch có thể sử dụng dữ liệu đánh giá của khách hàng
để đề xuất và tư vấn cho khách hàng về các tour du lịch phù hợp dựa trên sở thích
và đánh giá của họ
| 1/4

Preview text:

Tin học 11 Kết nối tri thức bài 28 Khởi động
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
1. Thiết kế chương trình theo mô đun
Hoạt động 1: Thiết kế chương trình theo mô đun
Thực hiện các bước thiết kế giải bài toán trên theo phương pháp làm mịn dần, trao
đổi và thảo luận để biết được cách thiết kế chương trình theo mô đun. Bài làm
Phương pháp thiết kế chương trình theo mô đun sẽ tách bài toán lớn thành các bài
toán nhỏ hơn, hay thành các mô đun, tương đối độc lập với nhau, sau đó tiến hành
thiết kế thuật toán và chương trình cho từng mô đun con. Mỗi mô đun có thể là một
số hàm hoặc thủ tục độc lập. Chương trình chính là một bản ghép nối các hàm và thủ tục con.
Câu hỏi 1. Chương trình trên được thiết kế có bao nhiêu mô đun? Bài làm
Chương trình trên được thiết kế có 3 mô đun.
Câu hỏi 2. Các mô đun của chương trình trên có quan hệ với nhau như thế nào? Bài làm
Phương pháp Thiết kế chương trình như trên được gọi là thiết kế theo mỗ đun. Mỗi
mô đun thường là các chức năng độc lập, riêng biết theo yêu cầu của chương trình.
Tuỳ thuộc vào từng bài toán và quan điểm thiết kế có thể tạo các mô đun này theo nhiều cách khác nhau.
2. Lợi ích của phương pháp thiết kế theo mô đun
Hoạt động 2: Tìm hiểu lợi ích của phương pháp thiết kế theo mô đun
Với chương trình đã có trong Hoạt động 1, em sẽ làm gì nếu có các yêu cầu bổ sung như sau:
1. Yêu cầu thay đổi thông tin trong báo cáo: Ghi hai mặt hàng có doanh số cao nhất
và bốn mặt hàng có doanh số thấp nhất.
2. Cập nhật, bổ sung các mặt hàng mới và doanh số trong ngày.
3. Yêu cầu làm thêm một báo cáo trong đó ghi doanh số bán trung bình trong ngày
và danh sách các mặt hàng có doanh số lớn hơn doanh số trung bình này, kết quả đưa ra tệp Data2.out.
Em có nhận xét gì về công việc thực hiện các công việc bổ sung này? Bài làm
Vì chương trình được thiết kế theo mô đun nên:
- Các mô đun được thiết lập một lần và sử dụng nhiều lần.
- Dễ dàng nâng cấp, thay đổi, chỉnh sửa mà không mất công sửa lại toàn bộ chương trình.
- Dễ dàng bổ sung các mô đun mới.
Câu hỏi 1. Phân loại các công việc bổ sung trên vào ba loại sau:
- Công việc mới hoàn toàn.
- Công việc nâng cấp một mô đun cũ.
- Công việc không liên quan đến thuật toán và lập trình. Bài làm
- Công việc mới hoàn toàn.
- Công việc nâng cấp một mô đun cũ.
- Công việc không liên quan đến thuật toán và lập trình.
Câu hỏi 2: Công việc sau đây, nếu có sẽ thuộc nhóm công việc nào? Nhập một giá
trị số nào đó, ví dụ K, cần tìm trong danh sách các mặt hàng có doanh số xấp xỉ K
(hơn kém nhau không quá hằng số C = 1). Bài làm
Công việc này sẽ thuộc vào nhóm công việc liên quan đến Tìm kiếm và Lọc dữ liệu. 3. Luyện tập
Câu hỏi 1. Nếu công việc bổ sung 3 có thêm yêu cầu in ra số lượng mặt hàng đã
bán trong ngày thì cần thêm hay sửa lệnh nào của chương trình BC2 Bài làm
Sửa lệnh prinf "in ra số lượng mặt hàng bán trong ngày"
Câu hỏi 2. Viết thêm một chương trình cho công việc bổ sung 4 như sau: Cần in ra
danh sách 1⁄3 số mặt hàng có doanh số thấp nhất trong ngày. Bài làm
def in_danh_sach_1_3_so_mat_hang_thap_nhat(s,p):
# Sắp xếp danh sách mặt hàng theo doanh số tăng dần p.sort(key=lambda x: x[s])
# Tính số lượng mặt hàng cần in (1/3 tổng số mặt hàng) so_luong_can_in = len(p) // 3
# In ra danh sách 1/3 số mặt hàng có doanh số thấp nhất
print("Danh sách 1/3 số mặt hàng có doanh số thấp nhất:")
for i in range(so_luong_can_in):
print(f"{i+1}. Mặt hàng {p[i][0]} - Doanh s: {p[i][p]}") 4. Vận dụng
Câu hỏi 1. Thiết lập chương trình cho công việc thường làm vào cuối giờ bán hàng:
Cho trước số K (một doanh số giả định), cần tìm ra mặt hàng có doanh số nhỏ hơn
K nhưng gần với K nhất. Bài toán này có thể sử dụng thuật toán tìm kiếm nào để giải? Bài làm
Chương trình sử dụng thuật toán tìm kiếm nhị phân để tìm mặt hàng có doanh số
nhỏ hơn K nhưng gần với K nhất trong danh sách mặt hàng đã được sắp xếp theo
thứ tự tăng dần của doanh số. def find_nearest_item(arr, K):
# Sắp xếp danh sách mặt hàng theo thứ tự tăng dần của doanh số arr.sort() low, high = 0, len(arr) - 1 result = None while low <= high:
mid = (low + high) // 2# Tính giá trị trung bình mid của low và high if arr[mid] < K:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid nhỏ hơn K
# Đặt low = mid + 1 để tìm phần tử lớn hơn K low = mid + 1 elif arr[mid] > K:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid lớn hơn K
# Đặt high = mid - 1 để tìm phần tử nhỏ hơn K high = mid – 1 else:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid bằng K
# Trả về mid làm kết quả result = mid break
# Cập nhật giá trị gần K nhất
if result is None or abs(arr[mid] - K) < abs(arr[result] - K): result = mid return arr[result] # Example usage
arr = [10, 20, 30, 40, 50, 60, 70, 80, 90] K = 45
nearest_item = find_nearest_item(arr, K)
print("Mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất là:", nearest_item)
Câu hỏi 2. Em hãy giúp công ty du lịch thiết lập tour du lịch tối ưu cho khách hàng
nếu biết trước các đánh giá của khách hàng đó. Bài làm
Để thiết lập tour du lịch tối ưu cho khách hàng dựa trên đánh giá của họ, công ty du
lịch có thể sử dụng thuật toán tối ưu hóa hoặc các phương pháp lập lịch và quyết
định dựa trên thông tin đánh giá của khách hàng. Dưới đây là một số ý tưởng và
phương pháp có thể được áp dụng:
- Thuật toán tối ưu hóa: Công ty du lịch có thể sử dụng các thuật toán tối ưu hóa để
tìm kiếm lộ trình du lịch tối ưu dựa trên các yếu tố như thời gian, khoảng cách, ngân
sách và các đánh giá của khách hàng. Các thuật toán như thuật toán di truyền, thuật
toán tìm kiếm cục bộ, thuật toán quy hoạch động, ... có thể được sử dụng để giúp tối
ưu hoá lộ trình du lịch dựa trên các ràng buộc và đánh giá từ khách hàng.
- Phân tích đánh giá khách hàng: Công ty du lịch có thể phân tích các đánh giá của
khách hàng để hiểu các yêu cầu và mong muốn của khách hàng. Các đánh giá này
có thể bao gồm các yêu cầu về địa điểm tham quan, hoạt động, dịch vụ, chất lượng
và dịch vụ khác. Dựa trên phân tích này, công ty du lịch có thể tạo ra các tour du
lịch đáp ứng các yêu cầu và mong muốn của khách hàng.
- Tư vấn và đề xuất: Công ty du lịch có thể sử dụng dữ liệu đánh giá của khách hàng
để đề xuất và tư vấn cho khách hàng về các tour du lịch phù hợp dựa trên sở thích và đánh giá của họ
Document Outline

  • Khởi động
  • 1. Thiết kế chương trình theo mô đun
  • 2. Lợi ích của phương pháp thiết kế theo mô đun
  • 3. Luyện tập
  • 4. Vận dụng