Buổi 2: Vòng lặp & Biến số - Bí quyết giúp Robot di chuyển không ngừng
Theory & practice
🔁 Bài 2: Vòng lặp và Biến số
🎯 Mục tiêu bài học
Sau bài học này, bạn có thể:
- Phân biệt vòng lặp Lặp lại và Liên tục.
- Dùng vòng lặp để rút gọn chương trình.
- Tạo biến để lưu số lần, điểm số hoặc tốc độ.
- Kết hợp vòng lặp và biến để điều khiển nhân vật.
1. Vòng lặp là gì?
Trong cuộc sống, nhiều hoạt động được thực hiện lặp đi lặp lại:
- Trái tim đập liên tục.
- Bánh xe quay nhiều vòng.
- Đèn cảnh báo bật rồi tắt.
- Robot kiểm tra cảm biến nhiều lần.
Trong lập trình, vòng lặp giúp thực hiện lại một nhóm lệnh mà không phải viết cùng một lệnh nhiều lần.
Ví dụ, thay vì dùng khối Di chuyển 10 bước đến 10 lần, ta có thể viết:
Khi bấm vào cờ xanh
Lặp lại 10 lần
Di chuyển 10 bướcNhân vật sẽ di chuyển tổng cộng: 10 lần × 10 bước = 100 bước
2. Hai loại vòng lặp chính
🔢 Lặp lại một số lần
Khối Lặp lại [10] lần thực hiện các lệnh bên trong đúng số lần đã chọn rồi dừng.
Khi bấm vào cờ xanh
Lặp lại 4 lần
Di chuyển 80 bước
Xoay phải 90 độChương trình trên giúp nhân vật di chuyển theo hình vuông.
Sử dụng khi:
- Biết trước số lần thực hiện.
- Muốn đèn nhấp nháy đúng 5 lần.
- Muốn robot chạy đúng 3 vòng.
- Muốn vẽ một hình có số cạnh xác định.
♾️ Lặp lại liên tục
Khối Liên tục chạy không ngừng cho đến khi nhấn nút Dừng màu đỏ 🛑.
Khi bấm vào cờ xanh
Liên tục
Di chuyển 5 bước
Nếu chạm cạnh, bật lạiNếu chạm cạnh, bật lại là một khối trong nhóm Chuyển động. Nhân vật tự quay lại khi chạm mép sân khấu.Sử dụng khi:
- Robot cần liên tục kiểm tra cảm biến.
- Trò chơi cần liên tục kiểm tra bàn phím.
- Đèn giao thông hoạt động theo chu kỳ.
- Robot cần di chuyển cho đến khi gặp vật cản.
| Loại vòng lặp | Số lần chạy | Tự kết thúc |
|---|---|---|
Lặp lại [ ] lần | Xác định trước | Có |
Liên tục | Không giới hạn | Không |
3. Biến số — Chiếc hộp lưu thông tin
Biến số giống như một chiếc hộp có tên, dùng để lưu thông tin trong chương trình.
Ví dụ, biến Tốc_độ có giá trị ban đầu là 5:
Đặt [Tốc_độ] thành [5]Khi muốn tăng tốc độ thêm 1:
Thay đổi [Tốc_độ] một lượng [1]Giá trị của biến sẽ thay đổi:
5 → 6 → 7 → 8Một số biến thường dùng:
Tốc_độ: tốc độ di chuyển.Điểm_số: điểm của người chơi.Số_vòng: số vòng đã hoàn thành.Khoảng_cách: kết quả từ cảm biến.Thời_gian: thời gian còn lại.
4. Kết hợp vòng lặp và biến số
Hãy lập trình cho nhân vật tăng tốc sau mỗi lần di chuyển:
Khi bấm vào cờ xanh
Đặt [Tốc_độ] thành [2]
Lặp lại 8 lần
Di chuyển [Tốc_độ] bước
Thay đổi [Tốc_độ] một lượng [1]
Chờ 0.2 giâyTrong mỗi lần lặp, nhân vật sẽ di chuyển nhanh hơn:
2 → 3 → 4 → 5 → 6 → 7 → 8 → 9Để tốc độ không tăng quá cao, ta cần khối điều kiện Nếu ... thì, sẽ học ở Bài 3. Trong bài này, hãy giới hạn tốc độ bằng cách chọn số lần lặp phù hợp.
5. Thực hành: Robot vẽ đa giác
Yêu cầu
Dùng biến để robot vẽ được nhiều hình khác nhau:
- 1Tạo biến
Số_cạnhvàSố_hình. - 2Robot đi hết các cạnh của hình bằng vòng lặp.
- 3Sau mỗi cạnh, robot xoay một góc bằng
360 ÷ Số_cạnh. - 4Sau mỗi hình, tăng
Số_hìnhthêm 1 và tăngSố_cạnhthêm 1.
Gợi ý chương trình
Khi bấm vào cờ xanh
Xóa tất cả
Đưa bút xuống
Đặt [Số_cạnh] thành [5]
Đặt [Số_hình] thành [0]
Lặp lại 3 lần
Lặp lại [Số_cạnh] lần
Di chuyển 60 bước
Xoay phải (360 ÷ Số_cạnh) độ
Thay đổi [Số_hình] một lượng [1]
Thay đổi [Số_cạnh] một lượng [1]
Chờ 0.5 giâyRobot lần lượt vẽ hình 5 cạnh, 6 cạnh và 7 cạnh. Biến Số_hình cho biết đã vẽ được bao nhiêu hình.
Xóa tất cả và Đưa bút xuống nằm trong tiện ích Bút vẽ (Pen). Bấm Mở rộng — Extension để thêm tiện ích này.Nếu ... thì để robot biết dừng lại khi gặp vật cản.6. Lỗi thường gặp
Quên đặt giá trị ban đầu
Nên đặt lại biến mỗi khi bắt đầu:
Khi bấm vào cờ xanh
Đặt [Số_vòng] thành [0]Đặt lệnh tăng biến ngoài vòng lặp
Nếu lệnh Thay đổi biến nằm ngoài vòng lặp, biến chỉ tăng một lần.
Dùng Liên tục nhưng không có thời gian chờ
Chương trình có thể chạy quá nhanh. Hãy thêm:
Chờ 0.1 giây🧩 Thử thách
Tạo chương trình đếm ngược từ 5 về 1:
Khi bấm vào cờ xanh
Đặt [Đếm_ngược] thành [5]
Lặp lại 5 lần
Nói [Đếm_ngược] trong 1 giây
Thay đổi [Đếm_ngược] một lượng [-1]
Nói "Bắt đầu!" trong 2 giâyBạn có thể thay đổi chương trình để đếm ngược từ 10 không?
✅ Ghi nhớ
Lặp lại [ ] lầndùng khi biết trước số lần thực hiện.Liên tụcdùng khi chương trình phải hoạt động không ngừng.- Biến số dùng để lưu thông tin có thể thay đổi.
Đặt biếntạo giá trị mới.Thay đổi biếntăng hoặc giảm giá trị hiện tại.- Vòng lặp kết hợp với biến giúp chương trình ngắn gọn và thông minh hơn.
Câu hỏi nhanh
- 1Vòng lặp giúp ích gì cho chương trình?
- 2Khi nào nên dùng vòng lặp
Liên tục? - 3Nếu
Tốc_độ = 5rồi tăng thêm2, giá trị mới là bao nhiêu? - 4Vì sao cần giới hạn tốc độ khi điều khiển robot?