Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 GIÁO ÁN MƠN TIN HỌC TUẦN 26 Tiết PPCT: 13 Tiết TKB: 3 LỚP: 8/1 Ngày soạn : 27/02/2010 Ngày dạy : 02/03/2010 GVHD: La Thị Huyền Đan SV dạy: Trần Ngọc Khoa BÀI8.LẶPVỚISỐLẦNCHƯABIẾTTRƯỚC I. MỤC TIÊU - Kiến thức: + Biết nhu cầu cần có cấu trúc lặpvớisốlầnchưabiếttrước trong ngơn ngữ lập trình. + Biết ngơn ngữ lập trình dùng cấu trúc lặpvớisốlầnchưabiếttrước để chỉ dẫn máy tình thực hiện lặp đi lặp lại cơng việc đến khi một điều kiện nào đó được thỏa mãn. + Hiểu hoạt động của câu lệnh lặpvớisốlầnchưabiếttrước While do trong Pascal. - Kỹ năng: vận dụng được câu lệnh While do để giải các bài tập có cấu trúc lặpvớisốlầnchưabiết trước. - Thái độ: tập trung, tích cực trong giờ học. II. CHUẨN BỊ - GV: giáo án, sgk, bảng phụ. - HS: xem kỹ bài cũ, đọc trướcbài mới. III. TIẾN TRÌNH BÀI DẠY HĐ1: Kiểm tra bài cũ, đặt vấn đề vào bài mới ( 8’) - HS: (?) Câu lệnh For to do dùng để làm gì? (?) Cho biết cấu trúc của câu lệnh lặp For to do? Bài8.Lặpvớisốlầnchưabiếttrước 1 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 + Cho đoạn chương trình sau Var i, j: in te ge r; be gi n j := 0; F or i := 1; t o 3 do j := j+ i ; en d; (?) Hãy kiểm tra xem chương trình có lỗi hay khơng và cho biết sau khi thực hiện chương trình, biến j sẽ mang giá trị bằng bao nhiêu? - GV nhận xét, cho điểm. - Đặt vấn đề vào bài mới: Xét bài tốn sau: “Tính tổng S của 100 số tự nhiên đầu tiên 1, 2, 3, 100. S = 1 + 2 + 3 + … + 100”. Vớibài tốn trên, ta nhận thấy tổng S sẽ được tính sau 99 lầnlặp lại thao tác cộng, ta dễ dàng giải quyết bài tốn bằng lệnh lặp For to do trong Turbo Pascal. Nhưng nếu như bài tốn trên trở thành “Tính tổng S các số tự nhiên đầu tiên S = 1 + 2 + 3 + … cho đến khi S>1000”. Vấn đề đặt ra ở đây là chúng ta phải thực hiện thao tác cộng bao nhiêu lần để điều kiện S>1000 được thỏa mãn. Rõ ràng ta thấy xuất hiện sự lặp lại thao tác cộng vớisốlầnchưabiết trước. Vậy, lặpvớisốlầnchưabiếttrước là như thế nào? Trong ngơn ngữ lập trình Pascal được thể hiện ra sao? Để tìm hiểu kỹ hơn về vấn đề này, chúng ta vào bài8.Bài8. LẶP VỚISỐLẦNCHƯABIẾTTRƯỚCTrước tiên ta cần hiểu rõ thế nào là lặpvớisốlầnchưabiếttrước thơng qua một số ví dụ. Bài8.Lặpvớisốlầnchưabiếttrước 2 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 HĐ2: 1) Tìm hiểu một số ví dụ về Các hoạt động lặpvớisốlầnchưabiếttrước (20’) HOẠT ĐỘNG CỦA GV HOẠT ĐỘNG CỦA HS NỘI DUNG a) GV cho một số ví dụ - Gieo hai hạt xí ngầu cho đến khi được hai mặt có cùng số nút. (?) Phải gieo bao nhiêu lần? (?) Khi nào ngừng gieo? - Thử nhiều chìa khóa vào một ổ khóa cho đến khi tìm được đúng chìa khóa của ổ khóa. (?) Phải thử bao nhiêu lần? (?) Khi nào ngừng thử? - HS ghi nhận - Khơng thể biết trước. - Khi hai mặt cùng số nút. - HS ghi nhận - Khơng thể biết trước. - Khi tìm được đúng chìa khóa để mở ổ khóa. 1. Các hoạt động lặpvớisốlầnchưabiếttrước - Nhận xét: có sự lặp lại cho đến khi thỏa mãn một điều kiện nào đó. Xét ví dụ trong SGK để làm rõ vấn đề này. - HS ghi nhận. b) Xét Ví dụ 1 SGK - Gọi HS đọc Ví dụ 1. - GV phân tích vế đầu: bạn Nam lặp lại thao tác gọi điện thoại trong 3 lần. (?) Việc bạn Nam thực hiện ba cuộc gọi có phải là hoạt động lặpvớisốlầnchưabiếttrước hay là hoạt động lặpvớisốlầnbiếttrước ? - Đó là hoạt động lặpvớisốlầnlặpbiết trước. a) Ví dụ 1 SGK trang 67 - GV phân tích vế sau: bạn Nam lặp lại thao tác gọi điện Bài8. Lặp vớisốlầnchưabiếttrước 3 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 thoại cho đến khi nào có người nhấc máy. (?) Việc gọi điện thoại cho đến khi có người nhấc máy là hoạt động lặpvớisốlầnbiếttrước hay chưabiết trước? - Hoạt động lặp vớisốlầnchưabiết trước. (?) Khi nào thì hoạt động lặp lại này kết thúc? - Khi có người nhấc máy nghe điện thoại. (?) Nếu khơng có người bắt máy thì sẽ như thế nào? - Tiếp tục gọi cho đến khi có người nhấc máy. - Ta thấy có sự lặp lại các thao tác tương tự nhau (gieo xí ngầu, thử chìa khóa, gọi điện thoại) vớisốlầnlặp là chưa thể biết trước, cho đến khi thỏa mãn một điều kiện nào đó (hai mặt có cùng số nút, tìm đúng chìa khóa, có người nhấc máy nghe điện thoại). Đây chính là hoạt động lặp vớisốlầnchưabiết trước. Ta sẽ đi sâu vào vấn đề này qua Ví dụ 2. c) Xét Ví dụ 2 - Gọi HS đọc Ví dụ 2 - Cá nhân HS đọc. b) Ví dụ 2 SGK 67 (?) Bài tốn u cầu làm gì? - Cá nhân HS dựa vào SGK trả lời. (?) Hãy giải thích cụm từ “Tổng tự nhiên nhỏ nhất lớn hơn 1000”? - Cộng các số tự nhiên đến một giá trị n nào đó thì tổng S sẽ lớn hơn 1000. Giá trị S tại thời điểm đó Bài8. Lặp vớisốlầnchưabiếttrước 4 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 gọi là “Tổng tự nhiên nhỏ nhất lớn hơn 1000”. - GV nhận xét, tóm ý. - HS ghi nhận. - Gợi ý hướng giải quyết bài tốn: + Gán S 0 =0; + Tính S 1 : S 1 = S 0 + n (n=1); + Xét điều kiện, nếu S 1 <1000 thì tính S 2 =S 1 +n (n=2); nếu S 1 >1000 thì dừng lại. + Thực hiện tương tự với n=3,4… cho đến khi có một số n mà S n >1000. - HS ghi nhận. - Cho HS (chia 4 nhóm) thảo luận nhóm (trong 4 phút) làm rõ các bước của thuật tốn ở Ví dụ 2. (?) Biến n có ý nghĩa gì? (?) Giải thích từng bước của thuật tốn? - Thảo luận nhóm. - Lưu trữ giá trị tăng dần của các số tự nhiên. - B1: gán giá trị cho biến; B2: thực hiện thao tác so sánh. Nếu S<= 1000 thì tăng n, tức gán giá trị của số tự nhiên tiếp theo vào n, ngược lại thì kết thúc bài tốn. B3: thực hiện cộng tổng S = S +n và trở về B2. B4: in kết quả. - GV nhận xét. - HS ghi nhận. (?) Ở ví dụ 2 ta có xác định được sốlầnlặp lại khơng? - Khơng thể xác định được. Bài8.Lặpvớisốlầnchưabiếttrước 5 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 (?) Vòng lặp phụ thuộc vào điều kiện nào? - Phụ thuộc vào điều kiện S<=1000. (?) Khi nào kết thúc vòng lặp? - Khi S>1000 (tức điều kiện sai). (?) Tổng qt : việc lặpvớisốlầnchưabiếttrước phụ thuộc vào điều gì? Phụ thuộc như thế nào? - Cá nhân HS trả lời. - Việc lặpvớisốlầnchưabiếttrước phụ thuộc vào một điều kiện cụ thể nào đó có được thỏa mãn hay khơng. - Gọi HS đọc nội dung SGK. - Cá nhân HS đọc. - Treo hình 39 (SGK 68) và gọi HS mơ tả. - GV nhận xét. - Ta đã hiểu được thế nào là thao tác lặpvớisốlầnchưabiết trước. Vậy trong Pascal thao tác này được thể hiện như thế nào? Ta hãy tìm hiểu phần 2. - Cá nhân HS mơ tả + B1 : Xét điều kiện. + B2 : Nếu điều kiện đúng thì thực hiện câu lệnh và quay trở lại B1, ngược lại kết thúc bài tốn. - Có thể mơ tả việc lặpvớisốlầnchưabiếttrước bằng sơ đồ khối dưới đây HĐ3: 2. Ví dụ về lệnh lặpvớisốlầnchưabiếttrước (12’) - Giới thiệu câu lệnh lặp While do - HS ghi nhận - Câu lệnh lặpvớisốlầnchưabiếttrước có dạng While <điều kiện> do <câu lệnh>; + Điều kiện thường là một phép so sánh. Bài8.Lặpvớisốlầnchưabiếttrước 6 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 + Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép. (?) Câu lệnh While do được thực hiện như thế nào? - HS dựa vào SGK trả lời. - Câu lệnh While do được thực hiện: 1. Kiểm tra điều kiện. 2. Nếu điều kiện sai, câu lệnh bỏ qua, lệnh lặp kết thúc; điều kiện đúng, câu lệnh được thực hiện và quay lại bước 1. - Dùng câu lệnh While do viết chương trình thực hiện bài tập ở ví dụ 2. Hướng dẫn : (?) Chương trình cần những biến nào? Khai báo ra sao? (?) Điều kiện ở đây là gì? (?) Câu lệnh ở đây là gì? - HS (chia 4 nhóm) thảo luận (trong 4 phút) - Biến S và n. S:=0; n:=0; - S<= 1000. - While S<=1000 do Begin n:=n+1; S:= S+n; End; - u cầu các nhóm trình bày vào bảng phụ và treo lên bảng - Các nhóm hồn thành chương trình vào bảng phụ và treo lên bảng. - GV nhận xét và cho HS ghi nhận vào vở. - HS ghi nhận. HĐ4: Củng cố (4’) (?) Lặpvớisốlầnbiếttrước và lặpvớisốlầnchưabiếttrước - Cá nhân HS trả lời. Bài8.Lặpvớisốlầnchưabiếttrước 7 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 khác nhau như thế nào? (?) Cho một số ví dụ trong cuộc sống thể hiện lặpvớisốlầnchưa biết? - Cá nhân HS cho ví dụ. (?) Câu lệnh While do được thực hiện như thế nào? - Cá nhân HS trả lời. HĐ5: Dặn dò (1’) - Về xem lại cấu trúc của lệnh lặp While do, so sánh sự khác nhau giữa câu lệnh For to do với While do. - Đọc trướcbài mới. Duyệt của GVHD Trường THCS. Phường 4, ngày 27/02/2010 SV soạn TRẦN NGŠC KHOA Bài8.Lặpvớisốlầnchưabiếttrước8 . chúng ta vào bài 8. Bài 8. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Trước tiên ta cần hiểu rõ thế nào là lặp với số lần chưa biết trước thơng qua một số ví dụ. Bài 8. Lặp với số lần chưa biết trước 2 Trường. cố (4’) (?) Lặp với số lần biết trước và lặp với số lần chưa biết trước - Cá nhân HS trả lời. Bài 8. Lặp với số lần chưa biết trước 7 Trường Trung học Cơ sở Phường 4 Giáo án Tin học 8 khác nhau. việc lặp với số lần chưa biết trước bằng sơ đồ khối dưới đây HĐ3: 2. Ví dụ về lệnh lặp với số lần chưa biết trước (12’) - Giới thiệu câu lệnh lặp While do - HS ghi nhận - Câu lệnh lặp với số lần chưa