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... Các hoạt động lặp với số lần chưa biết trước: 2.[r]
(1)Câu hỏi - Hãy nêu cú pháp câu lệnh lặp For…Do KIỂM TRA BÀI CŨ Cú pháp: For <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; (2) VD1: Viết chương trình tính tổng các số tự nhiên từ đến 100 S = + + + +100 Lặp 100 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 nhập vào các số gặp thì dừng lại Tính tổng các số vừa nhập Chưa biết lặp lần 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? (3) (4) Các hoạt động lặp với số lần chưa biết trước: Nam làm bài tập làm xong Cô phải tới nhà Tôi phải nhập liệu vào máy tính nhập xong Các em hãy cho thêm ví dụ hoạt động lặp với số lần chưa biết trước? (5) 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 khác, Long định 10 phút gọi điện lần cho Trang nào có người nhấc máy Long lặp trước lại hoạtđược Chưa thểsẽbiết động gọi điện lần? Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy (6) Các hoạt động lặp với số lần chưa biết VD2(Sgk): trước: tăng dần Điều kiện: Khi tổng Tn nhỏ Điều kiện nào hơnhoạt 1000động thì kết thì kếtlớn thúc thúc hoạt lặp?động lặp (7) Các hoạt động lặp với số lần chưa biết trước: Phân tích bài toán: n Tổng Tn T1 = T2 = + T3 = + + … Tn = + + + … +? … ? (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 (8) Các hoạt động lặp với số lần chưa biết trước: Kí hiệu S là tổng cần tìm và ta có thuật toán sau: S 0, n Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước S S + n và quay lại bước In kết quả: S và n là số tự nhiên nhỏ cho S>1000 Kết thúc thuật toán động * Có thểCác diễnhoạt tả bài toánlặp với số lần chưa biết trước trên sơ đồ sau:phụ thuộc vào cái gì và dừng lại nào? S1000? Đúng n n+1; S S+n; Sai (9) Các hoạt động lặp với số lần chưa biết trước: Quan sát sơ đồ khối sau: - Để 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 (10) Các hoạt động lặp với số lần chưa biết trước: Ví dụ lệnh lặp với số lần chưa biết trước: Câu lệnh lặp với số lần lặp cha xác định Pascal: WHILE <§iÒu kiÖn> DO <C©u lÖnh>; Trong đó: Sai §iÒu kiÖn §iÒu kiÖn: thêng lµ mét phÐp so s¸nh VÝ dô: While S<100 S:= S+1; §óng Câu lệnh: là câu lệnh đơn hay c©u lÖnh ghÐp C©u lÖnh (11) Các hoạt động lặp với số lần chưa biết trước: Ví dụ lệnh lặp với số lần chưa biết trước: Ví dụ 3: Với giá trị nào n để 1/n < 0.003 ? Viết chương Trình tính số n nhỏ để 1/n nhỏ sai số cho trước Program vd3; Uses crt; Var x: real; n: integer; Const sai_so = 0.003; Begin Clrscr; x:=1; n:=1; while x >= sai_so begin n:=n+1; x:=1/n end; writeln('so n nho nhat de 1/n <', sai_so:6:4,' la ',n); readln; End (12) Các hoạt động lặp với số lần chưa biết trước: Ví dụ lệnh lặp với số lần chưa biết trước: Ví dụ 3: Với giá trị nào n để 1/n < 0.003 ? Viết chương Trình tính số n nhỏ để 1/n nhỏ sai số cho trước phân tích ý nghĩa câu lệnh chương trình Điều kiện là gì? Câu lệnh là gì? Điều kiện là: x >= sai_so Câu lệnh là: n:=n+1; x:=1/n; Bây các em hãy chạy thử chương trình để hiểu rõ câu lệnh while với điều kiện sai_so = 0.003 - Trước bắt đầu vòng lặp while n = 1, x = - Khi bắt đầu vòng lặp while (13) Các hoạt động lặp với số lần chưa biết trước: Ví dụ lệnh lặp với số lần chưa biết trước: Bước x>=sai_so Đúng Đúng Đúng Sai n x 1/2 1/3 1/4 Kết thúc: n = 4, x= 1/4 (14) Các hoạt động lặp với số lần chưa biết trước: Ví dụ lệnh lặp với số lần chưa biết trước: Ví dụ 3: chươngTrình tính số n nhỏ để 1/n Program vd3; Uses crt; Var x: real; n: integer; Const sai_so = 0.003; Begin Clrscr; x:=1; n:=1; while x >= sai_so begin n:=n+1; x:=1/n end; writeln('so n nho nhat de 1/n <', sai_so:6:4,' la ',n); readln; End (15) (16) Câu 1: Trong các hoạt động đây, hoạt động nào là hoạt động lặp với số lần chưa biết trước? A Tính tổng các số tự nhiên từ đến 20 B Nhập các số nguyên từ bàn phím đủ 50 số C Mỗi ngày học bài lần D Nhập vào số số nhập vào là số chẵn thì dừng (17) Caâu 2: Haõy chæ loãi caùc caâu leänh sau ñaây? 23 30 29 28 26 27 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 a) X:= 10; while X:= 10 X:= X + 5; Thừa daá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 (18) 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 23 30 29 28 26 27 24 25 10 11 12 13 14 15 16 17 18 19 20 21 22 (19) Câu 4: Thuật toán sau thực bao nhiêu vòng lặp? Khi keát thuùc, giaù trò cuûa S baèng bao nhieâu? - Bước 1: S 10, x 0.5 - Bước 2: Nếu S 5.2 chuyển tới bước - Bước 3: S S –x và quay lại bước - Bước 4: Thông báo S và kết thúc thuật toán 23 30 29 28 26 27 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 A voøng laëp, S=5.5 C 11 voøng laëp, S=4.5 B 10 10 voø voønngg laë laëpp,, S=5 S=5 B D 12 voøng laëp, S=4 SAI SAI ROÀ ROÀII!! (20) - Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào điều kiện cụ thể và dừng lại điều kiện đó sai - Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng: While <điều kiện> <câu lệnh>; (21) - Về nhà học bài Làm bài tập Sgk trang 71 - Tìm thêm vài ví dụ hoạt động lặp với số lần chưa biết trước (22)