- Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn cho 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 thoả mãn.. * kỹ năng: [r]
(1)Giáo án Tin Học - Trường THCS Hải Thái Ngµy so¹n: Lặp với số lần chưa biết trước (TiÕt 49) A Môc tiªu * Kiến thức: - Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước ngôn ngữ lËp tr×nh - Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để dẫn cho máy tính thực lặp lặp lại công việc đến điều kiện nào đó thoả mãn * kỹ năng: - Nhận biết đâu là hoạt động lặp với số lần chưa biết trước * Thái độ: - Nghiêm túc, nghiên cứu tài liệu, yêu thích môn học B Phương pháp - Đặt, giải vấn đề - ThuyÕt tr×nh, ph¸t vÊn C ChuÈn bÞ Chuẩn bị giáo viên: Giáo án, SGK, phương tiện dạy học Chuẩn bị học sinh: SGK, tài liệu tham khảo, đồ dùng học tập D TiÕn tr×nh lªn líp I ổn định: KiÓm tra sÜ sè (1 phót) II KiÓm tra bµi cò: (4 phót) - ViÕt thuËt to¸n tÝnh tæng 100 sè tù nhiªn ®Çu tiªn? III Bµi míi: Đặt vấn đề: Chúng ta đã làm quen với các hoạt động lặp với số lần đã xác định trước Vậy với các hoạt động lặp với số lần chưa biết trước thì nào? TriÓn khai bµi: a Hoạt động 1: Lặp với số lần chưa biết trước (35 phút) Hoạt động thầy và trò Néi dung kiÕn thøc Các hoạt động lặp với số lần GV: Yêu cầu HS nghiên cứu ví dụ SGK và lấy chưa biết trước ví dụ các hoạt động lặp với số lần chưa a) Ví dụ 1: (SGK) biết trước? HS: Nghiªn cøu vµ ®a vÝ dô GV: Trương Quang Hiếu Lop7.net (2) Giáo án Tin Học - Trường THCS Hải Thái GV: NhËn xÐt, bæ sung GV: Giíi thiÖu vÝ dô SGK Yªu cÇu HS ®a ý tưởng thuật toán và giải thích ý tưởng? HS: Nghiªn cøu vµ tr×nh bµy GV: Phân tích thuật toán để HS nắm bắt các bước giải thuật HS: Chó ý, ghi bµi GV: Em hãy đưa ý tưởng chương tr×nh nµy? HS: Đưa ý tưởng GV: Nhận xét và đưa chương trình cho HS tham kh·o HS: Chó ý, quan s¸t, ghi bµi GV: Giới thiệu chương trình VD3 và đưa sơ đồ khối sau: Từ ví dụ và sơ đồ trên GV giới thiệu đây là c©u lÖnh cã d¹ng lÆp víi sè lÇn cha biÕt trước HS: Chó ý nghe gi¶ng vµ ghi bµi b) VÝ dô 2: - Nếu cộng n số tự nhiên đầu tiên (n = 1, 2, ) CÇn céng bao nhiªu sè tù nhiªn ®Çu tiên để ta nhận tổng Tn nhỏ lớn 1000? * ThuËt to¸n: - Bước 1: S 0, n 0; - 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 c) VÝ dô 3: - Viết chương trình in lời chào bạn lớp em, chương trình cho phép bạn nhËp tªn cña m×nh tõ bµn phÝm vµ in lêi chµo tương ứng (Giả sử: chưa biết số bạn lớp) * Chương trình (Pascal): Var Tieptuc: Char; Ten: String; Begin Tieptuc:= ‘C’; While tieptuc = C Begin Write (‘Nhap ten cua ban:‘); Readln (Ten); Writeln (‘Chao ban ‘, Ten); Write (‘Tiep tuc ? c/k ‘); Readln(tieptuc); End; Readln End IV Còng cè: (5 phót) - NhÊn m¹nh nh÷ng néi dung chÝnh, träng t©m - Hướng dẫn học sinh nghiên cứu và giải thích chương trình VD3 GV: Trương Quang Hiếu Lop7.net (3) Giáo án Tin Học - Trường THCS Hải Thái V DÆn dß: - Học bài Xem trước các phần còn lại bài “Lặp với số lần chưa biết trước” * Rót kinh nghiÖm: GV: Trương Quang Hiếu Lop7.net (4) Giáo án Tin Học - Trường THCS Hải Thái Ngµy so¹n: Lặp với số lần chưa biết trước (TiÕt50) A Môc tiªu * Kiến thức: - Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước ngôn ngữ lËp tr×nh - Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để dẫn cho máy tính thực lặp lặp lại công việc đến điều kiện nào đó thoả mãn * kü n¨ng: - Hiểu hoạt động câu lệnh lặp với số lần chưa biết trước while do… Pascal * Thái độ: - Nghiêm túc, nghiên cứu tài liệu, yêu thích môn học B Phương pháp - Đặt, giải vấn đề - ThuyÕt tr×nh, ph¸t vÊn, lµm bµi tËp theo nhãm C ChuÈn bÞ Chuẩn bị giáo viên: Giáo án, SGK, phương tiện dạy học Chuẩn bị học sinh: SGK, tài liệu tham khảo, đồ dùng học tập D TiÕn tr×nh lªn líp I ổn định: KiÓm tra sÜ sè (1 phót) II KiÓm tra bµi cò: (4 phót) - Lấy ví dụ cấu trúc lặp với số lần chưa biết trước? Trình bày sơ đồ cấu trúc? III Bµi míi: Đặt vấn đề: Chúng ta đã làm quen với các hoạt động lặp với số lần đã xác định trước Vậy với các hoạt động lặp với số lần chưa biết trước thì nào? TriÓn khai bµi: a Hoạt động 1: Lặp với số lần chưa biết trước (35 phút) Hoạt động thầy và trò Néi dung kiÕn thøc VÝ dô vÒ lÖnh lÆp víi sè lÇn cha GV: Yêu cầu HS trình bày sơ đồ mô tả cấu biết trước trúc lặp với số lần chưa biết trước * Trong pascal: HS: Lªn b¶ng thùc hiÖn - While <§iÒu kiÖn> <C©u lÖnh>; GV: Trương Quang Hiếu Lop7.net (5) Giáo án Tin Học - Trường THCS Hải Thái - 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; * Nguyên tắc hoạt động: - KiÓm tra ®iÒu kiÖn GV: Dựa vào sơ đồ mà HS đã thực để - Nếu điều kiện sai, câu lệnh bị bỏ qua và ®a có ph¸p cña c©u lÖnh lÆp víi sè lÇn viÖc thùc hiÖn lÖnh lÆp kÕt thóc NÕu ®iÒu kiÖn chưa biết trước đúng, thực câu lệnh và quay lại kiểm tra ®iÒu kiÖn HS: Chó ý nghe gi¶ng, ghi bµi GV: ta tiếp tục xét các ví dụ mà chương trình có câu lệnh với số lần lặp chưa biết trước Xét ví dụ GV: Cho học sinh quan sát phim chương trình Hs: quan sát Ví dụ Chương trình Pascal đây thể thuật toán tính số n ví dụ 2: var S,n: integer; begin S:=0; n:=1; while S<=1000 begin S:=S+n; n:=n+1; end; writeln('So n nho nhat de tong > 1000 la ',n); GV: Chạy chương trình này, ta nhận writeln('Tong dau tien > 1000 la ',S); end giá trị ntn? Ví dụ Viết chương trình tính tổng GV: giới thiệu ví dụ sgk Viết chương trình 1 T 100 tính 1 T tổng 100 Giải : Để viết 1 chương trình tính tổng GV: Ví dụ này cho thấy chúng ta có T 100 ta có thể sử dụng lệnh thể sử dụng câu lệnh while…do thay cho lặp với số lần lặp biết trước for…do: câu lệnh for…do T:=0; for i:=1 to 100 T:=T+1/i; writeln(T); Nếu sử dụng lệnh lặp while…do, đoạn chương trình đây cho cùng kết quả: T:=0; i:=1; while i<=100 begin T:=T+1/i; i:=i+1 end; GV: Trương Quang Hiếu Lop7.net (6) Giáo án Tin Học - Trường THCS Hải Thái writeln(T); GV: Giới thiệu phần GV: Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không kết thúc Hs: Chú ý nghe GV: Cho HS quan sát chương trình lặp vô hạn máy chiếu ? Vì chương trình này lÆp v« h¹n? HS: Tr¶ lêi GV: NhËn xÐt vµ lu ý cho HS Trong chương trình trên, giá trị biến a luôn luôn 5, điều kiện a<6 luôn luôn đúng nên lệnh writeln('A') luôn thực HS: Chó ý, ghi bµi * Nhận xét: Ví dụ này cho thấy chúng ta có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do LÆp v« h¹n lÇn - lçi lËp tr×nh cÇn tr¸nh var a:integer; begin a:=5; while a<6 writeln('A'); end * Lu ý: Do vậy, thực vòng lặp, điều kiện câu lệnh phải thay đổi để sớm hay muộn giá trị điều kiện chuyển từ đúng sang sai Chỉ chương trình không "rơi" vào "vòng lặp vô tận" IV Còng cè: (5 phót) - NhÊn m¹nh nh÷ng néi dung chÝnh, träng t©m - Hướng dẫn học sinh các câu hỏi và bài tập SGK V DÆn dß: - Häc bµi Lµm bµi tËp 1, 2, 3, 4, SGK ChuÈn bÞ cho bµi TH * Rót kinh nghiÖm: GV: Trương Quang Hiếu Lop7.net (7)