Bài 28 Thiết kế chương trình theo mô đun

Lớp 11Tin Học16 câu hỏiBài tập

Phần 1

Câu 1

(Câu 28.1 trang 81 SBT Tin học 11) Phương pháp thiết kế chương trình theo mô-đun có quan hệ như thế nào với phương pháp làm mịn dần?
APhương pháp thiết kế chương trình theo mô-đun là phương pháp làm mịn dần.
BPhương pháp thiết kế chương trình theo mô-đun hoàn toàn trái ngược với phương pháp làm mịn dần.
CPhương pháp thiết kế chương trình theo mô-đun chỉ dùng để vẽ giao diện, không liên quan đến làm mịn dần.
DPhương pháp thiết kế chương trình theo mô-đun chỉ dùng cho chương trình không có hàm.

Câu 2

(Câu 28.2 trang 81 SBT Tin học 11) Việc thiết kế chương trình theo mô-đun có phải là duy nhất không?
AKhông duy nhất, có thể có nhiều cách thiết lập các mô-đun khác nhau cho một chương trình.
BLuôn duy nhất, mọi bài toán chỉ có đúng một cách chia mô-đun.
CLuôn duy nhất nếu chương trình được viết bằng Python.
DKhông thể thiết kế chương trình theo mô-đun nếu bài toán có dữ liệu đầu vào từ tệp.

Phần 2

Câu 1

(Câu 28.3 trang 81 SBT Tin học 11) Bài toán: Cho danh sách tên học sinh và điểm trung bình cả năm trong tệp Lop11A.inp, cần tạo tệp Lop11A.out sắp xếp theo thứ tự giảm dần của điểm trung bình. Tìm hiểu cách thiết kế mô-đun cho bài toán này.
a)Có thể thiết kế chương trình thành ba mô-đun chính: NhapDL(), sapxep() và GhiDL().
b)Hàm NhapDL(fi) đọc dữ liệu đầu vào từ tệp văn bản và trả về hai mảng DS, Diem.
c)Hàm sapxep(A, B) có thể sắp xếp đồng thời hai dãy A, B theo tiêu chí của A.
d)Hàm GhiDL() dùng để nhập lại dữ liệu từ bàn phím, không liên quan đến tệp đầu ra.

Câu 2

(Câu 28.3 trang 81 SBT Tin học 11) Tìm hiểu vai trò của các mô-đun trong bài toán sắp xếp danh sách học sinh theo điểm trung bình.
a)DS là mảng lưu danh sách họ tên học sinh trong lớp.
b)Diem là mảng lưu điểm trung bình của học sinh trong lớp.
c)Sau khi sắp xếp, cần ghi dữ liệu DS và Diem ra tệp đầu ra Lop11A.out.
d)Khi thiết kế theo mô-đun, toàn bộ chương trình bắt buộc phải viết trong một hàm duy nhất, không được tách thành hàm con.

Câu 3

(Câu 28.4 trang 82 SBT Tin học 11) Tiếp tục bài toán ở Câu 28.3, bổ sung yêu cầu tra cứu theo tên và in thông tin ba bạn có điểm trung bình cao nhất lớp. Tìm hiểu các mô-đun cần bổ sung.
a)Các hàm đã xây dựng trong Câu 28.3 vẫn có thể được giữ nguyên.
b)Có thể bổ sung hàm BC1() để in ra tên và điểm số của ba bạn có điểm trung bình cao nhất.
c)Có thể bổ sung hàm YC1() để thực hiện yêu cầu tra cứu theo tên.
d)Khi bổ sung yêu cầu mới, bắt buộc phải xoá toàn bộ các mô-đun cũ và viết lại từ đầu.

Câu 4

(Câu 28.4 trang 82 SBT Tin học 11) Tìm hiểu hàm tachten(hoten) trong bài toán tra cứu học sinh theo tên.
a)Hàm tachten(hoten) có nhiệm vụ tách tên từ họ và tên đầy đủ.
b)Hàm YC1() có thể sử dụng hàm tachten(hoten) để phục vụ việc tra cứu theo tên.
c)Hàm tachten(hoten) giúp chương trình xử lí riêng phần tên của học sinh.
d)Hàm tachten(hoten) dùng để sắp xếp điểm trung bình theo thứ tự giảm dần.

Câu 5

(Câu 28.5 trang 82 SBT Tin học 11) Tiếp tục Câu 28.4, dữ liệu đầu vào đổi thành DSHS.inp, mỗi dòng gồm họ tên học sinh, ngày sinh và điểm trung bình. Tìm hiểu các mô-đun cần nâng cấp hoặc bổ sung.
a)Hàm NhapDL() cần được nâng cấp để đọc thêm thông tin ngày sinh.
b)Sau khi nâng cấp, NhapDL() có thể trả về ba mảng DS, NS và Diem.
c)NS là dãy lưu thông tin ngày sinh của học sinh.
d)Khi có thêm ngày sinh, không cần thay đổi hoặc bổ sung bất kì mô-đun nào.

Câu 6

(Câu 28.5 trang 82 SBT Tin học 11) Tìm hiểu cách xử lí ngày sinh trong bài toán ở Câu 28.5.
a)Ngày sinh dạng ngày-tháng-năm có thể được biến đổi thành bộ ba số nguyên dạng (năm, tháng, ngày).
b)Ví dụ “13-4-2005” có thể được chuyển thành (2005, 4, 13).
c)Việc chuyển ngày sinh thành dạng (năm, tháng, ngày) giúp thuận lợi khi sắp xếp theo ngày sinh tăng dần.
d)Ngày sinh luôn phải giữ nguyên dưới dạng xâu và không thể xử lí để sắp xếp.

