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 trong 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 để chỉ dẫn máy t[r]
(1)Ngµy d¹y: Ngµy d¹y: / / / 2010.T¹i líp 8A1; / 2010.T¹i líp 8A2; Tiết 49: Bài Lặp với số lần chưa biết trước I Môc tiªu bµi häc: 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 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; 2.Kü n¨ng: Kỹ đọc chương trình, vận nào dùng lệnh lặp với số lần chưa biết trước 3.Thái độ Yªu thÝch m«n häc, t vËn dông gi¶i to¸n II ChuÈn bÞ cña gi¸o viªn vµ hoc sinh ChuÈn bÞ cña GV: - Gi¸o ¸n, SGK, m¸y tÝnh, §DDH ChuÈn bÞ cña HS: - SGK, vë ghi, §DHT III Hoạt động dạy và học Líp 8A1: / Líp 8A2: Hoạt động thầy và trò 1.KiÓm tra bµi cò ( phót) ? Em hãy viết sơ đồ và trình bày hoạt động vòng lặp với số lần biết trước D¹y néi dung bµi míi Hoạt động ( 15 phút) Các hoạt động lặp với số lần chưa biết trước GV: Đặt vấn đề: Em h·y nªu mét sè vÝ dô vÒ sè lÇn lÆp với số lần biết trước HS: Tr¶ lêi ? Lấy ví dụ số lần chưa biết trước HS: tr¶ lêi GV: ViÖc lÆp nh thÕ phô thuéc vµo ®iÒu kiÖn nµo? HS đọc ví dụ SGK HS: §äc th«ng tin vÝ dô SGK / Néi dung chÝnh Các hoạt động lặp với số lần chưa biết trước Ví dụ 1(SGK) Ví dụ : Nếu cộng n số tự nhiên đầu tiên (n = 1, 2, 3, ), Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận tổng Tn nhỏ lớn 1000? Giải : Kí hiệu S là tổng cần tìm và ta có thuật toán sau: 25 Lop8.net (2) GV: Hướng dẫn ví dụ ? Long thùc hiÖn c«ng viÖc g× VD HS: Tr¶ lêi ? NÕu Trang vÉn cha nghe ®iÖn th× Long thùc hiÖn c«ng viÖc gäi ®iÖn nh thÕ nµo? HS: Tr¶ lêi ? nµo th× Long dõng gäi ®iÖn HS: Tr¶ lêi HS: Chó ý ghi bµi GV: Cho HS đọc ví dụ SGK HS: §äc th«ng tin VD2 GV: Gi¶ng vÝ dô ? C«ng viÖc nµo thùc hiÖn nhiÒu lÇn HS: Tr¶ lêi ? Khi nµo th× viÖc tÝnh tæng dõng HS: Tr¶ lêi GV: §a thuËt to¸n HS: Chó ý ghi bµi GV: Đưa sơ đồ lặp hình 39 HS: Quan s¸t ghi bµi Hoạt động ( 18 phút) Ví dụ lệnh lặp với số lần chưa biết trước GV: §a có ph¸p c©u lÖnh lÆp víi sè lần chưa biết trước 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 có thể là câu lệnh đơn giản hay câu lệnh ghép Câu lệnh lặp này thực sau: Bước : Kiểm tra điều kiện Bước : Nếu điều kiện SAI, câu lệnh bị bỏ qua và việc thực lệnh lặp kết thúc Nếu điều kiện đúng, thực câu lệnh và quay lại bước GV: §a a vÝ dô 3; HS: §äc th«ng tin vÝ dô GV: Më phÇn mÒm Pascal cho ch¹y chương trình ví dụ - + Bước S 0, n + Bước Nếu S ≤ 1000, n n + 1; ngược lại chuyển tới bước + Bước S S + n và quay lại bước + Bước In kết : S và n là số tự nhiên nhỏ cho S > 1000 Kết thúc thuật toán * Ta có sơ đồ khối : * Nhận xét : Để viết chương trình dẫn máy tính thực các hoạt động lặp các ví dụ 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 Ví dụ lệnh lặp với số lần chưa biết trước 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>; đó: - đ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 Câu lệnh lặp này thực sau: Bước : Kiểm tra điều kiện - Bước : Nếu điều kiện SAI, câu lệnh bị bỏ qua và việc thực lệnh lặp kết thúc Nếu điều kiện đúng, thực câu lệnh và quay lại bước Ví dụ 27 Lop8.net (3) Thay các sai số là 0,003 và 0,002 vµ 0,001 Cho c¸c kÕt qu¶ kh¸c HS: Chó ý ghi bµi GV: §a vÝ dô trªn m¸y Và hướng dẫn trên máy Ví dụ Chương trình Pascal đây thể thuật toán tính số n ví dụ 2: Với giá trị nào n ( n>o ) thì < n < 0.003? Chương trình n đây tính số n nhỏ để nhỏ n 0.005 sai số cho trước : uses crt; var x: real; n: integer; var S,n: integer; const sai_so=0.003; begin begin S:=0; n:=1; clrscr; while S<=1000 x:=1; n:=1; begin n:=n+1; S:=S+n end; while x>=sai_so begin n:=n+1; writeln('So n nho nhat de tong > 1000 x:=1/n end; la ',n); writeln('So n nho nhat de 1/n < writeln('Tong dau tien > 1000 la ',S); ',sai_so:5:4, 'la ',n); end readln end 3.Cñng cè luyÖn tËp (5 phót) GV: Tóm tắt kiến thức trọng tâm đã học GV: Cho HS lµm bµi tËp SGk HS: tr¶ lêi Hướng dẫn học nhà (2 phút) Về nhà học sinh học cấu trúc vòng lặp với số lần chưa biết trước Hoạt động vßng lÆp Xem l¹i c¸c vÝ dô SGK vµ tr¶ lêi c©u hái vµ bµi tËp 3,4 ChuÈn bÞ cho tiÕt sau: GV: So¹n bµi, nghiªn cøu tµi liÖu, chuÈn bÞ bµi trªn m¸y, phiÕu häc tËp HS:Häc bµi cò, phiÕu häc tËp 28 Lop8.net (4) Ngµy d¹y: Ngµy d¹y: / / / 2010.T¹i líp 8A1; / 2010.T¹i líp 8A2; Tiết 50: Bài Lặp với số lần chưa biết trước (tiếp) I Môc tiªu bµi häc: KiÕn thøc: Hiểu hoạt động câu lệnh lặp với số lần chưa biết trước 2.Kü n¨ng: Kỹ đọc chương trình, vận nào dùng lệnh lặp với số lần chưa biết trước 3.Thái độ Yªu thÝch m«n häc, t vËn dông gi¶i to¸n II ChuÈn bÞ cña gi¸o viªn vµ hoc sinh ChuÈn bÞ cña GV: - Gi¸o ¸n, SGK, m¸y tÝnh, §DDH ChuÈn bÞ cña HS: - SGK, vë ghi, §DHT III Hoạt động dạy và học Líp 8A1: / Líp 8A2: / Hoạt động GV và HS Néi dung chÝnh 1.KiÓm tra bµi cò (5 phót) ViÕt có ph¸p vßng lÆp víi sè lÇn cha biết trước Hoạt động vòng lặp 2.D¹y néi dung bµi míi Hoạt động ( 20 phút) GV: §a vÝ dô Tæ chøc HS theo nhãm nhá thùc hiÖn: Viết chương trình tính tổng; 1 T 100 HS:Thùc hiÖn phót Nép phiÕu häc tËp NhËn xÐt chÐo GV: kÕt luËn c¸c nhãm GV: Sö dông vßng lÆp víi sè lÇn cha biết trước áp dụng vào bài HS: Tr¶ lêi GV: NhËn xÐt Ví dụ Viết chương trình tính tổng 1 T 100 Giải : Để viết chương trình tính tổng 1 ta có thể sử dụng T 100 lệnh lặp với số lần lặp biết trước 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ả: 29 Lop8.net (5) T:=0; i:=1; while i<=100 begin T:=T+1/i; i:=i+1 end; writeln(T); * 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 Hoạt động (5 phút) Lặp vô hạn lần – Lỗi lập trình cần tránh GV: Đặt vấn đề ví dụ bạn Trang Khi viết chương trỡnh sử dụng cấu trỳc kh«ng nhÊc ®iÖn tho¹i th× Long cø 10 lặp cần chú ý tránh tạo nên vòng lặp phót l¹i gäi ®iÖn, không kết thúc GV: Cho HS đọc thông tin mục HS:§äc th«ng tin GV: §a vÝ dô minh häa Cñng cè vµ luyÖn tËp ( 13 phót) GV: Tæ chøc Hs theo nhãm ban thùc hiÖn lµm bµi tËp SGk r71 Hs: Thực hoạt động nhóm phót Nép phiÕu häc tËp NhËn xÐt chÐo gi÷a c¸c nhãm GV: KÕt luËn GV: Cho HS lµm bµi tËp SGK tr71 HS: lµm bµi tËp Hướng dẫn học nhà (2 phút) Về nhà học sinh học cấu trúc vòng lặp với số lần chưa biết trước Hoạt động vßng lÆp Xem l¹i c¸c vÝ dô SGK vµ tr¶ lêi c©u hái vµ bµi tËp 3,4 ChuÈn bÞ cho tiÕt sau: GV: So¹n bµi, nghiªn cøu tµi liÖu, chuÈn bÞ bµi trªn m¸y, phiÕu häc tËp HS:Häc bµi cò, phiÕu häc tËp 29 Lop8.net (6)