D Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng... Câu 2: Nêu cú pháp của câu lệnh lặp với số lần chưa biết trước, và cho biết các bước thực hiện câu lệnh lặp?. Lặp vô hạn lầ
Trang 2A Tính tổng các số tự nhiên từ 1 đến 20.
B Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số.
D Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng.
C Mỗi ngày học bài 2 lần.
30
29262524232221199810
Câu 1: Trong các hoạt động dưới
đây, hoạt động nào là hoạt động lặp
với số lần chưa biết trước?
Trang 3Câu 2: Nêu cú pháp của câu lệnh lặp với số lần chưa biết trước, và cho biết các bước thực hiện câu lệnh lặp ?
While <điều kiện> Do <câu lệnh>;
Vd: While a<=5 do write (‘Lớp 8A1’);
Các bước để thực hiện lệnh lặp là:
B1: Kiểm tra điều kiện
B2: Nếu điều kiện sai thì kết thúc chương
trình, nếu đúng sẽ thực hiện câu lệnh và
quay lại kiểm tra điều kiện
Trang 5NỘI DUNG
2 Ví dụ về câu lệnh lặp
3 Lặp vô hạn lần, lỗi lập trình cần tránh.
Trang 6Em hãy nhớ lại thuật toán
của ví dụ 2 SGK-67?
2 Ví dụ về câu lệnh lặp
Trang 7S ← 0, n ← 0.
Nếu S≤1000, n ← n+1; Ngược lại, chuyển tới bước 4.
S ← S + n và quay lại bước 2.
In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S>1000 Kết thúc thuật toán.
* Có thể diễn tả bài toán
trên bằng sơ đồ như sau:
S≤1000? Sai
n ← n+1;
S ← S+n;
Đúng
Trang 8Dựa vào thuật toán
em hãy viết chương trình cho bài ví dụ 2
Trang 9Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk)
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1; S:=S+n ;
end;
write(‘Tong S= ’,S,‘ va ’,n,’ la so tu nhien nho nhat
sao cho S>1000’);
Readln;
End.
Tong S= 1035 va 45 la so tu nhien nho nha sao cho S>1000
program bài_1; ;
Trang 103 Lặp vô hạn lần, lỗi lập trình cần tránh.
Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp vô hạn lần
không có điểm kết thúc
Var a:integer;
Begin a:=1;
While a<3 do writeln (‘A’);
End
Trang 11a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n ;
Thừa dấu :
Thiếu dấu :
Thiếu Begin
Thiếu End
30
292827262524232221199810
Trang 12In ra các số từ 1 đến 9
In ra các số từ 1 đến 9
In ra các số từ 1 đến 10
In ra các số từ 1 đến 10
In ra các số 1
In ra các số 1
Không phương án nào đúng.
Không phương án nào đúng.
A
B
C
D
Câu 2: Đoạn lệnh sau đây cho kết quả là gì?
S:=1; While s < 10 do
Begin writeln(s); s:=s+1; end; 30232124229810
Trang 13B 10 vòng lặp, S=5 B 10 vòng lặp, S=5 D 12 vòng lặp, S=4
A 9 vòng lặp, S=5.5 C 11 vòng lặp, S=4.5
SAI RỒI!
Khi kết thúc, giá trị của S bằng bao nhiêu?
- Bước 4: Thông báo S và kết thúc thuật toán.
30232124229810