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.

1 4,347 08/08/2026


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:

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 (ảnh 1)

- 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

a) Công việc bổ sung 1

- 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.

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 (ảnh 1)

b) Công việc bổ sung 2

- 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) Công việc bổ sung 3

- 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:

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 (ảnh 1)

- 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")

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 (ảnh 1)

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

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 (ảnh 1)

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

1 4,347 08/08/2026


Xem thêm các chương trình khác: