Bài 29 Thực hành thiết kế chương trình theo mô đun

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

Phần 1

Câu 1

(Câu 29.1 trang 82 SBT Tin học 11) Viết chương trình nhập từ bàn phím một dãy số nguyên, sau đó sắp xếp dãy này theo thứ tự tăng dần và in dãy đã sắp xếp ra màn hình trên một hàng ngang. Cách tổ chức chương trình theo mô-đun nào sau đây là phù hợp?
ATách chương trình thành các hàm nhập dãy số, sắp xếp dãy số và in dãy số đã sắp xếp.
BChỉ viết một lệnh print(), không cần nhập dữ liệu và không cần sắp xếp.
CChỉ tạo hàm xoá toàn bộ dãy số rồi in ra màn hình.
DChỉ tạo hàm đọc dữ liệu từ tệp Points.inp.

Câu 2

(Câu 29.2 trang 83 SBT Tin học 11) Bài toán cho ma trận số A vuông bậc n trong tệp Matran.inp và yêu cầu tính giá trị trung bình của tất cả các phần tử của A. Cách chia mô-đun nào sau đây là phù hợp?
AMô-đun đọc ma trận từ tệp, mô-đun tính trung bình các phần tử và mô-đun đưa kết quả ra màn hình.
BMô-đun vẽ ma trận, mô-đun tô màu ma trận và mô-đun xoá ma trận.
CMô-đun đọc xâu kí tự, mô-đun đếm xâu con và mô-đun ghi tệp String.out.
DMô-đun nhập phiếu bầu, mô-đun tìm người được bầu nhiều nhất và mô-đun ghi tên lớp trưởng.

Câu 3

(Câu 29.3 trang 83 SBT Tin học 11) Cho trước n điểm trên mặt phẳng, các điểm được đánh số từ 0 đến n - 1 và được cho trong tệp Points.inp. Cần tìm hai điểm có khoảng cách ngắn nhất. Kết quả cần đưa ra là gì?
AHai chỉ số của hai điểm có khoảng cách ngắn nhất.
BToạ độ của tất cả các điểm trong tệp.
CTổng hoành độ của các điểm.
DSố lượng điểm có trong tệp.

Câu 4

(Câu 29.4 trang 83 SBT Tin học 11) Với xâu Str = "abababacdaba" và xâu con sub = "aba", nếu đếm số lần lặp không chồng lấn của sub trong Str thì kết quả là bao nhiêu?
A3.
B4.
C2.
D0.

Câu 5

(Câu 29.5 trang 83 SBT Tin học 11) Trong bài toán bầu lớp trưởng, mỗi học sinh được phép đề cử từ 1 đến 3 ứng viên. Ứng viên nào được chọn làm lớp trưởng?
AỨng viên được đề cử nhiều nhất.
BỨng viên xuất hiện đầu tiên trong tệp.
CỨng viên xuất hiện cuối cùng trong tệp.
DỨng viên có tên ngắn nhất.

Câu 6

(Câu 29.6 trang 83 SBT Tin học 11) Trong bài toán ghép các thanh gỗ thành tam giác, hàm istamgiac(a, b, c) cần kiểm tra điều kiện nào?
ABa số a, b, c thoả mãn bất đẳng thức tam giác.
BBa số a, b, c có tổng bằng 0.
CBa số a, b, c đều là số âm.
DBa số a, b, c có tích bằng 1.

Câu 7

(Câu 29.7 trang 84 SBT Tin học 11) Trong bài toán tính chi phí lát sàn, mỗi dòng dữ liệu đầu vào gồm chiều ngang n, chiều dài d và đơn giá g. Chi phí lát sàn cho một căn hộ được tính bằng biểu thức nào?
An*d*g.
Bn + d + g.
Cn*d + g.
Dn + d*g.

Phần 2

Câu 1

(Câu 29.1 trang 82 SBT Tin học 11) Thiết kế chương trình nhập một dãy số nguyên từ bàn phím, sắp xếp tăng dần và in ra màn hình theo phương pháp mô-đun.
a)Có thể viết hàm nhapDL() để nhập dãy số nguyên từ bàn phím.
b)Có thể viết hàm sapxep(A) để sắp xếp dãy A theo thứ tự tăng dần.
c)Có thể viết hàm hienThi(A) để in dãy đã sắp xếp trên một hàng ngang.
d)Khi thiết kế theo mô-đun, bắt buộc phải viết toàn bộ chương trình trong một dòng lệnh duy nhất.

Câu 2

