1. Khởi động (Engagement)
Em có thể đã gặp những trường hợp cần thực hiện một số công việc lặp đi lặp lại nhiều lần. Ví dụ:
- Để kể tên tất cả các bạn trong lớp có 30 học sinh, em cần lần lượt đọc tên từng bạn
- Để đếm số lượng các số chia hết cho 3 trong khoảng từ 1 đến 50, em có thể kiểm tra lần lượt các số từ 1 đến 50 và ghi ra các số chia hết cho 3 (chẳng hạn, 3, 6, 9,...) rồi đếm các số đó
💡 Câu hỏi suy ngẫm: Em có thể xác định được trong mỗi ví dụ trên công việc nào cần phải lặp và được lặp lại bao nhiêu lần không?
Ngôn ngữ lập trình bậc cao có các câu lệnh cho phép viết một cách ngắn gọn các bước cần thực hiện lặp đi lặp lại để tạo thành một cấu trúc lặp.
2. Hình thành kiến thức (Knowledge)
1. Lệnh lặp for
Lệnh for là lệnh lặp với số lần biết trước. Số lần lặp thường được xác định bởi vùng giá trị của lệnh range().
a) Hàm range()
Lệnh range(n) trả lại vùng giá trị gồm n số từ 0 đến n - 1.
Các dạng của range():
range(n): Tạo dãy từ 0 đến n-1 (n số)range(start, stop): Tạo dãy từ start đến stop-1range(start, stop, step): Tạo dãy với bước nhảy step
Ví dụ:
b) Cú pháp lệnh for
Cú pháp:
Cơ chế hoạt động:
- Khi thực hiện, ở mỗi vòng lặp biến chạy sẽ được gán lần lượt các giá trị trong vùng giá trị của lệnh range() và thực hiện khối lệnh.
- Khối lệnh cần viết lùi vào và thẳng hàng (thường là 1 tab hoặc 4 dấu cách).
Ví dụ cơ bản:
Giải thích: Lệnh range(10) trả lại một vùng giá trị gồm 10 số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Lệnh for sẽ thực hiện 10 lần lặp, mỗi lần lặp ứng với một giá trị k trong vùng giá trị trên. Sau lệnh lặp for trên, biến S sẽ có giá trị là tổng 0 + 1 + ... + 9 = 45.
2. Ví dụ ứng dụng
Ví dụ 1: Tính tổng các số tự nhiên chẵn nhỏ hơn n
Ví dụ 2: Đếm số các số nguyên nhỏ hơn n và là bội của 3
3. Luyện tập (Practice)
Bài tập thực hành
Bài tập 1:
Thực hiện đoạn chương trình sau trong chế độ gõ lệnh trực tiếp của Python để tính tổng 0 + 1 + ... + 9. Tổng này có giá trị bao nhiêu? Giải thích kết quả.
Bài tập 2:
Viết chương trình nhập số tự nhiên n từ bàn phím. Tính và in ra tổng các số từ 1 đến n.
Gợi ý: Sử dụng range(1, n+1) để tạo dãy từ 1 đến n.
Bài tập 3:
Viết chương trình nhập số tự nhiên n. In ra màn hình các số chẵn nhỏ hơn n.
Bài tập 4:
Viết chương trình tính tổng các số lẻ nhỏ hơn n.
Thực hành tại máy:
Viết chương trình in ra bảng cửu chương trình của một số m nhập từ bàn phím.
Ví dụ: Nếu nhập m = 3, in ra:
4. Vận dụng (Application)
Bài tập vận dụng
Bài tập 1: Tính giai thừa
Viết chương trình nhập số tự nhiên n và tính n! (giai thừa của n).
Gợi ý: n! = 1 × 2 × 3 × ... × n
Bài tập 2: Kiểm tra số nguyên tố
Viết chương trình nhập số tự nhiên n > 1 và kiểm tra xem n có phải là số nguyên tố không.
Gợi ý: Số nguyên tố là số chỉ chia hết cho 1 và chính nó.
Bài tập 3: In hình tam giác
Viết chương trình nhập số tự nhiên n và in ra tam giác vuông cân chiều cao n.
Ví dụ: n = 4
Thảo luận:
- Lợi ích của việc sử dụng vòng lặp for so với viết lệnh thủ công?
- Khi nào nên dùng range(n), khi nào nên dùng range(1, n+1)?
- Lệnh break trong vòng lặp có tác dụng gì?
Ghi nhớ kiến thức 🎯
- ✅ range(n) tạo dãy từ 0 đến n-1 (n số).
- ✅ range(start, stop) tạo dãy từ start đến stop-1.
- ✅ for là lệnh lặp với số lần biết trước.
- ✅ Khối lệnh trong for cần thụt lề đúng quy cách.
- ✅ Biến tích lũy cần khởi tạo giá trị ban đầu bên ngoài vòng lặp.