Ví dụ về lệnh lặp với số lần chưa biết trước: VD 4: 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 Begin.. begin end;..[r]
(1)(2) 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>; (3) VD1: Viết chương trình tính tổng các số tự nhiên từ đến 100 S = + + + +100 Laëp 100 laà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? (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: VD1(Sgk): VD1 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 lại hoạt Chưa thể biết trước độ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) : VD2 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) Ví dụ lệnh lặp với số lần chưa biết trước: VD1: While a<=b a:=a+1; Trong đó : Câu lệnh là a:=a+1 (câu lệnh đơn) VD2: While S<=10 Begin n:=n-1; S:=S+n End; Trong đó : Câu lệnh là câu lệnh ghép) VD3: While i<=100 Begin T:=T+1/i; i:=i+1 End; (11) Ví dụ lệnh lặp với số lần chưa biết trước: Hãy nêu cấu trúc lặp với câu lệnh while - do? 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: là môt câu lệnh Pascal (có thể là câu lệnh đơn hay câu lệnh ghép) (12) Ví dụ lệnh lặp với số lần chưa biết trước: VD 4: Dùng câu lệnh lặp While … Do để viết chương trình thể thuật toán Ví dụ (Sgk) Begin begin end; End (13) Ví dụ lệnh lặp với số lần chưa biết trước: VD 5: Để viết chương trình tính Begin begin end; End 1 tổng: T 1 100 (14) sử dụng for…do: T:=0; for i:=1 to 100 T:=T+1/i; writeln(T); sử dụng while…do T:=0; i:=1; while i<=100 begin T:=T+1/i; i:=i+1 end; writeln(T); (15) Sử dụng câu lệnh ghép (16) Biến đếm là i; Giá trị đầu là 1, giá trị cuối là 100 (17) Lặp vô hạn - lỗi lập trình cần tránh: Ví dụ : Var a:integer ; Begin a:=5; While a< Write(' Chuong trinh chay mai khong thoat duoc'); End Lưu ý: Khi viết chương trình với câu lệnh lặp, điều kiện phải thay đổi để chương trình không gặp lỗi lặp vô hạn (18) Caâu Caâu Học sinh thảo luận Caâu Caâu (19) 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 23 30 29 28 26 27 24 25 10 11 12 13 14 15 16 17 18 19 20 21 22 (20) 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 (21) 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 (22) 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!! (23) - 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>; (24) - Veà nhaø hoïc baøi Laøm baøi taä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 (25)