(Câu 29.1 trang 82 SBT Tin học 11) Tìm hiểu cách xử lí dữ liệu trong chương trình sắp xếp dãy số nguyên.
a)Dữ liệu đầu vào là một dãy số nguyên được nhập từ bàn phím.
b)Có thể chuyển các giá trị nhập vào thành kiểu int trước khi sắp xếp.
c)Sau khi sắp xếp, cần in dãy theo thứ tự tăng dần.
d)Muốn sắp xếp dãy số nguyên, chỉ cần đổi tên biến A thành B là đủ.

Câu 3

(Câu 29.2 trang 83 SBT Tin học 11) Thiết kế chương trình tính giá trị trung bình của tất cả các phần tử trong ma trận vuông A bậc n.
a)Tệp Matran.inp có hàng đầu tiên là số tự nhiên n.
b)n hàng tiếp theo trong tệp, mỗi hàng gồm n số, cách nhau bởi dấu cách.
c)Có thể viết mô-đun đọc dữ liệu để trả về ma trận A.
d)Vì ma trận vuông bậc n có n² phần tử nên chỉ cần lấy tổng chia cho n.

Câu 4

(Câu 29.2 trang 83 SBT Tin học 11) Tìm hiểu cách tính trung bình các phần tử của ma trận vuông.
a)Có thể dùng hai vòng lặp lồng nhau để tính tổng các phần tử của ma trận.
b)Số phần tử của ma trận vuông bậc n là n*n.
c)Giá trị trung bình bằng tổng các phần tử chia cho n*n.
d)Khi tính trung bình ma trận, chỉ cần cộng các phần tử trên dòng đầu tiên.

Câu 5

(Câu 29.3 trang 83 SBT Tin học 11) Thiết kế chương trình tìm hai điểm có khoảng cách ngắn nhất trong n điểm trên mặt phẳng.
a)Có thể viết mô-đun đọc dữ liệu từ tệp Points.inp để lấy danh sách các điểm.
b)Mỗi điểm được cho bởi một cặp toạ độ nguyên trên một dòng.
c)Có thể xét tất cả các cặp điểm để tìm cặp có khoảng cách nhỏ nhất.
d)Muốn tìm hai điểm gần nhất thì chỉ cần so sánh hai điểm đầu tiên trong tệp.

Câu 6

(Câu 29.3 trang 83 SBT Tin học 11) Tìm hiểu mô-đun tính khoảng cách giữa hai điểm.
a)Có thể viết hàm kc(P, Q) để tính khoảng cách giữa hai điểm P và Q.
b)Nếu P và Q có toạ độ lần lượt là (x₁, y₁) và (x₂, y₂), khoảng cách phụ thuộc vào hiệu hoành độ và hiệu tung độ của hai điểm.
c)Để tìm cặp điểm gần nhất, có thể lưu lại khoảng cách nhỏ nhất tạm thời và hai chỉ số tương ứng.
d)Khoảng cách giữa hai điểm luôn bằng tổng hai hoành độ của chúng.

Câu 7

(Câu 29.4 trang 83 SBT Tin học 11) Bài toán đếm số lần lặp không chồng lấn của xâu con sub trong các xâu mẹ được đọc từ tệp String.inp.
a)Dòng đầu tiên của tệp String.inp ghi xâu con sub.
b)Các dòng tiếp theo của tệp String.inp là các xâu kí tự cần xét.
c)Kết quả được lưu trong tệp String.out, mỗi dòng là số lần lặp không chồng lấn của sub trong xâu tương ứng.
d)Tệp String.out chỉ cần ghi lại nguyên văn xâu con sub, không cần ghi số lần lặp.

Câu 8

(Câu 29.4 trang 83 SBT Tin học 11) Tìm hiểu hàm scount(sub, Str) đếm số lần lặp không chồng lấn của xâu con sub trong xâu mẹ Str.
a)Hàm scount(sub, Str) là mô-đun quan trọng của chương trình.
b)Khi tìm thấy sub tại một vị trí, có thể tăng biến đếm thêm 1.
c)Để đếm không chồng lấn, sau khi tìm thấy sub cần chuyển vị trí xét tiếp theo qua khỏi xâu con vừa tìm thấy.
d)Đếm không chồng lấn nghĩa là mọi lần xuất hiện của sub đều được tính kể cả khi chúng dùng chung kí tự.

Câu 9

