Lý thuyết Tin học 11 Bài 28 (Kết nối tri thức): Thiết kế chương trình theo Mô đun
Tóm tắt lý thuyết Tin học lớp 11 Bài 28: Thiết kế chương trình theo Mô đun hay, chi tiết sách Kết nối tri thức sẽ giúp học sinh nắm vững kiến thức trọng tâm, ôn luyện để học tốt Tin học 11.
Lý thuyết Tin học 11 Bài 28: Thiết kế chương trình theo Mô đun
A. Lý thuyết Thiết kế chương trình theo Mô đun
1. Thiết kế chương trình theo Mô đun
a) Thiết kế chung
- Chia bài toán thành ba công việc chính: nhập dữ liệu, xử lí dữ liệu, báo cáo và đưa dữ liệu ra.
- Các công việc độc lập với nhau.
b) Thiết lập công việc nhập dữ liệu
- Thiết lập hàm NhapDL(fin) đọc dữ liệu từ tệp Data.inp và đưa vào hai mảng P và S.
c) Thiết lập công việc xử lí dữ liệu
- Công việc chính là sắp xếp lại các mảng P, S theo thứ tự tăng dần của S.
- Hàm Sapxep(A,B) sắp xếp lại hai mảng A, B theo thứ tự tăng dần của A.
d) Thiết lập báo cáo, đưa dữ liệu ra
- Hàm GhiDL(P,S,fout) lấy dữ liệu từ hai mảng P, S và đưa dữ liệu ra tập fout.
- Mỗi công việc được viết thành một hàm riêng biệt, độc lập với nhau.
- Chương trình chính sử dụng các chương trình con trên được mô tả đơn giản như sau:

- Phương pháp thiết kế chương trình trên gọi là thiết kế theo mô đun.
- Mỗi mô đun 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.
- Có thể tạo các mô đun theo nhiều cách khác nhau tùy thuộc vào từng bài toán và quan điểm thiết kế.
2. Lợi ích của phương pháp thiết kế theo Mô đun
- Cần nâng cấp hàm GhiDL() để độc lập với các mô đun khác, chỉ thay đổi ở hai lệnh dòng 4 và 6.

- Công việc bổ sung thông tin các mặt hàng mới và doanh số vào tệp Data.inp rất đơn giản và không cần phải sửa chương trình.
- Công việc này có thể tách thành một hàm (mô đun) độc lập và giao cho một nhóm khác thực hiện, độc lập hoàn toàn với các công việc khác của bài toán.
- Hàm mới sẽ đặt tên là BC2() và có nội dung đơn giản như sau:

- So với mô đun gốc, , bản nâng cấp này chỉ cần sửa hai dòng lệnh 4 và 6.
- Trong chương trình chính cần bổ sung lệnh sau đây để thực hiện báo cáo mới này: BC2 (P, S, "Data2.out")

Sơ đồ tư duy Thiết kế chương trình theo Mô đun

