Giáo án Tin học Lớp 8 - Tuần 23 - Năm học 2017-2018
I. Mục tiêu bài học:
1. Kiến thức, kĩ năng, thái độ
* 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;
* Kĩ năng: Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while.do trong Pascal.
* Thái độ: Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng.
2. Năng lực có thể hình thành và phát triển cho học sinh:
- Hình thành năng lực giải quyết vấn đề và sáng tạo, năng lực khoa học máy tính cơ bản: So sánh được vòng lặp For to do và vòng lặp While do.
- Hình thành khả năng hoạt động nhóm trao đổi tìm ra kiến thức
II. Chuẩn bị về tài liệu và phương tiện dạy học:
- GV: Giáo án, máy chiếu, máy tính.
- HS: Sách, vở đọc trước bài ở nhà.
III. Tổ chức hoạt động học của học sinh:
1. Hoạt động dẫn dắt vào bài:
2. Kiểm tra bài cũ:
Câu 1: Viết cú pháp câu lệnh lặp với số lần chưa biết trước rồi giải thích?
Câu 2: làm bài tập 2 trang 71
3. Hoạt động hình thành kiến thức:
Ngày soạn: 21/02/2018 Tuần: 23 Tiết: 45 BÀI 8: 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, kĩ năng, thái độ * 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; * Kĩ năng: Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while...do trong Pascal. * Thái độ: Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng. 2. Năng lực có thể hình thành và phát triển cho học sinh: - Hình thành năng lực giải quyết vấn đề và sáng tạo, năng lực khoa học máy tính cơ bản: Đưa ra được các ví dụ trong thực tế, tự xây dựng được thuật toán. II. Chuẩn bị về tài liệu và phương tiện dạy học: - GV: Giáo án, máy chiếu, máy tính. - HS: Sách, vở đọc trước bài ở nhà. III. Tổ chức hoạt động học của học sinh: Hoạt động dẫn dắt vào bài: 2. Kiểm tra bài cũ: * Giới thiệu bài mới: Với bài toán trên, trong TP ta sử dụng vòng lặp fortodo sẽ thực hiện dễ dàng . Nhưng nếu ta thay số 100 bởi n ( tính tổng n số tự nhiên đầu tiên ) thì ta sẽ gặp nhiều khó khăn trong việc sử dụng vòng lặp fortodo bởi lúc này số lần lặp không biết trước. Vậy ta phải làm như thế nào ? Giới thiệu bài mới . 3. Hoạt động hình thành kiến thức: HOẠT ĐỘNG CỦA GV - HS NỘI DUNG Hoạt động 1. Các hoạt động lặp với số lần chưa biết trước Gv: y/c hs đọc ví dụ 1sgk/67 Gv: Phân tích vớ dụ Hs: 2-3 hs đọc ví dụ sgk Hs: Chú ý lắng nghe Gv: Hướng dẫn hs xây dựng thuật toán Hs: Chú ý nghe Gv: Chạy tay cho học sinh xem ( Chỉ nên chạy tay thử từ 1 đến 10 ) Hs ghi vở ví dụ 2 Gv : : Giới thiệu sơ đồ khối Hoạt động 2: . Ví dụ về lệnh lặp với số lần chưa biết trước Gv: Nêu nhận xét Gv: Có thể sử dụng lệnh lặp với số lần lặp chưa biết trước trong các chương trình lập trình . Sau đây ta xét câu lệnh và ví dụ trong TP Gv: Giới thiệu cú pháp lệnh while do .; Gv: xét ví dụ 3 Chúng ta biết rằng, nếu n càng lớn thì càng nhỏ, nhưng luôn luôn lớn hơn 0. Với giỏ trị nào của n thỡ < 0.005 hoặc < 0.003 ? Gv: đưa phim trong ví dụ 3 ) Gv: giới thiệu chương trình mẫu sgk ( GV in chương trinh mẫu trên. Gv: Chạy tay cho học sinh xem Gv: Yêu cầu học sinh mở máy tính và mở chương trình ví dụ 3 ( giáo viên chuẩn bị chương trình mẫu và đưa lên các máy ) Hs: thực hiện Gv: Cho học sinh chạy chương trình trên máy Gv: Yêu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; ... 1. Các hoạt động lặp với số lần chưa biết trước a/ Ví dụ 1(sgk). b/ 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? + Hs: Nghe giáo viên hướng dẫn, sau đó tự xây dựng thuật toán 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. + Hs : Đọc ví dụ 3 + Hs : quan sát 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. Hoạt động luyện tập: Giáo viên hệ thống lại toàn bộ kiến thức đã học. 5. Hoạt động vận dụng: 6. Hoạt động tìm tòi, mở rộng IV. RÚT KINH NGHIỆM: .. Ngày soạn: 21/02/2018 Tuần: 23 Tiết: 46 BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt) I. Mục tiêu bài học: Kiến thức, kĩ năng, thái độ * 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; * Kĩ năng: Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước while...do trong Pascal. * Thái độ: Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng. 2. Năng lực có thể hình thành và phát triển cho học sinh: - Hình thành năng lực giải quyết vấn đề và sáng tạo, năng lực khoa học máy tính cơ bản: So sánh được vòng lặp Fortodo và vòng lặp Whiledo. - Hình thành khả năng hoạt động nhóm trao đổi tìm ra kiến thức II. Chuẩn bị về tài liệu và phương tiện dạy học: - GV: Giáo án, máy chiếu, máy tính. - HS: Sách, vở đọc trước bài ở nhà. III. Tổ chức hoạt động học của học sinh: 1. Hoạt động dẫn dắt vào bài: 2. Kiểm tra bài cũ: Câu 1: Viết cú pháp câu lệnh lặp với số lần chưa biết trước rồi giải thích? Câu 2: làm bài tập 2 trang 71 3. Hoạt động hình thành kiến thức: HOẠT ĐỘNG CỦA GV - HS NỘI DUNG Hoạt động 1: Tìm hiểu 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 - Gv: ta tiếp tục xét các ví dụ mà trong chương trình có câu lệnh với số lần lặp chưa biết trước + Hs: chú ý nghe . + Hs : thực hiện - Gv: Chạy tay cho học sinh xem - Gv: Cho học sinh chạy chương trình trên máy - Gv: chạy chương trình này, ta nhận được giá trị ntn? + Hs: Nếu chạy chương trình này ta sẽ nhận được n = 45 và tổng đầu tiên lớn hơn 1000 là 1034. Ví dụ 5. Viết chương trình tính tổng + Hs: quan sát Để 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); + Hs: chú ý nghe và tự chạy tay lại + Hs: Kết quả bằng nhau 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. Viết chương trình tính tổng + - Gv: Cho học sinh quan sát. + - Gv: Chạy tay ( cả hai chương trình ) cho học sinh xem - Gv: so sánh kết quả khi chạy hai chương trình - Gv: 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. Hoạt động 2: Lặp vô hạn lần – Lỗi lập trình cần tránh - Gv: Giới thiệu phần 3 - 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 bao giờ kết thúc + Hs: Chú ý nghe - Gv: Chẳng hạn, chương trình dưới đây sẽ lặp lại vô tận: - Gv: Trong chương trình trên, giá trị của biến a luôn luôn bằng 5, điều kiện a<6 luôn luôn đúng nên lệnh writeln('A') luôn được thực hiện. Do vậy, khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện được chuyển từ đúng sang sai. Chỉ như thế chương trình mới không "rơi" vào những "vòng lặp vô tận". 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. 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. var a: integer; begin a:=5; while a<6 do writeln('A'); end. 4. Hoạt động luyện tập: Giáo viên hệ thống lại toàn bộ kiến thức đã học. 5. Hoạt động vận dụng: Vẽ được sơ đồ 3 bước các thông tin trong thực tế. 6. Hoạt động tìm tòi, mở rộng IV. RÚT KINH NGHIỆM: ...................................................................................................................................... Khánh Hưng, ngày: 22/02/ 2018 Kí duyệt: Phạm Huy Bình
File đính kèm:
- giao_an_tin_hoc_lop_8_tuan_23_nam_hoc_2017_2018.doc