(Câu 29.5 trang 83 SBT Tin học 11) Thiết kế chương trình bầu lớp trưởng theo phương pháp mô-đun.
a)Có thể viết hàm NhapDL() để đọc dữ liệu đề cử từ tệp Phieu.inp.
b)Hàm NhapDL() có thể trả lại dãy tên các bạn được bình chọn.
c)Có thể viết hàm mode(A) để tìm giá trị xuất hiện nhiều nhất trong dãy A.
d)Người được bầu làm lớp trưởng là người xuất hiện ít nhất trong dãy đề cử.

Câu 10

(Câu 29.5 trang 83 SBT Tin học 11) Tìm hiểu dữ liệu đầu vào của bài toán bầu lớp trưởng.
a)Tệp Phieu.inp gồm nhiều dòng, mỗi dòng ứng với đề cử của một học sinh.
b)Mỗi dòng có thể ghi từ 1 đến 3 tên, cách nhau bởi dấu cách.
c)Cần tổng hợp tất cả các tên được đề cử để đếm số lần xuất hiện của từng ứng viên.
d)Mỗi dòng trong Phieu.inp bắt buộc phải ghi đúng 10 tên ứng viên.

Câu 11

(Câu 29.6 trang 83 SBT Tin học 11) Thiết kế chương trình đếm số tam giác có thể tạo được từ các thanh gỗ.
a)Có thể viết hàm NhapDL() để đọc dãy độ dài các thanh gỗ từ tệp Thanhgo.inp.
b)Có thể viết hàm istamgiac(a, b, c) để kiểm tra ba thanh gỗ có tạo thành tam giác hay không.
c)Có thể viết hàm tamgiac() để tính và đếm số tam giác có thể tạo được.
d)Chỉ cần biết thanh gỗ đầu tiên là đủ để tính được số tam giác có thể tạo ra từ toàn bộ dãy.

Câu 12

(Câu 29.6 trang 83 SBT Tin học 11) Tìm hiểu điều kiện tạo thành tam giác từ ba thanh gỗ.
a)Ba thanh gỗ có độ dài a, b, c tạo thành tam giác nếu tổng hai cạnh bất kì lớn hơn cạnh còn lại.
b)Cần xét các bộ ba thanh gỗ khác nhau trong dãy độ dài đã cho.
c)Kết quả cần ghi ra tệp Tamgiac.out là số tam giác có thể tạo được.
d)Ba thanh gỗ bất kì luôn tạo thành tam giác, không cần kiểm tra điều kiện nào.

Câu 13

(Câu 29.7 trang 84 SBT Tin học 11) Thiết kế chương trình tính chi phí lát sàn nhà theo phương pháp mô-đun.
a)Chương trình có thể gồm ba mô-đun chính: nhập dữ liệu từ tệp, xử lí dữ liệu và đưa dữ liệu ra.
b)Mỗi dòng dữ liệu đầu vào gồm chiều ngang, chiều dài và đơn giá lát mỗi mét vuông.
c)Hàm tinh_cp(n, d, g) có thể tính chi phí theo biểu thức n*d*g.
d)Chi phí lát sàn của mỗi căn hộ chỉ phụ thuộc vào chiều ngang, không phụ thuộc chiều dài và đơn giá.

Câu 14

(Câu 29.7 trang 84 SBT Tin học 11) Tìm hiểu mô-đun nhập dữ liệu và xử lí dữ liệu trong bài toán lát sàn.
a)Hàm nhapDL(finp) có thể nhận tham số finp là tên tệp dữ liệu đầu vào.
b)Kết quả của hàm nhập dữ liệu có thể là mảng A, mỗi phần tử là bộ ba (n, d, g).
c)Mô-đun xử lí dữ liệu nhận mảng A và tính chi phí cho từng bộ dữ liệu, đưa kết quả vào mảng C.
d)Mô-đun xử lí dữ liệu chỉ cần xoá toàn bộ dữ liệu đầu vào, không cần tính chi phí.

Câu 15

(Câu 29.7 trang 84 SBT Tin học 11) Tìm hiểu mô-đun ghi dữ liệu ra trong bài toán lát sàn.
a)Dữ liệu đầu ra cần ghi lại thông tin từng căn hộ gồm chiều ngang, chiều dài, đơn giá và chi phí lát sàn.
b)Dòng cuối của tệp dữ liệu ra cần ghi tổng toàn bộ chi phí lát sàn nhà của cả công trình.
c)Có thể viết mô-đun GhiDL() để ghi kết quả ra tệp Data.out.
d)Tệp dữ liệu ra chỉ cần ghi một số ngẫu nhiên, không cần liên quan đến dữ liệu đầu vào.