VD 3: Dù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).. BÀI TẬP VẬN DỤNG.[r]
(1)(2)KIỂM TRA BÀI CŨ
Hãy nêu cú pháp câu lệnh lặp: For…to…do?
Cú pháp:
For <biến đếm>:=<giá trị đầu> to <giá trị cuối>
do <câu lệnh>;
Khi sử dụng lệnh lặp For… to…do Số lần lặp tính nào?
(3)KIỂM TRA BÀI CŨ Ví dụ:
For i:= To Do
Writeln(‘Day la so lan lap thu’ ,i);
Số lần lặp = 4- 1+1= 4
(4)VD1: Viết chương trình tính tổng số tự nhiên từ đến 100
S = + + + +100
Lặp với số lần biết
trước, sử dụng câu lệnh lặp For…Do để viết
chương trình
VD2: Viết chương trình tính tổng n số tự nhiên đầu tiên để ta nhận tổng Tn nhỏ lớn 1000?
Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình?
Theo em phép cộng trên có biết trước số lần lặp khơng? Có sử dụng lệnh lặp for…to… do không?
Không thể biết trước số lần lặp không sử dụng
được lệnh for…to…do Theo em sử dụng
lệnh lặp for…to…do để viết chương trình phép cộng lặp lại mấy lần?
(5)(6) Nam học thuộc bài.
Cô phải tới nhà. Tơi phải nhập liệu vào máy tính nhập xong
(7)1 Các hoạt động lặp với số lần chưa biết trước: Tiết 42- Bài 8
Ví dụ 1:Ví dụ 1
Một ngày, Long quyết định cứ 10 phút gọi điện lần cho
Trang khi nào có người nhấc máy thơi.
Hoạt động lặp gì ?
Khi kết thúc vịng lặp?
Hoạt động lặp: Gọi điện
Kết thúc vịng lặp: Có người nhấc máy thơi.
(8)(9)1 Các hoạt động lặp với số lần chưa biết trước: Tiết 42- Bài 8
Ví dụ 2:Ví dụ 2
Nếu cộng n số tự nhiên (n=1,2,3,…) Ta được kết quả:
… tăng dần
Điều kiện kết thúc hoạt động lặp?
Điều kiện: Khi tổng Tn nhỏ nhất lớn 1000 kết
(10)1 Các hoạt động lặp với số lần chưa biết trước: Tiết 42- Bài 8
Ví dụ 2:Ví dụ 2
Phân tích tốn:
T0:=0; n:=0;
n Tổng Tn Điều kiện Tn ≤ 1000
1 T1 = 1 Đúng
2 T2 = + Đúng
3 T3 = + + Đúng
… … …
n
Tn = + + + … +n (Sao cho Tn nhỏ lớn 1000)
(11)1 Các hoạt động lặp với số lần chưa biết trước: Tiết 42- Bài 8
Ví dụ 2:Ví dụ 2 Ta có thuật tốn sau:
Kí hiệu S tổng cần tìm S 0, n 0.
Nếu S≤1000, thì: n n+1; S S + n quay lại bước 2.
Ngược lại, chuyển tới bước 3.
In kết quả: n số tự nhiên để tổng S nhỏ sao cho S>1000 Kết thúc thuật tốn.
* Có thể diễn tả toán trên sơ đồ sau:
S1000? Sai
n n+1;
S S+n;
Đúng
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào gì và chỉ dừng lại khi nào?
Việc lặp lại nhóm hoạt động với số lần chưa xác định trước phụ
thuộc vào điều kiện cụ thể
(12)1 Các hoạt động lặp với số lần chưa biết trước: Tiết 42- Bài 8
S1000?
Sai
n n+1;
S S+n;
Đúng TQ
Điều kiện Sai
Câu lệnh
Đúng
Để dẫn máy tính thực hoạt động lặp trên, ta sử dụng câu lệnh có dạng: Lặp với số lần chưa biết trước
(13)Tiết 42- Bài 8
2 Ví dụ lệnh lặp với số lần chưa biết trước
Điều kiện
Câu lệnh
while
do
Cú pháp:
While <điều kiện> <câu lệnh >;
Trong đó:
While, do: từ khóa.
Điều kiện: thường phép so sánh
(14)KẾT THÚC Tiết 42- Bài 8
2 Ví dụ lệnh lặp với số lần chưa biết trước
Quan sát sơ đồ khối, cho biết
cách thực câu lệnh lặp?
Bước : Kiểm tra điều kiện.
Bước : - Nếu điều kiện sai, câu lệnh bị bỏ qua việc thực lệnh lặp kết thúc
- Nếu điều kiện đúng, thực
câu lệnh quay lại bước 1.
Chừng điều kiện cịn câu lệnh thực hiện.
(15)Tiết 42- Bài 8
2 Ví dụ lệnh lặp với số lần chưa biết trước
VD1: While a<=b a:=a+1;
While, do là từ khóa.
Điều kiện là a<=b (chứa phép so sánh).
Câu lệnh là a:=a+1 (câu lệnh đơn).
VD2: While a>b Begin
write(‘a>b’); a:=a-1;
End;
While, do là từ khóa.
Điều kiện là a>b (chứa phép so sánh).
(16)Tiết 42- Bài 8
2 Ví dụ lệnh lặp với số lần chưa biết trước
Viết câu lệnh in số tự nhiên liên tiếp bắt đầu số Sử dụng lệnh lặp với số lần lặp
chưa biết trước while…do n:=1
n:=1
while n<=5 while n<=5
begin begin
(17)Mô thuật toán:
Bt u
n := 1
1 <= 5?
Viết hình
n:= 1+1=2 1 2 3 4 5
2 <= 5?
Viết hình n:= 2+1=3
3 <= 5?
Viết hình n:= 3+1=4
4<= 5?
Viết hình n:= 4+1=5
Sai
Đúng 5<= 5?
Viết hình n:= 5+1=6
6 <= 5?
Kết thúc
Kết quả
n:=1 n:=1
while n<=5 while n<=5
begin begin
(18)1 Các hoạt động lặp với số lần chưa biết trước: Tiết 42- Bài 8
S 0, n 0.
Nếu S≤1000, thì: n n+1; S S + n quay lại bước 2.
Ngược lại, chuyển tới bước 3.
In kết quả: n số tự nhiên để tổng S nhỏ sao cho S>1000 Kết thúc thuật toán.
(19)Tiết 42- Bài 8
2 Ví dụ lệnh lặp với số lần chưa biết trước
VD 3: Dùng câu lệnh lặp While … do để viết chương trình thể hiện thuật tốn Ví dụ (Sgk)
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do begin
n:=n+1; S:=S+n ;
end;
write(‘So tu nhien n de tong >1000 la ’, n); write(‘Tong dau tien >1000 la’, S);
Readln;
(20)(21)(22)Nếu S=10, x=2 Sau thực câu lệnh While S>5 do
S:=S-x;
writeln(S);
Thì giá trị S là:
D A 4
B 8
C 10
A 4
Câu hỏi 1
(23)a) X:= 10; while X:= 10 X:= X + 5;
b) X:= 10; while X = 10 X = X + 5;
c) S:= 0; n:=0; while S <= 10 n:= n + 1; S:= S + n ; Thiếu
dấu :
Thiếu Begin
Thiếu End
Câu 2: Hãy lỗi câu lệnh sau đây?
(24)In số từ đến 9
In số từ đến 9
In số từ đến 10
In số từ đến 10
In số 1
In số 1
Không phương án đúng.
Không phương án đúng.
A AA A B BB B C C C C D D D D
Câu 3: Đoạn lệnh sau cho kết gì?
S:=1; While s < 10
(25)• Về nhà học thuộc bài.
• Làm tập 1,2,3a SGK