Câu 7

(Câu 28.5 trang 82 SBT Tin học 11) Tìm hiểu hàm sapxep(A, B, C, reverse = False) trong phiên bản mở rộng của bài toán.
a)Hàm sapxep(A, B, C, reverse = False) sắp xếp đồng thời ba mảng A, B, C theo tiêu chí so sánh của A.
b)Nếu reverse = False thì sắp xếp theo thứ tự tăng dần của A.
c)Nếu reverse = True thì sắp xếp theo thứ tự giảm dần của A.
d)Hàm sapxep(A, B, C, reverse = False) chỉ sắp xếp được một mảng A, không liên quan đến B và C.

Câu 8

(Câu 28.5 trang 82 SBT Tin học 11) Tìm hiểu các mô-đun GhiDL2(), YC2() và dayVN(ns) trong bài toán mở rộng.
a)Hàm GhiDL2() ghi danh sách học sinh sau khi xử lí ra tệp DSHS.out.
b)Hàm YC2() đưa thông tin danh sách học sinh ra màn hình theo yêu cầu thứ hai.
c)Hàm dayVN(ns) biến đổi bộ ba (năm, tháng, ngày) thành xâu dạng ngày-tháng-năm.
d)Hàm dayVN(ns) dùng để xoá ngày sinh khỏi dữ liệu đầu vào.

Câu 9

(Câu 28.6 trang 82 SBT Tin học 11) Tiếp tục Câu 28.5, bổ sung yêu cầu in danh sách học sinh theo thứ tự từ điển, tên trước, họ đệm sau. Tìm hiểu các mô-đun cần bổ sung.
a)Có thể bổ sung hàm sapxepTD().
b)Có thể bổ sung hàm YC3().
c)Hàm sapxepTD(A, B, C) sắp xếp đồng thời ba mảng theo tiêu chí sắp xếp của A.
d)Để sắp xếp theo tên trước, họ đệm sau, chỉ cần sắp xếp theo điểm trung bình giảm dần.

Câu 10

(Câu 28.6 trang 82 SBT Tin học 11) Tìm hiểu hàm sapxepTD(A, B, C) trong bài toán sắp xếp họ tên học sinh.
a)Hàm sapxepTD(A, B, C) sắp xếp dãy xâu theo thứ tự từ điển.
b)Khi sắp xếp họ tên, tiêu chí là ưu tiên tên trước, họ đệm sau.
c)Hàm sapxepTD(A, B, C) vẫn cần giữ tương ứng dữ liệu giữa các mảng A, B, C.
d)Hàm sapxepTD(A, B, C) chỉ dùng để đọc tệp dữ liệu đầu vào, không thực hiện sắp xếp.

Câu 11

(Câu 28.7 trang 82 SBT Tin học 11) Viết và hoàn thiện chương trình cho Câu 28.3.
a)Chương trình cần có phần đọc dữ liệu từ tệp Lop11A.inp.
b)Chương trình cần sắp xếp danh sách học sinh theo thứ tự giảm dần của điểm trung bình.
c)Chương trình cần ghi kết quả ra tệp Lop11A.out.
d)Chương trình chỉ cần in dòng chữ “Hoàn thành”, không cần đọc, sắp xếp hay ghi dữ liệu.

Câu 12

(Câu 28.8 trang 82 SBT Tin học 11) Viết và hoàn thiện chương trình cho Câu 28.4.
a)Chương trình cần giữ lại các mô-đun đọc dữ liệu, sắp xếp và ghi dữ liệu của Câu 28.3.
b)Chương trình cần bổ sung chức năng tra cứu theo tên học sinh.
c)Chương trình cần bổ sung chức năng in thông tin ba bạn có điểm trung bình cao nhất.
d)Chương trình không cần dùng lại bất kì mô-đun nào của Câu 28.3.

Câu 13

(Câu 28.9 trang 82 SBT Tin học 11) Viết và hoàn thiện chương trình cho Câu 28.5.
a)Chương trình cần đọc dữ liệu từ tệp DSHS.inp.
b)Mỗi học sinh có thêm thông tin ngày sinh bên cạnh họ tên và điểm trung bình.
c)Chương trình cần sắp xếp danh sách học sinh theo ngày sinh tăng dần và ghi kết quả ra tệp DSHS.out.
d)Chương trình chỉ cần sắp xếp theo họ tên, không cần xử lí ngày sinh.

Câu 14

(Câu 28.10 trang 82 SBT Tin học 11) Viết và hoàn thiện chương trình cho Câu 28.6.
a)Chương trình cần bổ sung chức năng sắp xếp họ tên học sinh theo thứ tự từ điển, tên trước, họ đệm sau.
b)Có thể sử dụng hoặc xây dựng hàm sapxepTD() để thực hiện yêu cầu sắp xếp đặc biệt này.
c)Kết quả cần được đưa ra tệp theo yêu cầu của bài toán.
d)Yêu cầu Câu 28.6 không liên quan đến thiết kế theo mô-đun nên chỉ được viết bằng một lệnh duy nhất.