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.[r]
Trang 1CHƯƠNG III
CẤU TRÚC RẼ NHÁNH VÀ LẶP
(tiết 2/3)
Trang 2KIỂM TRA BÀI CŨ
2
iên
- Câu lệnh lặp là gì? Hãy cho
biết cú pháp câu lệnh lặp với
số lần biết trước Cho ví dụ
Trang 3TIẾT 13 § 10.CẤU TRÚC LẶP
Cấu trúc
lặp
Cấu trúc
lặp
Số lần biết
trước
Số lần biết
trước Số lần chưa biết trước
Số lần chưa biết trước
Lặp
tiến
Lặp
tiến Lặp lùi
Trang 44
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
Bài toán 1: Tính và đưa kết quả
ra màn hình:
�=1+ 2+3+ …+�
cho đến khi � ≥ 20
Tính tổng đến khi
nào?
Tính tổng đến khi
nào?
Quá trình tính tổng thực hiện bao nhiêu
lần?
Quá trình tính tổng thực hiện bao nhiêu
lần?
Trang 55
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
a Câu lệnh while…do
WHILE <điều kiện> DO <câu
lệnh>
Trong đó
Điều kiện: biểu thức logic Câu lệnh: lệnh đơn
hoặc lệnh ghép
Trang 66
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
b Cách thức hoạt động
Câu lệnh
Đúng Điều kiện
Sơ đồ
khối
Sai
Hãy mô tả đường
đi của chương
trình
Quá trình lặp diễn
ra ở đâu?
Khi nào quá trình
lặp kết thúc
Cách thức hoạt động (SGK):
while <ĐK>
Câu lệnh
Dừng
Trang 77
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
Bài toán 1: Tính và đưa kết quả
ra màn hình:
�=1+ 2+3+ …+�
cho đến khi � ≥ 20
Điều kiện ở đây là
gì?
Điều kiện ở đây là
gì?
Câu lệnh điều kiện được viết thế nào?
Câu lệnh điều kiện được viết thế nào?
s>=20
Nếu điều kiện sai?
Dừng
Nếu điều kiện
đúng?
Nếu điều kiện
đúng?
n
Trang 8
8
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
�=1+ 2+3+ …+�
cho đến khi � ≥ 20
Thuật toán B1:
B2: Nếu chuyển đến B5 B3:
B4: ; quay lại B2 B5: Đưa s ra màn hình;
Kết thúc
Trang 9
9
iên
�=1+ 2+3+ …+�
cho đến khi � ≥ 20
Thuật toán
B1:
B2: Nếu chuyển đến B5
B3:
B4: ; quay lại B2
B5: Đưa s ra màn hình;
Kết thúc
var s:longint;
n:word;
begin
s:=0;
n:=0;
while not(s>=20) do
begin
n:=n+1;
s:=s+n;
end;
writeln ('tong
s:=',s:10);
readln
end.
while not(s>=20) do
begin n:=n+1;
s:=s+n;
end;
Trang 1010
iên
�=1+ 2+3+ …+�
cho đến khi � ≥ 20
Trang 1111
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
Bài toán 2: Tìm ước chung lớn
nhất của 2 số nguyên dương M
và N
Ý tưởng:
Nếu M=N thì UCLN(M,N)=M (hoặc N)
Nếu M<N thì
UCLN(M,N)=UCLN(M-N,N);
Nếu M>N thì
UCLN(M,N)=UCLN(M,N-M);
Trình bày thuật
toán?
Trình bày thuật
toán?
Trang 1212
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
Thuật toán tìm UCLN(M,N):
B1 Nhập M,N;
B2 Nếu M=N thì lấy giá trị chung này
làm UCLN chuyển đến bước 5.
B3 Nếu M>N thì M M- N ngược lại N
N-M;
B4 Quay lại bước 2
B5 Đưa kết quả UCLN rồi kết thúc.
Trang 1313
iên
M=N M>N N N - M
M M - N
S
Đ
S
Đ Nhập M,N
Đưa M ra, kết thúc Dựa vào thuật
toán hãy viết chương trình
Dựa vào thuật toán hãy viết chương trình
Trang 1414
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
Bài toán 2: Tìm ước chung lớn nhất của 2 số nguyên
dương M và N
program timuscln;
uses crt;
var m,n:integer;
begin
write('nhap m:=?');readln(m);
write('nhap n:=?'); readln(n);
while m<>n do
if m>n then m:=m-n
else n:= n-m;
writeln('uscln=',m);
readln
end.
Trang 1515
iên
Trang 1616
iên
3 Lặp với số lần chưa biết trước
câu lệnh While…do
c Một số lưu ý
Trong vòng lặp WHILE DO:
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.
câu lệnh trong vòng lặp cho
phù hợp
Trang 17Nghiên cứu kỹ cấu trúc RẼ NHÁNH và LẶP
Chuẩn bị tiết ôn tập, luyện tập các loại cấu trúc này, trước khi đến các tiết thực hành
Xem các bài thực hành và bài tập SGK 49,
50, 51