ÔN TẬP CÂU LỆNH VÒNG LẶP
Chúng ta đã học 2 loại câu lệnh có thể lặp lại các lệnh khác là lệnh While… do và lệnh For… do
Vậy lúc nào sử dụng lệnh While lúc nào sử dụng lệnh For ? Lệnh nào sử dụng dễ hơn ?
Tùy theo từng trường hợp cần lặp lại mà ta sẽ sử dụng 2 lệnh trên cho phù hợp nhất.
- Khi nào cần lặp lại căn cứ vào 1 điều kiện nào đó, không biết trước số lần lặp thì ta dùng lệnh While( Khi nào điều kiện còn đúng thì còn lặp). Điều kiện lặp lại sẽ được kiểm tra trước khi lặp lại lệnh và trong vòng lặp(giữa begin và end) phải có 1 lệnh để thay đổi điều kiện lặp ban đầu.
- Khi nào số lần lặp biết trước ngay từ đầu(ví dụ lặp 5 lần, 10 lần..)thì ta dùng lênh For. Khi dùng lệnh for thì phải có 1 biến đếm số lần lặp, và biến này sẽ tự động cộng thêm 1 đơn vị sau mỗi lần lặp.
- Lệnh While và lệnh For có thể dùng thay thế lẫn nhau.
Ta hãy xét ví dụ sau
Yêu cầu 1: nhập 1 số nguyên n viết ra các ước số của số n.
Phân tích: Ước số của số n là các số mà n chia hết(ví dụ n= 6, ước số của 6 là 1, 2, 3, 6 vì 6 chia hết cho các số này)
Ta có biết trước n chia hết cho bao nhiêu số hay không?(n chưa xác định là số mấy) chắc chắn là không biết trước rồi khi chưa biết n có giá trị bao nhiêu.
Trong trường hợp này dùng lệnh While là phù hợp. Vậy điều kiện của lệnh While là gì ?
Ta nhận thấy lấy n chia cho các số từ 1, số nào chia hết thì số đó là ước số của n. Vậy chia đến số nào thì dừng không chia nữa ? Phải là số n không ?(có bao giờ ước số của số n lại lớn hơn n không ?)
Các em thử điền vào các chỗ còn trống trong câu lệnh viết sẳn sau cho phù hợp với phân tích trên. Phần này sẽ có ở phần trắc nghiệm
i:= 1 ;
While i…….n do
Begin
If n …….i = 0 then writeln(………);
………
End ;
Yêu cầu 2: Nhập 1 số nguyên n. Viết ra bảng nhân(cửu chương) của số n.
Phân tích : Bảng nhân của số n có mấy dòng ? 10 dòng phải không?
Vậy ta dùng lệnh For là phù hợp. lặp lại 10 lần, mỗi lần lặp lại gì ?
Các em tự điền vào chỗ trống trong phần trắc nghiệm nhé
For i := 1 to ……. Do
Begin
Writeln(n , ‘ x ‘, ……. ,’ = ‘ , …………);
End ;
Có thể thực hiện yêu cầu 1 bằng lệnh for và yêu cầu 2 bằng lệnh while hay không ?
TTrả lời trắc nghiệm Xem điểm trắc nghiệm
Bài tập thực hành – Mỗi bài viết 2 chương trình, 1 bằng lệnh for và 1 bằng lệnh while
- Viết chương trình nhập vào 1 số nguyên n. Cho biết n có mấy chữ số
VD n = 2874 n có 4 chữ số
- Viết chương trình nhập vào 2 số nguyên a và b.Tính tổng các số từ a đến b.
a = 5 b = 10 tong = 45