Ghi nhớ - Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể và chỉ dừng lại khi đ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ó[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) Hãy quan sát 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? (3) BÀI LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (4) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Caù 8:c hoạt động lặp với số lần chưa biết trước: VD1(Sgk): Một ngày khác, Long định cứ 10 phút gọi điện lần cho Trang nào có người nhấc máy Chưa thể biết trước Điều seõt laë p clạhoạ i hoạ t ng laëp kieäLong n để kế thuù t độ độđó ng laø goïcoù i ñieä n maá y laà ? y ngườ i nhaá cn maù (5) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Caù 8:c hoạt động lặp với số lần chưa biết trước: Bạn Giang phải làm bài tập làm xong Cô phải tới nhà Anh Quân 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? (6) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Caù 8:c hoạt động lặp với số lần chưa biết trước: VD2(Sgk): Nếu cộng n số tự nhiên đầu tiên (n = 1, 2, 3….) Ta các kết quả: T = 1 T2 = + T3 = + + +…(Tăng dần) Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận tổng Tn nhỏ lớn 1000? Điều kiện nào thì Điều kiện: Khi tổng Tn nhỏ kết thúc hoạt động lặp? lớn 1000 thì kết thúc hoạt động lặp (7) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC 1.8: 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) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Caù 8: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: Bước 1: S 0, n Bước 2: Nếu S≤1000, n n+1; Ngược lại, chuyển tới bước Bước 3: S S + n và quay lại bước Bước 4: In kết quả: S và n là số tự nhiên nhỏ cho S>1000 Kết thúc thuật toán * Có thể diễn tả bài toán trên sơ đồ sau: S1000? Đúng n n+1; S S+n; Sai (9) Điều kiện ĐÚNG Hoạt động SAI Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và * Kết luận: Hoạt động dừng lại nào? lặp với số lần chưa biết trước phụ thuộc vào điều kiện và dừng lại điều kiện sai (10) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Ví 8:dụ lệnh lặp với số lần chưa biết trước While <điều kiện> <câu lệnh>; Trong đó: Đ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; (11) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Ví chưa biết trước 8:dụ lệnh lặp với số lầnĐiều kiện VD1: While a<=b a:=a+1; không có dấu : Trong đó : 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 Câu lệnh có Begin write(‘a>b’); a:=a-1; End; dấu : Trong đó : 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) (12) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Câu lệnh lặp này 8: Kiểm tra thực sau: SAI Bước : Kiểm tra điều Điều kiện kiện Bước : Nếu điều kiện SAI, câu lệnh bị bỏ qua ĐÚNG và việc thực lệnh lặp kết thúc Nếu điều kiện Thực đúng, thực câu lệnh và câu lệnh quay lại bước Kết thúc (13) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC VD: 8:Chương trình thực chào hỏi các bạn lớp (hoặc nhóm) có thể sau: Dòng lặp for Program Chao_hoi; Uses crt; Var Ten: string; Begin For i:= to Begin write('Nhap ten cua ban'); Readln(Ten); write('Chao ban ', Ten); end; readln; End (14) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC 8: Dòng lặp while Program Chao_hoi; Uses crt; Var Tieptuc: char;Ten: string; Begin Tieptuc:='c'; While Tieptuc = 'c‘ Begin write('Nhap ten cua ban '); Readln(Ten); writeln('Chao ban ',Ten); write(‘Ban co muon tiep tuc khong? '); readln(Tieptuc); end; readln; End (15) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Ví 8:dụ lệnh lặp với số lần chưa biết trước VD: Dùng câu lệnh lặp While … Do để 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(‘Tong S= ’,S,‘ va ’,n,’ la so tu nhien nho nhat cho S>1000’); Readln; End Tong S= 1035 va 45 la so tu nhien nho nhat cho S>1000 (16) CON VẬT MAY MẮN (17) 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 (18) 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 daáu : b) X:= 10; while X = 10 X = X + 5; Thieáu daáu : 23 30 29 28 26 27 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 (19) 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 (20) Caâu 4: Câu lệnh lặp While Do lặp bao nhiêu lần thì dừng lại A lần C 100 lần B 10 phụ điều kiện B voøthuộc ng laëpvào , S=5 D 2000 lần SAI SAI ROÀ ROÀII!! 23 30 29 28 26 27 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 (21) CHÚC MỪNG!! (22) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC 8: Ghi nhớ - 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>; (23) Bài LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC 8: Dặn dò - 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 - Xem trước VD3, VD4, VD5, Lặp vô hạn laàn–Loãi laäp trình caàn traùnh (24) CẢM ƠN QUÝ THẦY CÔ VÀ CÁC EM HỌC SINH (25)