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
to
10.5
10.5
do
do
writeln(‘A’);
writeln(‘A’);
c)
c)
For
For
i = 1
i = 1
to
to
10
10
do
do
writeln(‘A’);
writeln(‘A’);
d)
d)
For
For
i := 1
i := 1
to
to
10
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)
Tiếp tục nghiên cứu về cấu trúc lặp.
Cú pháp của câu lệnh lặp với số lần
chưa biết trước.
Có giống bài toán
Lặp với số lần biết
trước không ?
1./ CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA
BIẾT TRƯỚC
Tìm thuật giải cho
bài toán
Ví dụ 2: Tính và đưa kết quả ra màn hình:
S =1+2+3+ …;
Cho đến khi S≥ 20
Ví dụ 1: SGK
Cụ thể về thuật toán theo ngôn ngữ tự nhiên:
B1: S ← 0 ; i ← 1
B2: Trong khi S<20 thì
B2a: S ← S+i
B2b: i ← i+1; → B2
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
Trong pascal câu lệnh lặp với số lần chưa biết
trước có dạng:
Từ khoá
Thường là một
phép so sánh
Lệnh đơn hay câu lệnh ghép
Câu lệnh lặp này được thực hiện như sau:
1./ Kiểm tra: Điều kiện
2./ Nếu điều kiện sai, câu lệnh sẽ bò bỏ qua
và kết thúc vòng lặp.
Nếu điều kiện đúng, thì thực hiện câu lệnh
và quay về bước kiểm tra điều kiện
Câu lệnh
Đúng
Sai
Điều kiện
Mô tả đường đi của
chương trình trên sơ
đồ khối?
Sơ đồ khối của câu lệnh While Do
B1: S ← 0 ; i ← 1
B2: Trong khi S<20 thì
B2a: S ← S+i
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
trong vòng lặp cho phù hợp.