Lý thuyết Tin học 11 Kết nối tri thức bài 28
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.
Bài: Thiết kế chương trình theo Mô đun
A. Lý thuyết Tin học 11 bài 28
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
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.
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:
- 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")
B. Trắc nghiệm Tin học 11 bài 28
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. Tùy 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. Tùy 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. Tất cả đều sai
D. Tất cả đều đúng
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ể hiệ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
D. Tất cả đều đúng
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
D. Tất cả đều đúng
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
D. Tất cả đều đúng
>>> Bài tiếp theo: Lý thuyết Tin học 11 Kết nối tri thức bài 29