Khởi tạo và hỏi trước khi so sánh
Trò đoán số bắt đầu bằng việc máy chọn một số bí mật từ 1 đến 100, rồi hỏi để nhận số đoán. Đó là các bước **tuần tự**: chọn số trước, hỏi sau, so sánh khi đã có hai giá trị. Trong Scratch, khối **trả lời/answer** giữ câu vừa nhập; dự án BTVN chép giá trị đó vào biến `so_doan` để tiện nhìn khi kiểm thử. Nếu đặt lệnh so sánh trước câu hỏi, kết quả sẽ dựa vào giá trị cũ hoặc chưa được nhập.
Bài luyện
Ở đầu một lượt chơi mới, thứ tự nào cho phép so sánh số đoán với số bí mật vừa chọn?
Khi so sánh chưa có số bí mật và câu trả lời mới.
Hai giá trị đã có trước lúc so sánh.
Chưa có số bí mật để xác định trúng.
Báo hết lượt không thuộc bước mở đầu.
Lời giải
Cần tạo số bí mật và nhận số đoán trước khi so sánh. Đó là thứ tự khởi tạo → nhập → kiểm tra.
Rẽ nhánh theo kết quả so sánh
Nếu `so_doan < so_bi_mat`, thông báo “còn thấp”; nếu số đoán lớn hơn, thông báo “còn cao”. Trước hai nhánh gợi ý, cần kiểm tra **bằng nhau** để dừng khi trúng. Khi đã biết số đoán **không bằng** số bí mật, một nhánh `<` và nhánh còn lại đủ phân biệt thấp/cao. Đây là cấu trúc rẽ nhánh: chỉ phần ứng với điều kiện thực tế được thực hiện.
Bài luyện
Số bí mật là 64, số vừa đoán là 71 và chưa chạm giới hạn lượt. Thông báo nào đúng?
71 không thấp hơn 64.
71 khác 64.
71 > 64 nên gợi ý số đoán còn cao.
Hai số đã có giá trị để so sánh.
Lời giải
Vì 71 lớn hơn 64, nhánh “còn cao” được chọn. Câu gợi ý giúp lần sau đoán số nhỏ hơn 71.
Lặp đến khi điều kiện dừng đúng
Khối **lặp đến khi/repeat until** trong Scratch kiểm điều kiện trước mỗi lượt lặp: nếu điều kiện đã đúng, thân lặp không chạy thêm. Với trò không giới hạn lượt, dừng khi `so_doan = so_bi_mat`. Với bản giới hạn bảy lượt của bài sau, dừng khi **đoán đúng hoặc đã đủ 7 lượt**. Khối **lặp n lần/repeat** phù hợp khi đã biết trước số lượt, như vẽ n cạnh; khối **mãi mãi/forever** chỉ dừng khi có cơ chế dừng khác.
Bài luyện
Sau câu hỏi đầu, số đoán đã bằng số bí mật. Khối `lặp đến khi so_doan = so_bi_mat` làm gì tiếp?
Scratch kiểm điều kiện trước lượt tiếp theo.
Điều kiện đã đúng nên thoát vòng lặp ngay.
Số 7 chỉ có trong biến thể giới hạn lượt.
Điều kiện dừng không đổi số bí mật.
Lời giải
Khối lặp đến khi kiểm điều kiện trước khi vào thân lặp. Vì đã đoán đúng sau câu hỏi đầu, vòng lặp không hỏi thêm.
Bài luyện
Cần vẽ đúng 6 cạnh, mỗi cạnh một lượt đi–quay. Khối lặp nào phù hợp nhất?
Đã biết trước cần sáu lượt.
Mãi mãi không tự kết thúc sau sáu cạnh.
Con trỏ chuột không quyết định số cạnh.
Một lượt chỉ tạo một cạnh.
Lời giải
Sáu cạnh cần sáu lượt giống nhau, nên dùng khối lặp 6 lần. Trò đoán số lại cần điều kiện dừng theo kết quả đoán.
Đang học