Phùng Đức Duy
Giới thiệu về bản thân
1. Chuẩn bị biến số
Đầu tiên, em cần một "cái kho" để chứa số mà người dùng nhập vào.
- Vào nhóm lệnh Các biến số (Variables).
- Nhấn chọn Tạo một biến, đặt tên là
Số của bạn.
2. Các bước thực hiện (Thuật toán)
Em sẽ lắp ghép các khối lệnh theo thứ tự sau:
Bước 1: Nhận dữ liệu từ người dùng
- Dùng khối lệnh
khi bấm vào lá cờ xanhđể bắt đầu. - Dùng khối
hỏi (Nhập một số bất kỳ) và đợitrong nhóm Cảm biến. - Dùng khối
đặt (Số của bạn) thành (câu trả lời).
Bước 2: Kiểm tra điều kiện (Sử dụng cấu trúc rẽ nhánh)
- Kéo khối
nếu... thì... nếu không thì...trong nhóm Điều khiển. Đây là "bộ não" để chú Mèo đưa ra quyết định. - Ở ô điều kiện, em lắp biểu thức so sánh: (Số của bạn) chia lấy dư cho 2 = 0.
- Giải thích: Khối
chia lấy dư(mod) nằm trong nhóm Các phép toán.
- Giải thích: Khối
Bước 3: Chú Mèo thông báo kết quả
- Nếu đúng (dư bằng 0): Kéo khối
nói (Đây là số chẵn) trong 2 giâyvào nhánh đầu tiên. - Nếu sai (dư khác 0): Kéo khối
nói (Đây là số lẻ) trong 2 giâyvào nhánh "nếu không thì".
3. Hình ảnh mô phỏng kịch bản (Script)
Kịch bản của em sẽ trông giống như thế này:
🚩 Khi bấm vào lá cờ xanh
- Hỏi [Nhập một số:] và đợi
- Đặt [Số của bạn v] thành (câu trả lời)
- Nếu <((Số của bạn) chia lấy dư cho (2)) = [0]> thì
- Nói [Đây là số chẵn!] trong 2 giây
- Nếu không thì
- Nói [Đây là số lẻ!] trong 2 giây
Mẹo nhỏ để chương trình "linh hoạt" hơn:
Để chú Mèo có thể kiểm tra nhiều số liên tiếp mà không cần bấm lại lá cờ xanh, em hãy bao bọc toàn bộ các bước trên bằng một vòng lặp liên tục (Forever). Khi đó, chú Mèo sẽ liên tục hỏi và trả lời cho đến khi em bấm nút Stop!
1-a
2-a
3-b
1. Xử lý các tình huống không biết trước số lần lặp
Trong thực tế, có rất nhiều tác vụ mà chúng ta không thể biết trước chính xác khi nào nó sẽ kết thúc. Nếu chỉ dùng vòng lặp với số lần cố định (như for), chương trình sẽ trở nên máy móc.
- Ví dụ: Khi bạn nhập mật khẩu, chương trình không thể biết bạn sẽ nhập sai bao nhiêu lần.
- Sự linh hoạt: Vòng lặp có điều kiện cho phép chương trình "đợi" cho đến khi người dùng nhập đúng mới đi tiếp.
2. Khả năng thích ứng với dữ liệu thời gian thực
Chương trình có thể tự điều chỉnh hành vi dựa trên các tác động từ môi trường bên ngoài hoặc dữ liệu do người dùng cung cấp trong lúc đang chạy.
- Cảm biến: Một hệ thống tưới nước tự động sẽ lặp lại việc tưới cho đến khi độ ẩm đất đạt mức $H > 70\%$.
- Trò chơi: Nhân vật sẽ tiếp tục di chuyển chừng nào người chơi còn nhấn phím mũi tên. Nếu không có cấu trúc lặp có điều kiện, trò chơi sẽ dừng lại ngay sau một hành động duy nhất.
3. Tối ưu hóa hiệu suất và tài nguyên
Thay vì bắt máy tính thực hiện một số lượng bước khổng lồ để "phòng xa", cấu trúc lặp có điều kiện cho phép chương trình dừng lại ngay lập tức khi mục tiêu đã đạt được.
- Tìm kiếm: Khi tìm một cái tên trong danh sách 1 triệu người, nếu bạn tìm thấy ở vị trí thứ 10, vòng lặp có điều kiện sẽ giúp bạn dừng lại ngay lập tức thay vì quét hết cả triệu người.
- Công thức: Điều kiện dừng thường dựa trên một biểu thức logic:
$$\text{while (found == false \&\& end\_of\_list == false)}$$
4. Xử lý lỗi và tăng độ tin cậy
Cấu trúc lặp có điều kiện thường được dùng để kiểm soát lỗi đầu vào (Input Validation).
- Kịch bản: Nếu người dùng nhập vào một giá trị không hợp lệ (ví dụ: tuổi là số âm), chương trình sẽ lặp lại yêu cầu nhập cho đến khi nhận được dữ liệu hợp lý.
- Kết quả: Chương trình không bị "văng" (crash) và có thể tự hồi phục sau những lỗi thao tác của người dùng.
Tóm tắt sự khác biệt
Đặc điểm | Vòng lặp xác định (Fixed) | Vòng lặp có điều kiện (Flexible) |
Số lần lặp | Biết trước (ví dụ: 10 lần). | Phụ thuộc vào tình huống thực tế. |
Tính ứng dụng | Duyệt mảng, danh sách có sẵn. | Tương tác người dùng, đọc file, cảm biến. |
Độ linh hoạt | Thấp - Máy móc. | Cao - Thông minh. |