Để chỉ dẫn máy tính thực hiện các hoạt động lặp trê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... Ví dụ về lệnh lặp với số lần chưa biết trước Cú pháp:.[r]
(1)(2) KIỂM TRA BÀI CŨ Hãy pháplệnh câu lặp lệnhFor… lặp: For…to…do? Khinêu sửcú dụng to…do Số lần lặp tính nào? Cú pháp: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; Số lần lặp = <giá trị cuối> - <giá trị đầu> +1 (3) KIỂM TRA BÀI CŨ Ví dụ: Số lần lặp = 4- 1+1= For i:= To Do Writeln(‘Day la so lan lap thu’ ,i); Day la so lan lap thu Day la so lan lap thu Day la so lan lap thu Day la so lan lap thu (4) VD1: Viết chương trình tính tổng các số tự nhiên từ đến 100 S = + + + +100 For i:=1 to 100 s:=s+i; Theo emLặp 100 sử dụng lần lệnh lặp for…to…do để viết chương trình trên thì phép cộng lặp lại lần? 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? Không thể biết trước số lần lặp em và phép khôngcộng sử dụng Theo lệnh trên có biếtfor…to…do trước số lần lặp không? Có sử dụng lệnh lặp for…to… không? 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? (5) LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC (6) Tiết 42- Bài 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) Tiết 42- Bài Các hoạt động lặp với số lần chưa biết trước: Ví dụ 1: Một ngày, Long định cứ 10 phút gọi điện lần cho Trang nào có người nhấc máy thì thôi Hoạt động lặp: Gọi Số lầnHoạt lặp động đã biết chưa? lặp làđiện gì ? Kết nào thúcthìvòng lặp: vòng Có lặp? Khi kết thúc người nhấc máy thì thôi (8) (9) Tiết 42- Bài Các hoạt động lặp với số lần chưa biết trước: Ví dụ 2: Nếu cộng n số tự nhiên đầu tiên (n=1,2,3,…) Ta kết quả: … tăng dần Điềukiện: kiện Khi tổng nào thì Điều Tn nhỏ kết thúc hoạt1000 độngthì lặp? lớn kết thúc hoạt động lặp (10) Tiết 42- Bài Các hoạt động lặp với số lần chưa biết trước: Ví dụ 2: Phân tích bài toán: T0:=0; n:=0; n Tổng Tn T1 = T2 = + T3 = + + … Tn = + + + … +n … n (Sao cho Tn nhỏ lớn 1000) Điều kiện Tn ≤ 1000 Đúng Đúng Đúng … Sai, kết thúc việc tính tổng (11) Tiết 42- Bài Các hoạt động lặp với số lần chưa biết trước: Ví dụ 2: Ta có thuật toán sau: Kí hiệu S là tổng cần tìm S 0, n Nếu S≤1000, thì: n n+1; S S + n và quay lại bước Ngược lại, chuyển tới bước In kết quả: n là số tự nhiên để tổng S nhỏ cho S>1000 Kết thúc thuật toán Việc lặp lại diễn nhóm hoạt động với * CóCác thể tả bài toán hoạt động lặp với số lần số lần chưa xác định trướcsau: phụ trênchưa sơ đồ biết trước phụ thuộc thuộc vào điều kiện cụ thể vào cái gì và dừng lại thỏa mãn và dừng lại khi nào? điều kiện không thỏa mãn S1000? Đúng n n+1; S S+n; Sai (12) Tiết 42- Bài Các hoạt động lặp với số lần chưa biết trước: S1000? Đúng n n+1; S S+n; Sai Điều kiện TQ Sai Đúng Câu lệnh SƠ ĐỒ KHỐI Để dẫn máy tính thực các hoạt động lặp trê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 (13) Tiết 42- Bài Ví dụ lệnh lặp với số lần chưa biết trước Cú pháp: While <điều kiện> <câu lệnh >; Trong đó: While, do: là các từ khóa while Điều kiện Câu lệnh Điều kiện: thường là phép so sánh Câu lệnh: có thể là câu lệnh đơn giản hay câu lệnh ghép (14) Tiết 42- Bài Ví dụ lệnh lặp với số lần chưa biết trước Bước Quan : Kiểm sáttra sơđiều đồ kiện Bướckhối, : - hãy Nếucho điềubiết kiện sai, câu cách thực lệnh bị bỏ quahiện và việc thực lệnh lặpcâu kếtlệnh thúc.lặp? - Nếu điều kiện đúng, thực câu lệnh và quay lại bước KẾT THÚC Chừng nào điều kiện còn đúng thì câu lệnh còn thực (15) Tiết 42- Bài 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, là các 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, là các từ khóa Điều kiện là a>b (chứa phép so sánh) Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép) (16) Tiết 42- Bài 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 while n<=5 begin writeln(n); n:=n+1; end; (17) n:=1 while n<=5 begin writeln(n); n:=n+1; end; M« pháng thuËt to¸n: Bắt đầu n := 635<= 4<= 21<= <=5? 5? Sai Kết Đúng Viết Viết15432ra ramàn mànhình hình n:= n:=1+1=2 2+1=3 3+1=4 4+1=5 5+1=6 Kết thúc (18) Tiết 42- Bài Các hoạt động lặp với số lần chưa biết trước: VD 3: Dùng câu lệnh lặp While … để viết chương trình thể thuật toán Ví dụ (Sgk) S 0, n Nếu S≤1000, thì: n n+1; S S + n và quay lại bước Ngược lại, chuyển tới bước In kết quả: n là số tự nhiên để tổng S nhỏ cho S>1000 Kết thúc thuật toán (19) Tiết 42- Bài 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 … để viết chương trình thể thuật toán Ví dụ (Sgk) var S,n: integer; Begin S:=0; n:=0; while S<=1000 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; End (20) CỦNG CỐ (21) BÀI TẬP VẬN DỤNG (22) Câu hỏi Nếu S=10, x=2 Sau thực câu lệnh While S>5 S:=S-x; writeln(S); Thì giá trị S là: A C 10 B D Nhóm thảo luận phút sau đó chọn giá trị S (23) Caâu 2: Haõy chæ loãi caùc caâu leänh sau ñaây? a) X:= 10; while X:= 10 X:= X + 5; Thừa dấu: b) X:= 10; while X = 10 X = X + 5; Thieáu daáu : c) S:= 0; n:=0; while S <= 10 n:= n + 1; S:= S + n ; Thieáu Begin Thieáu End (24) Câu 3: Đoạn lệnh sau đây cho kết là gì? S:=1; While s < 10 Begin writeln(s); s:=s+1; end; A In Inra racaù caùccsoá sốtừ từ11đế đếnn99 B In Inra racaù caùccsoá sốtừ từ11đế đếnn10 10 C In Inra racaù caùccsoá soá11 D Khoâ Khoânnggphöông phöôngaùaùnnnaø nàoođú đúnng.g (25) • Về nhà học thuộc bài • Làm bài tập 1,2,3a SGK • Đọc trước phần còn lại bài (26)