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