Giáo án Tin học 8 - Tiết 43: Lặp với số lần chưa biết trước
Bạn đang xem tài liệu "Giáo án Tin học 8 - Tiết 43: Lặp với số lần chưa biết trước", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
giao_an_tin_hoc_8_tiet_43_lap_voi_so_lan_chua_biet_truoc.docx
Nội dung tài liệu: Giáo án Tin học 8 - Tiết 43: Lặp với số lần chưa biết trước
- Ngày dạy: Tiết 43: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC A. MỤC TIÊU CẦN ĐẠT 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: - 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. 3. 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. B. TRỌNG TÂM Hs biết cấu trúc của câu lệnh lặp C. CHUẨN BỊ 1. Phương pháp Tìm và giả quyết vấn đề. PP vấn đáp, luyện tập và thực hành, hoạt động nhóm, . 2. Phương tiện * Giáo viên: - KHDH, Tài liệu chuẩn kiến thức kỷ năng, SGK, SGV. * Học sinh: - Vở ghi, SGK, kiến thức bài cũ.
- D. HOẠT ĐỘNG DẠY - HỌC 1. Kiểm tra bài cũ: 5’ Câu hỏi: - Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3, ,99,100 Trả lời Bước 1. SUM 0; i 0. Bước 2. i i + 1. Bước 3. Nếu i ≤ 100, thì SUM SUM + i và quay lại bước 2. Bước 4. Thông báo kết quả và kết thúc thuật toán. 2. Vào bài 1’ : Với bài toán trên, trong Free Pascal ta sử dụng vòng lặp for to do thì 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 for to do, 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 quyết bài toán này chúng ta đi tìm hiểu bài mới. 3.Bài mới: HOẠT ĐỘNG CỦA GV VÀ HS TG NỘI DUNG Hoạt động 1: 1. Các hoạt động lặp với số lần - GV: Nhắc lại tác dụng của câu lệnh chưa biết trước: lặp với số lần lặp biết trước? 5’ a/ Ví dụ 1: - Để biết được các hoạt động lặp GV gọi HS đọc ví dụ. - HS lắng nghe - GV : Yêu cầu HS đọc ví dụ 1. - HS : 2-3 HS đọc ví dụ. - GV: Phân tích ví dụ
- HOẠT ĐỘNG CỦA GV VÀ HS TG NỘI DUNG - HS: Chú ý lắng nghe - GV: Trong ví dụ 1, Long gọi cho Trang, Long có xác định được Long sẽ gọi cho Trang mấy lần hay không? Khi nào hoạt động gọi điện thoại của Long kết thúc? - HS trả lời: Khi có người nhấc máy - GV: Yêu cầu HS đọc ví dụ 2 b/ Ví dụ 2: Nếu cộng lần lượt n số - HS: 2-3 HS đọc ví dụ. 5’ tự nhiên đầu tiên (n = 1, 2, 3, ), - GV: Phân tích ví dụ Cần cộng bao nhiêu số tự nhiên đầu - HS: Chú ý lắng nghe tiên để ta nhận được tổng T n nhỏ - GV: Hướng dẫn HS xây dựng thuật nhất lớn hơn 1000? toán Giải : - HS: Nghe giáo viên hướng dẫn, sau Kí hiệu S là tổng cần tìm và ta có đó tự xây dựng thuật toán thuật toán như sau: - GV: Chạy tay cho học sinh xem ( Chỉ + Bước 1. S 0, n 0. nên chạy tay thử từ 1 đến 10 ) + Bước 2. Nếu S ≤ 1000, n n + - HS : Chú ý lắng nghe và tiếp thu. 1; ngược lại chuyển tới bước 4. - HS ghi vở ví dụ 2 + 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. - GV: Việc thực hiện lập lại các phép cộng trên với số lần chưa biết trước
- HOẠT ĐỘNG CỦA GV VÀ HS TG NỘI DUNG phụ thuộc vào điều kiện gì? Phép cộng chỉ dừng khi nào? * Nhận xét : Để viết chương trình - HS trả lời: Điều kiện s do ; - HS trả lời Trong đó: - GV chốt ý: - Điều kiện thường là một phép so For := to do lệnh; - Câu lệnh có thể là câu lệnh đơn - GV: Có thể sử dụng lệnh lặp với số giản hay câu lệnh ghép. lần lặp chưa biết trước trong các * Hoạt động: chương trình lập trình. Sau đây ta xét Bước 1 : Kiểm tra điều kiện. câu lệnh và ví dụ trong TP. - GV: Giới thiệu cú pháp lệnh: Bước 2 : Nếu điều kiện SAI, câu While do <câu lệnh sẽ bị bỏ qua và việc thực hiện
- HOẠT ĐỘNG CỦA GV VÀ HS TG NỘI DUNG lệnh>; lệnh lặp kết thúc. Nếu điều kiện Trong đó: đúng, thực hiện câu lệnh và quay + Điều kiện thường là phép toán so lại bước 1. sánh + Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh phức tạp. - HS: chú ý lắng ghe và ghi chép. - GV: Dựa vào cú pháp hãy nêu hoạt đ ộng của câu lệnh lặp với số lần chưa biết trước? - HS nêu hoạt động của câu lệnh lặp với số lần chưa biết trước. - GV: Giới thiệu chương trình mẫu. - GV: Xét ví dụ 3 Ví dụ 3. Chúng ta biết rằng, nếu n càng lớn thì Với giá trị nào của n ( n>o ) thì 1/n 1/n càng nhỏ, nhưng luôn luôn lớn hơn nhỏ hơn một sai số cho trước : 0. Với giá trị nào của n thì 1/n =sai_so do begin - HS: chú ý nghe và tự chạy tay lại n:=n+1; x:=1/n end;
- HOẠT ĐỘNG CỦA GV VÀ HS TG NỘI DUNG - GV: Yêu cầu học sinh mở máy tính writeln('So n nho nhat de 1/n < và mở chương trình ví dụ 3 ( giáo viên ',sai_so:5:4, 'la ',n); chuẩn bị chương trình mẫu và đưa lên readln các máy ) end. - HS: thực hiện - GV: Cho học sinh chạy chương trình trên máy - HS: thực hiện - GV: Yêu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; - HS: thực hiện - 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 - HS: thực hiện - GV: Yêu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; - HS: thực hiện - GV yêu cầu HS đọc ví dụ 4/ Ví dụ 4. Chương trình Pascal dưới - HS đọc ví dụ 4 đây thể hiện thuật toán tính số n
- HOẠT ĐỘNG CỦA GV VÀ HS TG NỘI DUNG - GV: Cho học sinh quan sát chương trong ví dụ 2 trình var S,n: integer; - HS quan sát chương trình begin - GV: Chạy tay cho học sinh xem S:=0; n:=1; chương trình mẫu while S - GV: Chạy chương trình này, ta nhận 1000 la ',n); được giá trị ntn? writeln('Tong dau tien > 1000 la - HS: Nếu chạy chương trình này ta sẽ ',S); nhận được n = 45 và tổng đầu tiên lớn end. hơn 1000 là 1034. Ví dụ 5: Viết chương trình tí - GV: Giới thiệu ví dụ 5. - GV: Cho học sinh quan sát chương trình - HS quan sát 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 while do thay cho câu lệnh for do
- HOẠT ĐỘNG CỦA GV VÀ HS TG NỘI DUNG GV: Khi viết chương trình sử dụng cấu 3. Lặp vô hạn lần – Lỗi lập trình trúc lặp cần chú ý tránh tạo nên vòng 5’ cần tránh: lặp không bao giờ kết thúc. - Khi thực hiện vòng lặp, điều kiện Chẳng hạn, chương trình dưới đây sẽ trong câu lệnh phải được thay đổi lặp lại vô tận: để sớm hay muộn giá trị của điều var a:integer; kiện được chuyển từ đúng sang sai. Chỉ như thế chương trình mới begin không "rơi" vào những "vòng lặp a:=5; vô tận". while a<6 do writeln('A'); end. - HS quan sát - Vì sao chương trình trên lặp vô hạn lần? - HS trả lời: 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
- 4 : Cũng cố 8’ - Nêu vài ví dụ về hoạt động lặp với số lần chưa biết trước? - Nêu cú pháp câu lệnh lặp While do? Dựa trên sơ đồ hãy nêu quá trình thực hiện câu lệnh lặp? 5. Hướng dẫn về nhà 1’: - Học bài và xem lại bài kết hợp xem SGK - Làm các bài tập vào vở