Phần 1: Câu hỏi Trắc nghiệm (Nhận biết & Thông hiểu)
Câu 1. Nội dung nào sau đây phản ánh đúng kiến thức cần ghi nhớ trong bài Bài 21: Câu lệnh lặp while?
A. Bỏ qua các khái niệm cơ bản và chỉ học thuộc lòng kết quả cuối cùng mà không cần hiểu bản chất.
B. Chỉ áp dụng kiến thức trong một trường hợp duy nhất, không cần kiểm tra điều kiện hay đơn vị.
C. while lặp khối lệnh khi điều kiện còn đúng, dùng khi chưa biết trước số lần lặp.
D. Các nội dung trong bài hoàn toàn độc lập và không có mối liên hệ nào với thực tiễn hay các bài học khác.
Câu 2. Khi học và vận dụng bài Bài 21: Câu lệnh lặp while, khẳng định nào dưới đây là chính xác? A. Không cần đọc kĩ đề bài hay phân tích dữ kiện trước khi thực hiện các bước giải. B. Mọi khái niệm trong bài đều có thể thay thế tùy ý cho nhau mà không làm thay đổi kết quả. C. Chỉ cần ghi đáp số ngắn gọn, bỏ qua toàn bộ bước lập luận, giải thích và kiểm tra lại. D. Trong khối lệnh phải có câu lệnh làm thay đổi điều kiện để tránh lặp vô hạn.
Câu 3. Theo phần Kiến thức trọng tâm của bài Bài 21: Câu lệnh lặp while, phát biểu nào sau đây là đúng?
A. Câu lệnh lặp while dùng để lặp lại một khối lệnh khi chưa biết trước số lần lặp, chỉ biết điều kiện để tiếp tục lặp.
B. Kết luận ngay kết quả khi chưa đối chiếu với quy tắc hoặc định nghĩa trong bài học.
C. Thay đổi toàn bộ quy tắc trọng tâm của bài học theo cảm tính cá nhân.
D. Bỏ qua việc rèn luyện qua ví dụ minh họa và bài tập thực hành của tiết học.
Câu 4. Để nắm vững và vận dụng tốt bài Bài 21: Câu lệnh lặp while, học sinh cần lưu ý điều nào sau đây? A. Không cần ghi nhớ các lưu ý trọng tâm vì chúng không ảnh hưởng đến việc làm bài tập. B. Vì vậy, trong khối lệnh phải có câu lệnh làm thay đổi điều kiện, nếu không vòng lặp sẽ chạy mãi không dừng, gọi là vòng lặp vô hạn. C. Áp dụng ngược lại hoàn toàn so với quy tắc và hướng dẫn trong phần kiến thức trọng tâm. D. Chỉ cần đọc lướt tiêu đề bài học mà không cần nắm vững nội dung chi tiết từng mục.
Phần 2: Bài tập Tự luận & Thực hành theo tiết học
Bài 1 (Cơ bản — Hệ thống hóa kiến thức trọng tâm). Dựa vào phần Kiến thức trọng tâm của bài Bài 21: Câu lệnh lặp while, em hãy trình bày các khái niệm, quy tắc hoặc nội dung cốt lõi của tiết học và nêu ý nghĩa của chúng.
Bài 2 (Thực hành — Phân tích & Giải mẫu theo ví dụ tiết học). Đọc kĩ tình huống/ví dụ trọng tâm của tiết học dưới đây, sau đó tự trình bày lại các bước thực hiện và nêu nhận xét rút ra:
Ví dụ: Viết chương trình nhập số nguyên cho đến khi người dùng nhập số 0 thì dừng, sau đó in ra tổng các số đã nhập (không tính số 0).
Bài 3 (Vận dụng — Áp dụng quy tắc ghi nhớ vào bài tập). Vận dụng các điểm ghi nhớ trọng tâm của bài Bài 21: Câu lệnh lặp while để giải thích hoặc thực hiện yêu cầu thực hành mở rộng sau:
tong = 0 so = int(input("Nhập số (0 để dừng): ")) while so != 0: tong = tong + so so = int(input("Nhập số (0 để dừng): ")) print("Tổng là:", tong)
**Bài 4 (Luyện tập học kì — Mức độ Cơ bản).**
Đoạn chương trình `print(10 / 0)` gây lỗi gì? Nêu tên lỗi.
**Bài 5 (Luyện tập học kì — Mức độ Thông hiểu).**
Kiểm thử chương trình có mục đích gì?
**Bài 6 (Luyện tập học kì — Mức độ Vận dụng & Nâng cao).**
Một test case gồm những gì? Cho ví dụ một test case cho chương trình tính tổng hai số.
## Phần 3: Đáp án & Hướng dẫn giải chi tiết
### 1. Đáp án phần Trắc nghiệm
- **Bảng đáp án:** **1-C**, **2-D**, **3-A**, **4-B**.
- **Giải thích chi tiết:**
- **Câu 1 (C):** Khẳng định đúng theo mục *Ghi nhớ* của bài: *"`while` lặp khối lệnh khi điều kiện còn đúng, dùng khi chưa biết trước số lần lặp."*
- **Câu 2 (D):** Khẳng định đúng theo nội dung cốt lõi của tiết học: *"Trong khối lệnh phải có câu lệnh làm thay đổi điều kiện để tránh lặp vô hạn."*
- **Câu 3 (A):** Khẳng định chuẩn xác theo phần *Kiến thức trọng tâm*: *"Câu lệnh lặp `while` dùng để lặp lại một khối lệnh khi chưa biết trước số lần lặp, chỉ biết điều kiện để tiếp tục lặp."*
- **Câu 4 (B):** Khẳng định đúng theo hướng dẫn trọng tâm của bài: *"Vì vậy, trong khối lệnh phải có câu lệnh làm thay đổi điều kiện, nếu không vòng lặp sẽ chạy mãi không dừng, gọi là vòng lặp vô hạn."*
### 2. Hướng dẫn giải phần Tự luận & Thực hành
- **Bài 1:**
- **Nội dung cốt lõi cần trình bày:** Câu lệnh lặp `while` dùng để lặp lại một khối lệnh khi chưa biết trước số lần lặp, chỉ biết điều kiện để tiếp tục lặp. Cú pháp: ```python while điều_kiện: khối lệnh ``` Máy tính kiểm tra điều kiện trước mỗi lần lặp: nếu điều kiện đúng thì thực hiện khối lệnh, sau đó quay lại kiểm tra điều kiện; nếu điều kiện sai thì thoát khỏi vòng lặp.
- **Tổng kết ghi nhớ:** `while` lặp khối lệnh khi điều kiện còn đúng, dùng khi chưa biết trước số lần lặp.; Trong khối lệnh phải có câu lệnh làm thay đổi điều kiện để tránh lặp vô hạn.; `break` thoát vòng lặp ngay; `continue` chuyển sang lần lặp tiếp theo.
- **Bài 2:**
- **Hướng dẫn phân tích & trình bày:** Dựa trực tiếp vào dữ kiện trong ví dụ minh họa của tiết học: *Ví dụ: Viết chương trình nhập số nguyên cho đến khi người dùng nhập số 0 thì dừng, sau đó in ra tổng các số đã nhập (không tính số 0).*
- **Lưu ý khi trình bày:** Xác định rõ yêu cầu, áp dụng đúng quy tắc/khái niệm trong mục 1 và kiểm tra lại kết quả cuối cùng.
- **Bài 3:**
- **Phương pháp giải:** Áp dụng các quy tắc ghi nhớ của bài **Bài 21: Câu lệnh lặp while** (`while` lặp khối lệnh khi điều kiện còn đúng, dùng khi chưa biết trước số lần lặp.; Trong khối lệnh phải có câu lệnh làm thay đổi điều kiện để tránh lặp vô hạn.; `break` thoát vòng lặp ngay; `continue` chuyển sang lần lặp tiếp theo.).
- **Lời giải mẫu/Nhận xét:** ```python
tong = 0
so = int(input("Nhập số (0 để dừng): "))
while so != 0:
tong = tong + so
so = int(input("Nhập số (0 để dừng): "))
print("Tổng là:", tong)
- Bài 4: Lỗi chia cho 0 —
ZeroDivisionError. - Bài 5: Kiểm thử giúp phát hiện lỗi và kiểm tra chương trình chạy đúng yêu cầu hay chưa.
- Bài 6: Một test case gồm dữ liệu đầu vào và kết quả mong đợi. Ví dụ: chương trình tính tổng hai số — đầu vào: 2 và 3; kết quả mong đợi: 5.
