Font size
WorksheetsUntitled Quiz
Total questions: 150
Worksheet time: 3hrs 30mins
Xác định độ phức tạp thời gian của đoạn mã Python sau:
for i in range(n):
print(i)
T(n) = O(1)
T(n) = O(n)
T(n) = O(n2)
T(n) = O(logn)
Xác định độ phức tạp thời gian của đoạn mã Python sau:
for i in range(n):
for j in range(n):
print(i, j)
O(n)
O(n2)
O(n3)
O(logn)
Xác định độ phức tạp thời gian của đoạn mã Python sau:
def test(n):
for i in range (n):
print()
T(n) = O(1)
T(n) = O(n)
T(n) = O(n2)
T(n) = O(logn)
[TH] Xác định độ phức tạp thời gian của đoạn mã Python sau:
for i in range(n):
for j in range(100):
print(i, j)
O(n)
O(n2)
O(logn)
O(1)
Xác định độ phức tạp thời gian của đoạn mã Python sau:
for i in range(n): print(i) for j in range(n): print(j)
O(n)
O(nlogn)
O(n2)
O(n3)
[TH] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): print(i) for j in range(n): print(j)
O(n)
O(n2)
O(n3)
O(logn)
Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): for j in range(n*n): print(i, j)
O(n)
O(n2)
O(n3)
O(n4)
Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): for j in range(i*i): print(i, j)
O(n2)
O(n3)
O(n4)
O(n5)
[TH] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): print("Hello") for k in range(n): for j in range(n): print(i)
O(n)
O(n3)
O(n2+n)=O(n2)
O(logn)
[VDT] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): for j in range(n): for k in range(10): print(i, j, k)
O(n)
O(n2)
O(n3)
O(n4)
Xác định độ phức tạp thời gian của đoạn mã Python sau: i = n while i > 0: i = i // 2
O(1)
O(logn)
O(n)
O(n2)
[TH] Xác định độ phức tạp thời gian của đoạn mã Python sau: i = n while i > 1: i = i // 2
O(n)
O(n2)
O(logn)
O(1)
Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n*n): print(i)
O(n)
O(n2)
O(n3)
O(logn)
Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): for j in range(n*n): print(i, j)
O(n)
O(n2)
O(n3)
O(logn)
Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(1000): print(i)
O(1)
O(n)
O(logn)
O(n2)
[TH] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): for j in range(n): print(i, j)
O(n)
O(nlogn)
O(n2)
O(n3)
[VDT] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): print("Done") for j in range(n): for k in range(n): print(j, k)
O(n)
O(n3)
O(n2+n)=O(n2)
O(logn)
[TH] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): print(i) for j in range(n*n): print(j)
O(n)
O(n3)
O(n+n2)=O(n2)
O(n4)
[VDT] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): for j in range(n): for k in range(n*n): print(i, j, k)
O(n2)
O(n3)
O(n4)
O(n5)
[TH] Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n*n): for k in range(n): for j in range(n): print(i, k, j)
O(n2)
O(n3)
O(n4)
O(n5)
Xác định độ phức tạp thời gian của đoạn mã Python sau: for i in range(n): for j in range(n): print(i, j)
T(n) = O(1)
T(n) = O(logn)
T(n) = O(n2)
T(n) = O(n3)
[VDT] Xác định độ phức tạp thời gian của đoạn mã Python sau: i = 1 while i < n: i = i * 2
O(logn)
O((logn)2)
O(n)
O(nlogn)
Phương pháp làm mịn dần trong thiết kế chương trình là gì?
Phương pháp làm giảm số lượng mã lệnh trong chương trình
Phương pháp chi tiết hóa các bước từ ý tưởng tổng quan đến từng hành động cụ thể
Phương pháp kiểm tra lỗi sau khi viết xong chương trình
Phương pháp tổ chức dữ liệu theo thứ tự tăng dần
Khi thiết kế chương trình theo phương pháp làm mịn dần, bước đầu tiên cần thực hiện là gì?
Xác định đầu vào và đầu ra của bài toán
Viết toàn bộ chương trình
Kiểm tra lỗi
Thực hiện từng thao tác cụ thể
Phương pháp làm mịn dần trong thiết kế chương trình giúp gì cho lập trình viên?
Tăng tốc độ chạy chương trình
Giảm dung lượng bộ nhớ chương trình
Làm rõ từng bước của chương trình, dễ dàng chuyển ý tưởng thành câu lệnh
Tự động phát hiện lỗi cú pháp
Sau khi hoàn thành phương pháp làm mịn dần, kết quả cuối cùng là:
Một chương trình hoàn chỉnh với các bước chi tiết
Một danh sách lỗi và cách khắc phục
Một sơ đồ khối không có mã lệnh
Một tài liệu mô tả yêu cầu mà chưa có thuật toán
[TH] Thuật ngữ tiếng Anh của “làm mịn dần” là:
Step-by-step design
Top-down refinement
Bottom-up refinement
Divide and conquer
Mục đích chính của làm mịn dần là:
Tăng tốc độ thực thi chương trình
Dễ kiểm soát, dễ lập trình và dễ mở rộng
Làm cho chương trình chạy đẹp hơn
Giảm bộ nhớ sử dụng
[TH] Trong một chu trình tính điểm trung bình, bước làm mịn phù hợp nhất là:
Nhập điểm → Tính trung bình → In kết quả
Xác định biến trung gian để lưu tổng điểm
Viết vòng lặp for
Xác định cấu trúc dữ liệu danh sách
Làm mịn dần phù hợp nhất với giai đoạn nào của lập trình?
Kiểm thử chương trình
Viết chương trình hoàn chỉnh
Thiết kế thuật toán trước khi lập trình
Bảo trì sau khi chạy thực tế
Phân rã theo làm mịn dần: lựa chọn nào sau đây không phải là lợi ích của phương pháp làm mịn dần?
Chương trình dễ bảo trì
Giảm lỗi logic nhờ mô tả rõ ràng
Giúp viết code nhanh hơn ngay từ đầu
Giúp tổ chức chương trình có cấu trúc
[TH] Ví dụ của làm mịn dần:
Từ “Tính tổng dãy số” → “Nhập n → lặp → cộng dồn → in tổng”
Viết 1 chương trình từ trên xuống dưới
Gộp thủ tục từ nhiều đoạn lệnh khi chạy
Dùng công cụ AI viết hộ
[TH] Khi làm mịn dần, cách tiếp cận phù hợp là:
Thiết kế theo hướng thuật toán hóa
Thiết kế hướng chi tiết ngay
Thiết kế từ trên xuống
Thiết kế module hóa
Khi làm mịn dần, mỗi bước làm mịn phải:
Ưu tiên hoá tốc độ
Ngắn hơn 3 dòng
Chi tiết hơn mức trước
Có mã nguồn Python tương ứng
Trong làm mịn dần, mức mô tả chi tiết nhất là:
Mã giả
Mã nguồn thật
Sơ đồ khối
Danh sách module
Bước đầu tiên của làm mịn dần là:
Viết mã nguồn chi tiết
Xác định dữ liệu vào – ra
Mô tả thuật toán tổng quát
Chạy thử chương trình
Dấu hiệu cho thấy mô tả đã đủ mịn:
Có thể dịch thành chương trình ngay
Đã chạy thử
Chỉ còn 2 bước
Không có vòng lặp
Trong làm mịn dần, điều quan trọng nhất là:
Viết code ngắn
Mỗi bước phải rõ ràng, logic
Dùng nhiều hàm
Tránh dùng vòng lặp
[TH] Phương pháp làm mịn dần đặc biệt hữu ích cho:
Bài toán không có thuật toán rõ ràng
Bài toán lớn, nhiều bước xử lý
Bài toán chỉ có 2–3 lệnh
Chương trình đã có sẵn
[TH] Trong làm mịn dần, nếu mô tả mức chi tiết không thể tiếp tục cụ thể hóa, ta nên:
Giữ nguyên mô tả
Chuyển mô tả đó sang giai đoạn viết mã nguồn
Quay lại mức cao hơn và điều chỉnh lại
Bỏ toàn bộ mô tả và viết lại từ đầu
[VDT] Ví dụ nào dưới đây không phải là bước làm mịn dần thực sự?
“Tính tổng mảng” → “Duyệt từng phần tử” → “Cộng vào biến tổng”
“Sắp xếp mảng” → “Chọn thuật toán sắp xếp” → “Viết code”
“Kiểm tra số nguyên tố” → “Duyệt từ 2 đến căn n” → “Kiểm tra chia hết”
“Tính trung bình” → “Nhập n” → “Tính tổng” → “Chia cho n”
[TH] Trong làm mịn dần, một sai lầm thường gặp khiến chương trình khó hoàn thiện là:
Chia nhỏ quá chậm
Làm mịn quá mức chi tiết ngay từ bước đầu
Không dùng hàm
Dùng nhiều biến trung gian
Khi mô tả đã được làm mịn đến mức có thể viết code ngay, bước tiếp theo là:
Chuyển sang viết mã
Kiểm thử
Chọn kiểu dữ liệu chuẩn xác
Phân tích lại bài toán
[VDT] Cho mô tả sau cho bài toán “Tính tiền điện”: “Mức 1: Tính tiền điện → Mức 2: Nhập chỉ số → Tính số kWh → Tính tiền → In kết quả”. Để tiếp tục làm mịn bước Tính tiền, lựa chọn nào đúng?
Chia nhỏ theo các mức giá điện
Viết luôn đoạn code if–else
Thay đổi biến đầu vào
Tăng mức giá để tính nhanh hơn
[TH] Phương pháp làm mịn dần đặc biệt phù hợp với dạng nào sau đây?
Bài toán có nhiều bước xử lý liên tiếp
Bài toán yêu cầu tối ưu hóa tốc độ
Bài toán không có thuật toán rõ ràng
Bài toán đơn giản chỉ có một phép tính
Khi nào không nên tiếp tục làm mịn?
Khi mô tả đã tương ứng 1–1 với mã nguồn
Khi mô tả vẫn còn tổng quát
Khi chi tiết còn mơ hồ
Khi bài toán còn chưa rõ yêu cầu
Trong phương pháp làm mịn dần, bước đầu tiên khi thiết kế chương trình là gì?
Viết mã nguồn chi tiết
Xác định dữ liệu vào/ra
Chạy thử chương trình trước
Tối ưu hoá vòng lặp ngay từ đầu
Trong quy trình làm mịn dần, khi một bước lớn đã rõ ràng, ta làm gì tiếp theo?
Tạm dừng và viết giao diện chương trình
Chia bước đó thành các bước con nhỏ hơn, rõ ràng hơn
Viết mã lệnh chi tiết ngay lập tức
Xoá bước đó và làm lại từ đầu
Điểm quan trọng khi ghi chép các bước trong phương pháp làm mịn dần là gì?
Càng dài càng tốt
Càng ngắn càng tốt, miễn đúng logic
Viết các bước rõ ràng, dễ hiểu và có mức chi tiết phù hợp
Phải giống y hệt sách giáo khoa
[TH] Trong phương pháp làm mịn dần, vì sao phải chia bước lớn thành bước nhỏ?
Để viết được nhiều mã hơn
Để mã ngắn lại
Giúp thuật toán dễ hiểu, dễ triển khai và dễ kiểm tra
Vì giáo viên yêu cầu
[TF4] Khi thiết kế chương trình theo phương pháp làm mịn dần, bước đầu tiên thường là:
Viết mã hoàn chỉnh ngay từ đầu
Tìm hiểu yêu cầu bài toán, xác định đầu vào và đầu ra của bài toán
Chia bài toán thành các phần nhỏ và tiến hành làm mịn từng phần
Thực hiện từng bước chi tiết theo thứ tự mà không cần phân tích tổng thể
[TF4] Trong phương pháp làm mịn dần, khi thiết kế thuật toán sắp xếp chèn, bước nào sau đây là đúng?
Đầu tiên, chèn phần tử A[i] vào đúng vị trí rồi mới tiến hành duyệt các phần tử còn lại
Tạo biến value lưu phần tử đang xét, sau đó dịch chuyển các phần tử lớn hơn value sang phải
Chỉ cần kiểm tra điều kiện A[j] < A[i] để xác định vị trí chèn phần tử
Thực hiện tất cả các thao tác trên cùng một dòng lệnh để tăng hiệu suất
Khi thiết kế chương trình theo làm mịn dần, tại sao cần xác định rõ dữ liệu vào/ra của từng mô-đun?
Để dễ dàng kiểm soát lỗi khi triển khai mã nguồn.
Vì đây là yêu cầu bắt buộc của mọi ngôn ngữ lập trình.
Để mô-đun có thể hoạt động độc lập và dễ thay thế.
Để giảm độ dài của thuật toán.
Trong quá trình làm mịn dần, lỗi nào sau đây thường gặp nhất?
Chia bước quá nhỏ dẫn đến rối và dư thừa.
Mô tả bước làm mịn quá lớn, chưa đủ chi tiết để lập trình.
Không thống nhất tên biến giữa các mô-đun.
Mô tả bước làm mịn không khớp với mục tiêu tổng quát của thuật toán.
Trong phương pháp làm mịn dần, điều gì giúp xác định khi nào một bước đã đủ chi tiết để chuyển sang bước lập trình?
Khi bước đó có thể mô tả bằng một hoặc vài dòng lệnh.
Khi không còn có thể chia nhỏ bước đó một cách hợp lý.
Khi giáo viên cho phép viết mã.
Khi bước đó có rõ đầu vào – đầu ra và thao tác xử lý.
Trong phương pháp làm mịn dần, bước nào sau đây thể hiện đúng nguyên tắc “giảm dần mức trừu tượng”?
Viết chi tiết từng dòng lệnh ngay sau bước mô tả tổng quát đầu tiên.
Chuyển từ mô tả chung → mô tả trung bình → mô tả chi tiết.
Thay đổi thứ tự các bước tùy cảm hứng lập trình.
Viết luôn mã nguồn sau khi xác định được tên các mô-đun.
Khi làm mịn bài toán “Tính tổng các số chẵn trong mảng”, bước nào là chi tiết hợp lý?
Gọi hàm sum trực tiếp.
Lặp qua từng phần tử và kiểm tra số chẵn.
Sắp xếp mảng trước.
Tạo một mảng mới.
Một thuật toán được mô tả: “Tính tổng các phần tử dương trong mảng.” Bước làm mịn đúng nhất là:
“Duyệt từng phần tử, nếu dương thì cộng vào tổng.”
“Tính tổng.”
“Lọc số dương rồi xử lý.”
“Lặp lại cho đến khi hết mảng.”
Khi làm mịn thuật toán tìm số lớn nhất trong mảng, bước làm mịn chi tiết đúng là:
Đặt max = phần tử đầu tiên; duyệt từ phần tử thứ hai; nếu phần tử > max → cập nhật max.
So sánh tất cả các số cùng lúc.
In ra số lớn nhất.
Sắp xếp mảng rồi lấy phần tử cuối.
Trong bài toán mô phỏng việc rút tiền ATM, bước làm mịn hợp lý là:
Kiểm tra số tiền yêu cầu có chia hết cho 50,000 hay không.
Rút tất cả tiền.
Cộng tiền vào tài khoản.
Không cần bước kiểm tra.
Khi làm mịn bài toán phân loại học sinh theo điểm:
Nếu điểm ≥ 8 → Giỏi; điểm ≥ 6.5 → Khá; điểm ≥ 5 → Trung bình; còn lại → Yếu.
Tính tổng lớp.
Chỉ xét điểm Toán.
Tính điểm trung bình.
Làm mịn bài toán kiểm tra mật khẩu mạnh:
Kiểm tra có chữ hoa, chữ thường, số, ký tự đặc biệt.
Kiểm tra độ dài chuỗi.
Tính tổng số ký tự.
Kiểm tra số chữ thường.
Đâu là bước chưa đủ mịn khi thiết kế chương trình nhập và in ra số lớn nhất trong 3 số?
Nhập a,b,c .
So sánh và chọn số lớn nhất.
In kết quả.
Kiểm tra từng cặp số và cập nhật biến max.
Khi mô tả bước “Kiểm tra số hoàn hảo”, đâu là phiên bản làm mịn lần 1 hợp lý nhất?
Tính tổng ước rồi so sánh với n .
Lặp từ 1 đến n−1 .
Kiểm tra theo định nghĩa.
Nhập n , tìm tổng ước nhỏ hơn n , so sánh.
Bài toán: “Tính điểm trung bình 3 môn.” Làm mịn sao đi đáp án nào?
Nhập điểm 3 môn.
Kiểm tra điểm hợp lệ.
Tính tổng.
In ra điểm lớn nhất.
Bạn được giao bài toán: “Tìm phần tử xuất hiện nhiều nhất trong mảng.” Bước nào sau đây không nên thực hiện ở giai đoạn làm mịn đầu?
Chọn cấu trúc dữ liệu hỗ trợ đếm tần suất.
Viết hàm hỗ trợ tìm tần suất.
Cài đặt Python ngay.
Phân rã bài toán thành 2 nhiệm vụ: đếm tần suất → tìm max.
Đang làm mịn bài toán “Kiểm tra đối xứng chuỗi”. Bước hợp lý nhất là:
Đảo chuỗi rồi so sánh.
Duyệt hai đầu và so sánh từng cặp.
In ra “đối xứng”.
Kiểm tra ký tự đầu và cuối giống nhau.
Bạn cần làm mịn dần bài toán “Kiểm tra mảng chỉ chứa số dương”. Trong 4 mô tả sau, đâu là thứ tự làm mịn hợp lý?
Duyệt mảng → Kiểm tra từng phần tử → Nếu có phần tử ≤ 0 thì kết luận sai → In kết quả.
Nếu có phần tử ≤ 0 thì kết luận sai → Duyệt mảng → Kiểm tra từng phần tử → In kết quả.
Duyệt mảng → Nếu có phần tử ≤ 0 thì kết luận sai → In kết quả → Kiểm tra từng phần tử.
In kết quả → Kiểm tra từng phần tử → Duyệt mảng → Nếu có phần tử ≤ 0 thì kết luận sai.
Với bài toán làm mịn dần, bước nào sau đây là bước tổng quát nhất (làm mịn lần 1)?
Viết mã chương trình ngay.
Chia bài toán thành các nhiệm vụ chính.
Tối ưu bộ nhớ.
Kiểm thử đầu vào.
Bước nào không phải là làm mịn?
Thêm chi tiết vào từng thao tác.
Chuyển từ mô tả tự nhiên sang mô tả gần giống mã giả.
Viết mã Python hoàn chỉnh.
Bổ sung điều kiện kiểm tra.
Mục đích chính của làm mịn thuật toán là:
Làm bài dài hơn.
Giúp lập trình viên hiểu rõ từng bước.
Chuyển thuật toán thành mã ngay lập tức.
Tạo thêm nhiều hàm con.
Làm mịn bài toán “Tính trung bình cộng của mảng” nên bắt đầu bằng:
Nhập mảng.
Tính tổng mảng.
Chia tổng cho số phần tử.
In kết quả.
Đâu là bước làm mịn sai khi tìm số nhỏ nhất trong mảng?
Giả sử min = phần tử đầu tiên.
So sánh từng phần tử với min.
Cập nhật min khi cần.
Sắp xếp mảng rồi lấy phần tử đầu tiên.
Trong làm mịn lần 2, mức độ chi tiết là:
Tổng quát nhất.
Rất chi tiết như mã giả hoàn chỉnh.
Chi tiết vừa phải: phân rã từng bước chính.
Không thêm chi tiết.
Bài toán: “Đếm số phần tử âm”. Bước nào thuộc làm mịn hợp lý?
Sắp xếp mảng.
Tạo biến đếm = 0 .
Vẽ lưu đồ.
Gọi thư viện ngoài.
Đâu là phiên bản làm mịn lần 1 đúng cho bài toán kiểm tra đối xứng chuỗi?
So sánh từng cặp ký tự.
Đảo chuỗi.
Nhập chuỗi → Xác định cách kiểm tra → Kết luận.
In kết quả.
Làm mịn bài toán: “Tìm số lượng số chia hết cho k ”. Bước nào không cần thiết?
Duyệt từng phần tử.
Kiểm tra a[i]%k==0 .
Tăng biến đếm.
Sắp xếp mảng.
Bước làm mịn cho bài toán "Tìm vị trí phần tử x đầu tiên trong mảng" là gì?
Dừng thuật toán sớm
Duyệt mảng từ đầu đến cuối
Lấy phần tử ở giữa
Tạo mảng mới
Đâu là mô tả quá mịn?
Kiểm tra điều kiện
Duyệt từng phần tử
Viết từng câu lệnh if bằng Python
Tính tổng
Trong bài toán phân loại điểm, bước nào là làm mịn đúng?
Kiểm tra điểm lớn hơn hoặc bằng 8
In "Giỏi"
Tính trung bình lớp
Sắp xếp danh sách học sinh
Bài toán: "Tính tổng các số lẻ trong mảng". Đâu là bước làm mịn sai?
Nếu số đó là lẻ thì cộng vào tổng
Tạo biến tổng = 0
Nhập mảng
Sắp xếp mảng trước
Trong thiết kế thuật toán kiểm tra hoán vị, bước nào sau đây phù hợp để đảm bảo đây là một hoán vị của dãy số 1, 2, ..., n?
Kiểm tra độ dài của dãy A và đảm bảo độ dài bằng n
Kiểm tra xem tất cả các số từ 1 đến n có mặt trong dãy A hay không
Tính tổng các phần tử trong dãy A và so sánh với tổng của dãy từ 1 đến n
Sắp xếp dãy A và so sánh với dãy 1, 2, ..., n
Trong nhiệm vụ đếm số lần lặp, bước nào dưới đây là hợp lý để tính số lần lặp của từng phần tử trong dãy A theo phương pháp làm mịn dần?
Sử dụng một vòng lặp để duyệt từng phần tử của dãy A và đếm số lần xuất hiện của nó
Sử dụng một hàm lặp để tính số lần lặp của một phần tử trong dãy A
Sắp xếp dãy A để đếm số lần xuất hiện của các phần tử liền kề nhau
So sánh mỗi phần tử với tất cả phần tử phía sau nó để kiểm tra trùng lặp
Lợi ích của phương pháp thiết kế theo mô đun là gì?
Dễ dàng bổ sung các mô đun mới
Chương trình chạy nhanh hơn
Các mô đun chỉ cần được sử dụng một lần
Không ai được phép thay đổi, chỉnh sửa mô đun
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ũ"?
Tạo báo cáo mới ghi doanh số bán trung bình trong ngày
Thay đổi số lượng mặt hàng có doanh số cao nhất trong báo cáo
Nhập thêm mặt hàng và doanh số mới vào tệp dữ liệu
Thực hiện báo cáo riêng cho khách hàng
Để 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?
NhapDL
GhiDL
Sxepx
XuLyDL
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?
Tất cả các mô đun được gộp thành một đoạn mã duy nhất
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 mô đun không thể thay đổi hoặc cập nhật
Chỉ làm mịn khi đã chia mô đun xong
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?
Mô đun xử lý dữ liệu
Mô đun nhập dữ liệu
Mô đun báo cáo
Không mô đun nào thực hiện
Trong thiết kế chương trình theo mô đun tính điểm tổng hợp của vận động viên, vai trò của mô đun nhapDL(inp) là gì?
Đọc dữ liệu từ tệp, trả về danh sách mã số và điểm số của các vận động viên
Tính điểm trung bình của từng vận động viên dựa trên điểm của giám khảo
Ghi kết quả điểm tổng hợp vào tệp đầu ra
Sắp xếp điểm tổng hợp theo thứ tự giảm dần và ghi vào tệp
Phát biểu nào dưới đây sai về thiết kế chương trình theo mô đun?
Tách bài toán lớn thành các bài toán con, sau đó thiết kế thuật toán và chương trình cho từng bài toán con
Phát triển một bài toán lớn thành các bài toán lớn hơn rồi thiết kế cho từng bài toán lớn đó
Mỗi mô đun có thể là một số hàm hoặc thủ tục độc lập
Chương trình chính là một bản ghép nối các hàm và thủ tục con
Ý nào sau đây không phải là lợi ích của việc thiết kế chương trình theo mô đun?
Chương trình ngắn gọn, sáng sủa, dễ hiểu, dễ dàng bổ sung các mô đun mới
Các mô đun được thiết lập một lần và sử dụng nhiều lần
Dễ dàng nâng cấp, thay thế, chỉnh sửa mà không sợ làm xấu chất lượng toàn bộ chương trình
Không thể chia sẻ trong môi trường làm việc nhóm do các mô đun phụ thuộc lẫn nhau
Sắp xếp đúng thứ tự các bước thực hiện chương trình thiết kế theo mô đun: (1) Tách bài toán thành các bài toán nhỏ hơn. (2) Viết chương trình chính để ghép nối các hàm và thủ tục con. (3) Thiết kế thuật toán và chương trình cho từng mô đun con.
(3) -> (2) -> (1)
(2) -> (3) -> (1)
(1) -> (2) -> (3)
(1) -> (3) -> (2)
Khi thiết kế chương trình cần thiết có tối đa bao nhiêu mô đun?
1
2
5
Không giới hạn
Công ty XYZ đã có một chương trình quản lý bán hàng với nhiều tính năng khác nhau. Công ty muốn bổ sung tính năng khai thác thông tin lấy ý kiến phản hồi từ khách hàng. Công việc của người lập trình phần mềm thuộc loại công việc nào khi thiết kế chương trình theo mô đun?
Nâng cấp mô đun
Chỉnh sửa mô đun
Tạo mô đun mới
Thay đổi yêu cầu bài toán
Mối quan hệ giữa làm mịn dần và thiết kế theo mô đun là gì?
Hai khái niệm hoàn toàn không liên quan
Làm mịn dần giúp chia chương trình thành các mô đun hợp lý
Mô đun chỉ dùng ở bài toán lớn
Chỉ làm mịn khi đã chia mô đun xong
[TF4] Trong thiết kế mô-đun theo làm mịn dần, điều nào sau đây là đặc trưng tốt của một mô-đun?
Mỗi mô-đun chỉ thực hiện một nhiệm vụ rõ ràng.
Mô-đun càng lớn càng tốt để giảm số lượng mô-đun.
Mô-đun độc lập với mô-đun khác càng nhiều càng tốt.
Mọi mô-đun cần truy cập tất cả biến toàn cục để dễ dùng.
[TF4] Điểm khác biệt lớn nhất giữa “làm mịn dần” và “chia bài toán thành mô đun” là:
Làm mịn dần giúp chia bài toán thành các mô đun độc lập
Làm mịn dần tập trung từ tổng quát → chi tiết, còn mô đun hóa tập trung vào chức năng độc lập
Mô đun hóa không dùng trong bài toán lớn
Hai phương pháp hoàn toàn giống nhau
[TH] Các hàm có sẵn trong thư viện như sum, min, max được coi là gì trong chương trình?
Các mô đun vì chúng thực hiện chức năng độc lập và có thể tái sử dụng.
Không phải mô đun vì chúng không do người lập trình tự viết.
Không phải mô đun vì chỉ có mô đun xử lý mới được gọi là mô đun.
Không phải mô đun vì không thể chỉnh sửa mã bên trong.
Chương trình dưới đây có mấy mô đun? Mã Python: def is_prime(number): if number < 2: return False for i in range(2, int(number**0.5) + 1): if number % i == 0: return False return True input_numbers = input("Nhập dãy số, cách nhau bởi dấu cách:") numbers = [int(num) for num in input_numbers.split()] for number in numbers: if is_prime(number): print(f"{number} là số nguyên tố.") else: print(f"{number} không là số nguyên tố.")
1
2
3
Không có mô đun nào
Quan sát chương trình chính dưới đây và cho biết chương trình đã xây dựng bao nhiêu mô đun? Mã chương trình chính: #Chương trình chính finp = "SeaGames.inp" fout = "ketqua.out" DS, Diem = nhapDL(finp) kq=Xuly(Diem) sapxep(DS,Diem,kq) ghiDL(fout,DS,kq)
1
3
4
5
[TH] Từ thứ tự lời gọi hàm trong chương trình chính dưới đây, nếu người dùng thay đổi thứ tự lời gọi hàm theo những cách khác nhau thì cách nào sau đây là đúng nhất? Mã chương trình chính với đánh dấu: #Chương trình chính finp = "SeaGames.inp" #1 fout = "ketqua.out" #2 DS, Diem = nhapDL(finp) #3 kq=Xuly(Diem) #4 sapxep(DS,Diem,kq) #5 ghiDL(fout,DS,kq) #6
#1, #3, #2, #4.
#3, #4, #1, #2.
#2, #1, #4, #3.
Không được thay đổi thứ tự lời gọi hàm.
Mô đun nào sau đây là mô đun xử lý?
Hàm nhập mảng từ bàn phím.
Hàm hiển thị kết quả.
Hàm tính số lượng phần tử âm trong mảng.
Hàm in thông báo lỗi.
[TH] Trong thực hành lập trình theo mô đun, lý do khiến mô đun nhập dữ liệu cần tách riêng là:
Để dễ thay thế nguồn nhập dữ liệu khi cần.
Để tăng tốc độ tính toán.
Vì không thể viết chung với phần xử lý.
Vì chương trình sẽ bị lỗi nếu nhập và xử lý cùng nhau.
Mô đun xuất dữ liệu cần tuân theo nguyên tắc nào?
Không được in nhiều hơn một dòng.
Chỉ được in khi chương trình không có lỗi.
Không thực hiện tính toán, chỉ hiển thị dữ liệu đầu ra.
Phải gộp chung với mô đun nhập.
Tại sao cần kiểm thử từng mô đun trước khi kiểm thử toàn bộ chương trình?
Vì chương trình lớn không thể kiểm thử trực tiếp.
Vì kiểm thử mô đun giúp phát hiện lỗi tại vị trí chính xác và tiết kiệm thời gian sửa lỗi.
Vì quy định trong sách.
Vì mô đun duy nhất gây lỗi các mô đun khác.
Phương pháp thiết kế chương trình theo mô đun có ưu điểm nào sau đây?
Làm chương trình ngắn gọn, dễ hiểu hơn
Giảm khả năng tái sử dụng các phần của chương trình
Hạn chế khả năng làm việc nhóm
Giảm tính linh hoạt khi chỉnh sửa chương trình
Một chương trình gồm ba mô đun: nhập mảng, tính tổng theo yêu cầu, in kết quả. Lỗi phổ biến khiến chương trình cho kết quả sai nhưng không báo lỗi là do:
Hàm nhập đọc sai kiểu dữ liệu.
Hàm xử lý sửa đổi sai biến hoặc không trả kết quả đúng cách.
Mô đun in kết quả không có lệnh print.
Tên hàm đặt không đúng quy tắc.
Tại sao mô đun xuất kết quả không được thay đổi nội dung mảng gốc?
Vì Python không cho phép thay đổi dữ liệu trong hàm in.
Vì mô đun xuất chỉ có nhiệm vụ hiển thị, không được thực hiện xử lý.
Vì thay đổi mảng sẽ làm chương trình bị lỗi cú pháp.
Vì mô đun xuất luôn phải dùng biến cục bộ.
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?
Mô đun nhập dữ liệu
Mô đun xử lý dữ liệu
Mô đun báo cáo
Không mô đun nào thực hiện
[VDT] Khi thiết kế mô đun, tại sao không nên để một mô đun vừa nhập dữ liệu vừa xử lý?
Vì chương trình chạy chậm hơn.
Vì làm giảm tính tái sử dụng và khó kiểm thử riêng lẻ.
Vì Python không cho phép nhập và xử lý trong cùng hàm.
Vì sẽ gây lỗi cú pháp.
Xét mô đun tính trung bình cộng của mảng, yêu cầu đúng là gì?
Kiểm tra mảng có rỗng hay không trước khi tính.
Cứ lấy tổng chia số phần tử.
Mặc định mảng luôn có giá trị hợp lệ.
Tính trung bình bằng cách lấy phần tử lớn nhất cộng nhỏ nhất rồi chia 2.
Khi viết mô đun sắp xếp mảng giảm dần, mô tả làm mịn nào là sai?
So sánh từng cặp phần tử.
Đổi chỗ khi phần tử sau lớn hơn phần tử trước.
Lặp cho đến khi mảng được sắp xếp.
Chỉ cần kiểm tra một lần rồi kết luận.
Lý do nào sau đây là sai khi nói lập trình mô đun giúp chương trình dễ bảo trì hơn?
Mô đun chạy nhanh hơn hẳn bình thường.
Khi sửa một mô đun, các mô đun khác không bị ảnh hưởng nếu giao diện không thay đổi.
Mỗi mô đun đều có giao diện người dùng riêng.
Mỗi mô đun đều phải viết lại từ đầu khi sửa lỗi.
Trong chương trình tính điểm tổng hợp cho vận động viên, mô đun diem_gk(d) có vai trò gì?
Tính điểm trung bình cộng của tất cả các giám khảo có hệ số 1.
Tính điểm tổng hợp bao gồm hệ số 2 cho giám khảo đầu tiên và cuối cùng.
Ghi kết quả điểm của từng vận động viên vào danh sách.
Đọc dữ liệu điểm số của vận động viên từ tệp đầu vào.
Với đoạn chương trình: fin = "Diemthi.txt"; fout = "Ketqua.txt"; X, Y = NhapDL(fin); Z = NhapDL(fin); Sapxep(X, Y, Z); GhiDL(fout, X, Y, Z). Khẳng định A: "Chương trình này gồm 6 mô đun" là đúng hay sai?
Đúng
Sai
Với đoạn chương trình trên, khẳng định B: "Hai tệp Diemthi.txt và Ketqua.txt phải nằm ở hai thư mục khác nhau" là đúng hay sai?
Đúng
Sai
Với đoạn chương trình trên, khẳng định C: "f1a là biến có kiểu dữ liệu xâu" là đúng hay sai?
Đúng
Sai
Với đoạn chương trình trên, khẳng định D: "Đổi tên các biến X, Y, Z thành E, F, G không làm đổi kết quả" là đúng hay sai?
Đúng
Sai
Một chương trình được tổ chức thành các mô đun theo thứ tự: NhapDL, Sapxep, XuLyDL, BaoCaoDL. Khẳng định A: "Mô đun nhập dữ liệu chỉ đọc dữ liệu từ tệp vào các mảng mà không sắp xếp" là đúng hay sai?
Đúng
Sai
Với cùng chương trình mô đun trên, khẳng định B: "Mô đun báo cáo chỉ in kết quả, không phải lấy dữ liệu từ tệp ra rồi sắp xếp" là đúng hay sai?
Đúng
Sai
Với cùng chương trình mô đun trên, khẳng định C: "Mô đun báo cáo là để sắp xếp dữ liệu" là đúng hay sai?
Đúng
Sai
Với cùng chương trình mô đun trên, khẳng định D: "Tất cả các mô đun được gộp thành một đoạn mã duy nhất với một từ khóa def" là đúng hay sai?
Đúng
Sai
Thư viện chương trình là gì?
Một tập hợp các tệp mã nguồn độc lập.
Một tập hợp các hàm dùng chung cho nhiều chương trình khác nhau.
Một cách tổ chức mã nguồn của một chương trình thành nhiều phần.
Một tập hợp các tệp lưu trữ dữ liệu.
Để nhập toàn bộ thư viện math vào bộ nhớ, lệnh đúng là gì?
import math
math import
import math as
from math import sqrt, floor, ceil
Trong Python, lệnh from math import sqrt, floor, ceil có nghĩa là gì?
Nhập toàn bộ thư viện math vào bộ nhớ.
Chỉ nhập ba hàm sqrt, floor và ceil từ thư viện math.
Chỉ sử dụng thư viện math mà không đưa vào bộ nhớ.
Nhập thư viện math và đổi tên hàm sqrt thành floor.
Muốn dùng hàm sin trong thư viện math, cú pháp cần dùng là gì?
print(math)
sin(math)
math.sin()
sin()
Câu lệnh from math import sqrt cho phép điều gì?
Dùng sqrt mà không cần gõ math.sqrt.
Dùng toàn bộ thư viện math.
Đổi tên thư viện.
Không thể dùng hàm khác ngoài sqrt.
Lợi ích của việc chỉ nhập một vài hàm từ thư viện là gì?
Làm chương trình gọn hơn và chạy nhanh hơn.
Chương trình không chạy được.
Làm máy tính nhanh hơn phần cứng.
Không có lợi ích gì.
Lệnh nào không hợp lệ khi nhập thư viện?
import math
from math import *
import math, random
import(math)
Khi dùng import math as m, vì sao phải viết m.sqrt(9) thay vì sqrt(9)?
Vì sqrt bị khóa.
Vì tên thư viện đã được thay thế bằng m.
Vì Python yêu cầu vậy.
Vì sqrt không tồn tại trong math.
Đoạn lệnh nào giúp nhập tất cả hàm của math trực tiếp mà không cần tiền tố math?
import math
from math import *
import math as *
import * from math
Lệnh nào là phù hợp nhất khi chỉ dùng đúng 1 hàm của thư viện math?
import math
import math as m
from math import hàm_cần_dùng
from math import math
Câu lệnh nào đúng để nhập hai thư viện math và random?
import math, random
include math, random
import math; import random
from math, random import *
Lệnh nào dùng để xem danh sách hàm trong thư viện math?
list(math)
print(math)
help(math)
math()
Khi chỉ muốn đưa vào bộ nhớ các hàm sqrt, floor và ceil của math, cú pháp đúng là gì?
import math.sqrt, math.floor, math.ceil
from math import sqrt, floor, ceil
import math(sqrt, floor, ceil)
math.import(sqrt, floor, ceil)
Khi tạo thư viện tự viết, điều nào sau đây đúng?
File thư viện đặt cùng thư mục với chương trình chính.
Bắt buộc đặt trong thư mục System32.
Không thể tạo thư viện trong Python.
Phải nén file mới dùng được.
Muốn dùng hàm sqrt trong thư viện math sau khi import math, cú pháp đúng là gì?
sqrt(9)
math.sqrt(9)
import sqrt
sqrt.math(9)
Lệnh nào đúng để xem mô tả hàm sqrt?
help(sqrt)
sqrt.help()
doc sqrt
info sqrt
Kết quả của import math as m là gì?
Thư viện math bị xóa.
Thư viện math được đổi tên thành m.
Sinh lỗi.
Tạo một thư viện mới.
Lệnh nào hợp lý?
import(math)
import math, random
math import
from math import
Vì sao nên dùng from math import sqrt khi chỉ cần sqrt?
Chương trình gọn và nhanh hơn.
Không cần thư viện.
Python bắt buộc.
sqrt không có trong math.
Lệnh nào đúng để đổi tên hàm khi import?
from math import sqrt rename cbh
from math import sqrt as cbh
rename sqrt cbh
import sqrt as cbh
Trong thực hành thiết lập thư viện, việc tạo mô đun giúp điều gì?
Giảm tốc độ chạy.
Chương trình rõ ràng và tái sử dụng.
Chương trình khó đọc hơn.
Không có tác dụng gì.
Cú pháp nào sai?
import math
from math import sqrt
import math as m
import math sqrt
Điều kiện để dùng sqrt(9) mà không cần tiền tố math là gì?
import math
math.import sqrt
from math import sqrt
sqrt là hàm mặc định của Python
Khi viết mô đun tự tạo, tên file phải như thế nào?
Trùng tên hàm.
Kết thúc bằng .py.
Viết số liền, không dấu cách.
Có chữ "Mô đun".
Lệnh nào đúng khi nhập ba hàm sqrt, sin và cos?
import math.sqrt, math.sin, math.cos
from math import sqrt, sin, cos
import sqrt, sin, cos
import math(sqrt, sin, cos)
Nếu muốn dùng thư viện tự viết tên là mylib.py, dùng lệnh nào?
import mylib
include mylib
mylib import
load mylib
Trong bài “Thực hành thiết lập thư viện cho chương trình”, học sinh cần điều gì?
Viết hàm trong file riêng rồi nhập vào chương trình chính.
Viết tất cả mã trong một file.
Sao chép thư viện hệ thống.
Không dùng thư viện.
Muốn dùng hàm sum2 trong tệp add.py, cách gọi đúng là gì?
import — sum2(x, y)
from add import sum2 — sum2(x, y)
import sum2 from add — sum2(x, y)
import add — add(sum2)
