Buổi học số 245 phút

Buổi 2: Vòng lặp & Biến số - Bí quyết giúp Robot di chuyển không ngừng

Mục tiêu trọng tâm: Tìm hiểu vòng lặp liên tục (forever), vòng lặp có số lần (repeat) và khai báo Biến số (Variables) như Điểm số, Tốc độ.

Nội dung & thực hành

🔁 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:

text
Khi bấm vào cờ xanh
Lặp lại 10 lần
    Di chuyển 10 bước

Nhâ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

Mục Trọng Tâm

🔢 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.

text
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.
Mục Trọng Tâm

♾️ 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 đỏ 🛑.

text
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ại
Nế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ặpSố lần chạyTự kết thúc
Lặp lại [ ] lầnXác định trướcCó
Liên tụcKhông giới hạnKhô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:

text
Đặt [Tốc_độ] thành [5]

Khi muốn tăng tốc độ thêm 1:

text
Thay đổi [Tốc_độ] một lượng [1]

Giá trị của biến sẽ thay đổi:

text
5 → 6 → 7 → 8

Mộ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.
💡 Hãy đặt tên biến rõ nghĩa để chương trình dễ đọc và dễ sửa.

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:

text
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ây

Trong mỗi lần lặp, nhân vật sẽ di chuyển nhanh hơn:

text
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

Mục Trọng Tâm

Yêu cầu

Dùng biến để robot vẽ được nhiều hình khác nhau:

  1. 1Tạo biến Số_cạnh và Số_hình.
  2. 2Robot đi hết các cạnh của hình bằng vòng lặp.
  3. 3Sau mỗi cạnh, robot xoay một góc bằng 360 ÷ Số_cạnh.
  4. 4Sau mỗi hình, tăng Số_hình thêm 1 và tăng Số_cạnh thêm 1.
Mục Trọng Tâm

Gợi ý chương trình

text
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ây

Robot 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.

💡 Khối 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.
Ở Bài 3, bạn sẽ học khối Nếu ... thì để robot biết dừng lại khi gặp vật cản.

6. Lỗi thường gặp

Mục Trọng Tâm

Quên đặt giá trị ban đầu

Nên đặt lại biến mỗi khi bắt đầu:

text
Khi bấm vào cờ xanh
Đặt [Số_vòng] thành [0]
Mục Trọng Tâm

Đặ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.

Mục Trọng Tâm

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:

text
Chờ 0.1 giây

🧩 Thử thách

Tạo chương trình đếm ngược từ 5 về 1:

text
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ây

Bạn có thể thay đổi chương trình để đếm ngược từ 10 không?

✅ Ghi nhớ

  • Lặp lại [ ] lần dùng khi biết trước số lần thực hiện.
  • Liên tục dù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ến tạo giá trị mới.
  • Thay đổi biến tă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.
Mục Trọng Tâm

Câu hỏi nhanh

  1. 1Vòng lặp giúp ích gì cho chương trình?
  2. 2Khi nào nên dùng vòng lặp Liên tục?
  3. 3Nếu Tốc_độ = 5 rồi tăng thêm 2, giá trị mới là bao nhiêu?
  4. 4Vì sao cần giới hạn tốc độ khi điều khiển robot?

Sẵn sàng kiểm tra kiến thức?

Chuyển sang phòng thi riêng để làm bài, xem kết quả và giải thích.

Bài Đánh giá Năng lực Phần 1: Scratch Logic & Khối lệnh Căn bản →14 câu · 15 phút