B. Bài tập Thiết kế chương trình theo Mô đun
Câu 1: Ngôn ngữ lập trình bậc cao là ngôn ngữ
A. Có thể diễn đạt được mọi thuật toán.
B. Mà máy tính không hiểu trực tiếp được, chương trình viết trên ngôn từ bậc cao trước khi chạy phải dịch sang ngôn từ máy.
C. Thể hiện thuật toán theo những quy ước nào đó không phụ thuộc vào những máy tính đơn cử.
D. Sử dụng từ vựng và cú pháp của ngôn từ tự nhiên (tiếng Anh).
Câu 2: Trong các ý kiến sau, ý kiến nào xác đáng hơn cả
A. Sử dụng ngôn ngữ máy tốt hơn vì ta có thể can thiệp tới các xử lý tinh tế nhất trong các lệnh máy. Vì thể hiệu quả sẽ cao hơn
B. Sử dụng ngôn ngữ bậc cao là tốt nhất vì thời gian phát triển phần mềm nhanh hơn và ít mắc lỗi hơn
C. Sử dụng hợp ngữ tốt hơn vì hợp ngữ cho phép can thiệp sâu như mã máy mà vẫn không phải dùng mã số
D. Tuỳ từng trường hợp, nhưng nói chung nên dùng ngôn ngữ bậc cao để tăng hiệu suất phát triển phần mềm
Câu 3: Bàn về các loại ngôn ngữ lập trình có các ý kiến sau đây. Theo bạn ý kiến nào xác đáng nhất.
A. Sử dụng ngôn ngữ máy tốt hơn vì ta có thể can thiệp tốt nhất đến từng bước xử lý sơ cấp trong máy. Vì thế hiệu quả của phần mềm là cao nhât
B. Sử dụng ngôn ngữ bậc cao là tốt nhất vì thời gian phát triển phần mềm nhanh và ít bị
C. Sử dụng hợp ngữ tốt hơn cả vì hợp ngữ cho phép can thiệp ở mức thấp như ngôn ngữ máy, mặc dù lập trình có khó hơn ngôn ngữ bậc cao nhưng dễ hơn nhiều so với ngôn ngữ máy
D. Tuỳ từng trường hợp. Nói chung nên dùng ngôn ngữ bậc cao phù hợp với lĩnh vực ứng dụng vì hiệu suất phát triển phần mềm là cao nhất. Chỗ nào cần tối ưu mã chương trình thì mới dùng hợp ngữ. Nói chung không cần sử dụng ngôn ngữ máy vì hợp ngữ hầu như đã thể hiện chính ngôn ngữ máy
Câu 4: Câu nào đúng nhất trong định nghĩa một ngôn ngữ lập trình nói chung
A. Là ngôn ngữ cho phép thể hiện các dữ liệu trong bài toán mà các chương trình sẽ phải xử lý
B. Là ngôn ngữ dưới dạng nhị phân để máy tính có thực hiện trực tiếp
C. Là ngôn ngữ diễn đạt giải thuật để có thể giao cho máy tính thực hiện
D. Là ngôn ngữ có tên là "ngôn ngữ thuật toán" hay còn gọi là "ngôn ngữ bậc cao" gần với ngôn ngữ toán học cho phép mô tả cách giải quyết vấn đề độc lập với máy tính
E. Là hợp ngữ
Câu 5: Ngôn ngữ máy là:
A. Là bất cứ ngôn ngữ lập trình nào mà có thể diễn đạt thuật toán để giao cho máy tính thực hiện
B. Là ngôn ngữ thể hiện các chương trình mà mỗi chương trình là một dãy lệnh máy trong hệ nhị phân
C. Là các ngôn ngữ mà sau khi dịch sang hệ nhị phân thì máy có thể chạy được
Câu 6: Chọn phương án tốt nhất trong định nghĩa về hợp ngữ (assembly). Hợp ngữ là loại ngôn ngữ
A. Máy tính có thể thực hiện được trực tiếp không cần dịch
B. Là ngôn ngữ có các lệnh được viết trong mã chữ nhưng về cơ bản mỗi lệnh tương đương với một một lệnh máy. Để chạy được cần dịch ra ngôn ngữ máy
C. Là ngôn ngữ lập trình mà các lệnh không viết trực tiếp bằng mã nhị phân
D. Là loại ngôn ngữ không viết bằng mã nhị phân được thiết kế cho một số loại máy có thể chạy trực tiếp dưới dạng chữ
Câu 7: Quá trình dịch chỉ tạo ra các mô đun đối tượng. Để có một chương trình duy nhất, hoàn chỉnh và có thể chạy được còn cần phải liên kết (link). Trong các phát biểu sau, phát biểu nào sai:
A. Quá trình liên kết không bao giờ có lỗi
B. Tất cả các mô đun đối tượng đều được sinh từ chương trình của người lập trình viết, cũng có thể được tạo sẵn từ trước
Câu 8: Định nghĩa nào xác đáng nhất về ngôn ngữ bậc cao (ngôn ngữ thuật toán)
A. Ngôn ngữ dưới dạng văn bản thể thiện thuật toán theo những quy ước nào đó không phụ thuộc vào các máy tính cụ thể
B. Là loại ngôn ngữ máy không chạy trực tiếp được. Trước khi chạy phải dịch ra ngôn ngữ máy
C. Là loại ngôn ngữ có thể diễn đạt được mọi thuật toán
Câu 9: Có các khẳng định sau đây về chương trình dịch, khẳng định nào sai:
A. Chương trình dịch cho phép chuyển chương trình về ngôn ngữ máy để máy có thể thực hiện được mà vẫn bảo toàn được ngữ nghĩa
B. Chương trình dịch giúp có thể lập trình trên một ngôn ngữ tự nhiên hơn, do đó giảm nhẹ
C. Chương trình dịch giúp tìm ra tất cả các lỗi của chương trình
Câu 10: Các phần mềm sau đây, phần mềm nào là chương trình dịch
A. Winword
B. Turbo Pascal
C. Từ điển Lạc Việt
Trắc nghiệm Tin học 11 Bài 28: Thiết kế chương trình theo Mô đun
Câu 1: Mô đun nào thực hiện việc đọc dữ liệu từ tệp vào chương trình trong quá trình thiết kế chương trình theo mô đun?
A. GhiDL
B. NhapDL
C. Sapxep
D. XuLyDL
Đáp án: B
Giải thích: NhapDL là mô đun dùng để đọc dữ liệu từ tệp và đưa vào hai mảng chứa mặt hàng và doanh số.
Câu 2: Công việc nào sau đây thuộc nhóm "Công việc nâng cấp một mô đun cũ"?
A. Tạo báo cáo mới ghi doanh số bán trung bình trong ngày
B. Thay đổi số lượng mặt hàng có doanh số cao nhất trong báo cáo
C. Nhập thêm mặt hàng và doanh số mới vào tệp dữ liệu
D. Thực hiện báo cáo riêng cho khách hàng
Đáp án: B
Giải thích: Thay đổi số lượng mặt hàng yêu cầu cập nhật mô đun GhiDL để đưa thêm hoặc bớt dữ liệu ra báo cáo, không cần thiết kế mới.
Câu 3: Khi sắp xếp các mặt hàng theo thứ tự doanh số, mô đun nào sẽ thực hiện chức năng này?
A. NhapDL
B. GhiDL
C. Sapxep
D. InBaoCao
Đáp án: C
Giải thích: Mô đun Sapxep thực hiện sắp xếp mảng theo thứ tự doanh số, giúp xác định các mặt hàng bán cao nhất và thấp nhất.
Câu 4: Nếu cần tìm mặt hàng có doanh số xấp xỉ một giá trị K, công việc này thuộc nhóm nào?
A. Công việc mới hoàn toàn
B. Công việc nâng cấp một mô đun cũ
C. Công việc không liên quan đến thuật toán và lập trình
D. Không thuộc nhóm nào
Đáp án: A
Giải thích: Việc tìm mặt hàng có doanh số gần với K là một chức năng hoàn toàn mới, yêu cầu xây dựng một mô đun mới để thực hiện.
Câu 5: Phương pháp thiết kế chương trình theo mô đun có ưu điểm nào sau đây?
A. Làm chương trình ngắn gọn, dễ hiểu hơn
B. Giảm khả năng tái sử dụng các phần của chương trình
C. Hạn chế khả năng làm việc nhóm
D. Giảm tính linh hoạt khi chỉnh sửa chương trình
Đáp án: A
Giải thích: Thiết kế theo mô đun giúp chia nhỏ chương trình, làm cho chương trình ngắn gọn, dễ hiểu và dễ bảo trì hơn.
Câu 6: Mô đun nào sau đây có nhiệm vụ đưa dữ liệu ra báo cáo cuối ngày?
A. NhapDL
B. GhiDL
C. Sapxep
D. XuLyDL
Đáp án: B
Giải thích: Mô đun GhiDL đưa dữ liệu ra tệp báo cáo theo yêu cầu, bao gồm các mặt hàng có doanh số cao nhất và thấp nhất.
Câu 7: Nếu cần bổ sung thêm mặt hàng và doanh số mới vào tệp Data.inp, công việc này sẽ thuộc nhóm nào?
A. Công việc mới hoàn toàn
B. Công việc nâng cấp một mô đun cũ
C. Công việc không liên quan đến thuật toán và lập trình
D. Công việc kết hợp nhiều mô đun
Đáp án: C
Giải thích: Thao tác bổ sung thêm mặt hàng mới chỉ liên quan đến cập nhật tệp dữ liệu, không cần thay đổi thuật toán hay lập trình.
Câu 8: Để thực hiện công việc bổ sung ghi lại 2 mặt hàng có doanh số cao nhất và 4 mặt hàng có doanh số thấp nhất, cần chỉnh sửa mô đun nào?
A. NhapDL
B. GhiDL
C. Sapxep
D. XuLyDL
Đáp án: B
Giải thích: Thay đổi số lượng mặt hàng được ghi vào báo cáo yêu cầu chỉnh sửa mô đun GhiDL để điều chỉnh số lượng mặt hàng ghi ra.
Câu 9: Thiết kế chương trình theo mô đun giúp dễ dàng nâng cấp và bổ sung vì lý do nào sau đây?
A. Tất cả các mô đun được gộp thành một đoạn mã duy nhất
B. Mỗi mô đun hoạt động độc lập và thực hiện một chức năng riêng
C. Các mô đun không thể thay đổi hoặc cập nhật
D. Chỉ có một mô đun duy nhất nên không cần bổ sung thêm
Đáp án: B
Giải thích: Các mô đun độc lập và tự chứa nên có thể dễ dàng thay đổi hoặc bổ sung mà không ảnh hưởng tới toàn bộ chương trình.
Câu 10: Nếu muốn tạo thêm một báo cáo riêng ghi doanh số bán trung bình và các mặt hàng có doanh số lớn hơn mức trung bình, cần bổ sung mô đun nào?
A. NhapDL
B. GhiDL
C. Sapxep
D. BC2
Đáp án: D
Giải thích: BC2 là mô đun bổ sung để thực hiện công việc báo cáo riêng, ghi doanh số trung bình và các mặt hàng có doanh số cao hơn trung bình.
PHẦN II. Câu trắc nghiệm đúng sai. Thí sinh trả lời từ câu 1 đến câu 2. Trong mỗi ý a), b), c), d) ở mỗi câu, thí sinh chọn đúng hoặc sai
Câu 1: Trong phương pháp thiết kế chương trình theo mô đun, công việc "nhập dữ liệu từ tệp Data.inp và lưu vào hai mảng P và S" sẽ được thực hiện bởi mô đun nào?
a) Mô đun xử lý dữ liệu
b) Mô đun nhập dữ liệu
c) Mô đun báo cáo
d) Không mô đun nào thực hiện
a) Sai. Mô đun xử lý dữ liệu có nhiệm vụ sắp xếp các mặt hàng theo doanh số chứ không thực hiện việc nhập dữ liệu.
b) Đúng. Mô đun nhập dữ liệu là mô đun chịu trách nhiệm đọc dữ liệu từ tệp Data.inp và lưu vào các mảng P (mặt hàng) và S (doanh số).
c) Sai. Mô đun báo cáo chỉ đưa dữ liệu đã xử lý ra tệp kết quả, không thực hiện đọc dữ liệu từ tệp ban đầu.
d) Sai. Mô đun nhập dữ liệu là mô đun thực hiện công việc này.
Câu 2: Trong phương pháp thiết kế theo mô đun, công việc "tìm và sắp xếp các mặt hàng theo doanh số" sẽ được thực hiện bởi mô đun nào?
a) Mô đun nhập dữ liệu
b) Mô đun xử lý dữ liệu
c) Mô đun báo cáo
d) Không mô đun nào thực hiện
a) Sai. Mô đun nhập dữ liệu chỉ thực hiện đọc dữ liệu từ tệp vào các mảng mà không sắp xếp.
b) Đúng. Mô đun xử lý dữ liệu có nhiệm vụ sắp xếp các mặt hàng theo doanh số để đáp ứng yêu cầu của bài toán.
c) Sai. Mô đun báo cáo chỉ in kết quả ra tệp, không sắp xếp dữ liệu.
d) Sai. Công việc sắp xếp được thực hiện bởi mô đun xử lý dữ liệu, không phải là công việc không có mô đun thực hiện.
PHẦN III. Câu trả lời ngắn. Thí sinh trả lời từ câu 1 đến câu 3
Câu 1: Phân loại công việc bổ sung 1 vào nhóm nào?
Đáp án: Công việc bổ sung 1 thuộc nhóm "Công việc nâng cấp một mô đun cũ".
Giải thích: Để thay đổi báo cáo, chỉ cần chỉnh sửa một vài dòng trong hàm GhiDL(). Việc này không làm thay đổi logic của chương trình tổng thể mà chỉ nâng cấp một mô đun đã có.
Câu 2: Công việc nào không liên quan đến thuật toán và lập trình?
Đáp án: Công việc bổ sung 2.
Giải thích: Công việc này chỉ yêu cầu bổ sung dữ liệu vào tệp Data.inp, không ảnh hưởng đến thuật toán hay lập trình của chương trình. Chương trình có thể tự động xử lý dữ liệu mới khi được cập nhật.
Câu 3: Nếu cần thêm số lượng mặt hàng đã bán trong ngày trong công việc bổ sung 3, cần sửa hàm nào và thêm lệnh nào?
Đáp án: Cần sửa hàm BC2() và thêm lệnh print("Số lượng mặt hàng đã bán:", n, file=f).
Giải thích: : Để đếm và hiển thị số lượng mặt hàng, chỉ cần thêm dòng lệnh in số lượng mặt hàng vào tệp Data2.out, dựa vào độ dài của danh sách P
Xem thêm các bài lý thuyết Tin học 11 sách Kết nối tri thức hay, chi tiết tại:
Lý thuyết Bài 21: Các thuật toán sắp xếp đơn giản
Lý thuyết Bài 23: Kiểm thử và đánh giá chương trình
Lý thuyết Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Lý thuyết Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình
Lý thuyết Bài 30: Thiết lập thư viện cho chương trình
Xem thêm tài liệu Tin học lớp 11:
Giải Tin học 11 Bài 28: Thiết kế chương trình theo mô đun
Giỉa SBT Tin học 11 Bài 28: Thiết kế chương trình theo mô đun
Xem thêm các chương trình khác:
- Soạn văn lớp 11 Kết nối tri thức - hay nhất
- Văn mẫu lớp 11 - Kết nối tri thức
- Tóm tắt tác phẩm Ngữ văn 11 – Kết nối tri thức
- Tác giả tác phẩm Ngữ văn 11 - Kết nối tri thức
- Giải SBT Ngữ văn 11 – Kết nối tri thức
- Bố cục tác phẩm Ngữ văn 11 – Kết nối tri thức
- Giải Chuyên đề học tập Ngữ văn 11 – Kết nối tri thức
- Nội dung chính tác phẩm Ngữ văn lớp 11 – Kết nối tri thức
- Soạn văn 11 Kết nối tri thức (ngắn nhất)
- 100+ đề Đọc hiểu Ngữ Văn 11 (có đáp án)
- Giải sgk Toán 11 – Kết nối tri thức
- Giải Chuyên đề học tập Toán 11 – Kết nối tri thức
- Lý thuyết Toán 11 - Kết nối tri thức
- Giải sbt Toán 11 – Kết nối tri thức
- Bài tập Tiếng Anh 11 Global success theo Unit có đáp án
- Giải sgk Tiếng Anh 11 – Global success
- Giải sbt Tiếng Anh 11 - Global Success
- Trọn bộ Từ vựng Tiếng Anh 11 Global success đầy đủ nhất
- Ngữ pháp Tiếng Anh 11 Global success
- Giải sgk Vật lí 11 – Kết nối tri thức
- Lý thuyết Vật lí 11 – Kết nối tri thức
- Giải sbt Vật lí 11 – Kết nối tri thức
- Giải Chuyên đề học tập Vật lí 11 – Kết nối tri thức
- Chuyên đề dạy thêm Vật lí 11 cả 3 sách (2026 có đáp án)
- Giải sgk Hóa học 11 – Kết nối tri thức
- Giải Chuyên đề học tập Hóa học 11 – Kết nối tri thức
- Lý thuyết Hóa 11 - Kết nối tri thức
- Giải sbt Hóa học 11 – Kết nối tri thức
- Chuyên đề dạy thêm Hóa 11 cả 3 sách (2026 có đáp án)
- Giải sgk Sinh học 11 – Kết nối tri thức
- Lý thuyết Sinh học 11 – Kết nối tri thức
- Giải Chuyên đề học tập Sinh học 11 – Kết nối tri thức
- Giải sbt Sinh học 11 – Kết nối tri thức
- Giải sgk Giáo dục Kinh tế và Pháp luật 11 – Kết nối tri thức
- Giải Chuyên đề học tập Kinh tế pháp luật 11 – Kết nối tri thức
- Lý thuyết Kinh tế pháp luật 11 – Kết nối tri thức
- Giải sbt Kinh tế pháp luật 11 – Kết nối tri thức
- Giải sgk Lịch sử 11 – Kết nối tri thức
- Giải Chuyên đề học tập Lịch sử 11 – Kết nối tri thức
- Lý thuyết Lịch sử 11 - Kết nối tri thức
- Giải sbt Lịch sử 11 – Kết nối tri thức
- Giải sgk Địa lí 11 – Kết nối tri thức
- Giải Chuyên đề học tập Địa lí 11 – Kết nối tri thức
- Lý thuyết Địa lí 11 - Kết nối tri thức
- Giải sbt Địa lí 11 – Kết nối tri thức
- Giải sgk Công nghệ 11 – Kết nối tri thức
- Lý thuyết Công nghệ 11 - Kết nối tri thức
- Giải sbt Công nghệ 11 – Kết nối tri thức
- Giải sgk Giáo dục quốc phòng an ninh 11 – Kết nối tri thức
- Lý thuyết Giáo dục quốc phòng 11 – Kết nối tri thức
- Giải sbt Giáo dục quốc phòng 11 – Kết nối tri thức
- Giải sgk Hoạt động trải nghiệm 11 – Kết nối tri thức
