Người soạn: Nguyễn Minh Hải
Kiểm tra bài cũ:
Kiểm tra bài cũ:
Câu 1: Các câu lệnh Pascal sau có hợp lệ không? Vì sao?
Câu 1: Các câu lệnh Pascal sau có hợp lệ không? Vì sao?
a)
a)
For
For
i := 100
i := 100
to
to
1
1
do
do
writeln(‘A’);
writeln(‘A’);
b)
b)
For
For
i := 1.5
i := 1.5
to
10
do
do
; writeln(‘A’);
; writeln(‘A’);
Câu
Câu
2: Trong Pascal câu lệnh
2: Trong Pascal câu lệnh
For
For
được sử dụng với số lần
được sử dụng với số lần
lặp biết trước hay chưa?
lặp biết trước hay chưa?
a)
a)
Chưa biết trước.
Chưa biết trước.
b)
b)
Đã biết trước.
Đã biết trước.
BÀI 8:
BÀI 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
(TIẾT 1)
(TIẾT 1)
B3: Đưa S ra màn hình;
B4: Kết thúc
•
Như vậy việc thực hiện phép tính
tổng ở thuật toán trên được lặp lại với
số lần chưa biết trước, phụ thuộc vào
một điều kiện (S<20) và chỉ dừng khi
điều kiện đó sai.
Việc lặp trên có thể được mô tả qua
sơ đồ khối sau:
Điều kiện
Câu lệnh
Đúng
Sai
Điều kiện
Sai
Sơ đồ khối:
Để viết chương trình chỉ dẫn máy tính thực hiện các
hoạt động lặp như trong thuật toán, ta có thể sử dụng
câu lệnh có dạng: “Lặp với số lần chưa biết trước”
WHILE <Điều kiện> DO <Câu Lệnh>
2./ VÍ DỤ VỀ LỆNH LẶP VỚI SỐ LẦN CHƯA
BIẾT TRƯỚC
B2b: i ← i+1; → B2
B3: Đưa S ra màn hình;
B4: Kết thúc
Var S,i:Integer;
Begin
S:=0; i:=1;
While S<20 Do
Begin
S := S+i ; i := i+1 ;
End;
Writeln(‘Tong S = ‘,S)
Readln;
End.
Dùng lệnh này để thể hiện thuật toán trong ví dụ 2
Một số chú ý
Trong vòng lặp WHILE . . . DO:
- Nếu ngay lần kiểm tra đầu tiên, mà kết
quả là SAI thì các câu lệnh trong vòng lặp
sẽ không được thực hiện lần nào.
- Số lần kiểm tra chính là số lần lặp
- Tùy theo điều kiện mà viết các câu lệnh