Tiết 50, Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (T2)
(GIÁO ÁN DỰ GIỜ)
A. MỤC TIÊU
Sau khi học xong bài này học sinh cần đạt được các mục tiêu sau:
1. Kiến thức:
- Hiểu 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.
- Hiểu 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ủa lệnh lặp với số lần chưa biết trước while.do trong Pascal.
3. Thái độ:
- Hình thành phương pháp làm việc khoa học.
- Vận dụng vào trong học tập và thực tiễn.
Ngày soạn: 01/03/2011 Ngày dạy: / /2011 Lớp: 8 Giáo viên hướng dẫn: Lê Đình Trung Giáo viên soạn: Cái Thị Hạ Ngân Tiết 50, Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (T2) (GIÁO ÁN DỰ GIỜ) A. MỤC TIÊU Sau khi học xong bài này học sinh cần đạt được các mục tiêu sau: 1. Kiến thức: - Hiểu 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. - Hiểu 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ủa lệnh lặp với số lần chưa biết trước while...do trong Pascal. 3. Thái độ: - Hình thành phương pháp làm việc khoa học. - Vận dụng vào trong học tập và thực tiễn. B.Chuẩn bị 1. Giáo viên - Bài giảng truyền thống, bài giảng điện tử - Sơ đồ logic nội dung. - Máy tính, Projector 2. Học sinh - SGK, và dụng cụ học tập. C. Phương pháp - Thuyết trình. - Vấn đáp. - Trực quan. - Phát hiện và giải quyết vấn đề. D. Tiến trình lên lớp I. Ổn định tổ chức(1p) - Kiểm tra sĩ số( vắngphép,không phép). - Ổn định chổ ngồi học sinh. II. Kiểm tra bài cũ(5p) Câu hỏi 1: Em hãy nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước trong cuộc sống hàng ngày của chúng ta? Câu hỏi 2: Hãy nêu cú pháp và hoạt động của vòng lặp While ..do. III. Triển khai bài mới(35p) Chúng ta đã được 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ì như thế nào? Chúng ta đi vào phần tiếp theo của bài lặp với số lần chưa biết trước.(2p) HOẠT ĐỘNG CỦA THẦY VÀ TRÒ NỘI DUNG BÀI MỚI 1. Ví dụ về lệnh lặp với số lần chưa biết trước GV: Yêu cầu HS đọc ví dụ 4. HS: Đọc ví dụ 4. GV: Chạy tay cho HS xem chương trình mẫu. HS: Chú ý nghe và tự chạy tay lại. GV: Cho HS quan sát chương trình. HS: Quan sát chương trình GV: Chạy chương trình này, ta nhận được giá trị như thế nào? 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. GV: Yêu cầu học sinh đọc ví dụ 5 và viết chương trình sử dụng lệnh for...do HS: Viết chương trình. GV: Gọi một em lên bảng viết lại bằng lệnh Whiledo. HS: Thực hiện. GV: Chạy chương trình cho học sinh quan sát. Yêu cầu so sánh kết quả khi chạy hai chương trình. HS: Thực hiện. GV: Em có nhận xét gì qua hai ví dụ trên? HS: 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. GV: Yêu cầu học sinh viết chương trình với câu lệnh while...do HS: Viết chương trình. Ví dụ về lệnh lặp với số lần chưa biết trước 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 S:=S+n; n:=n+1; end; writeln('So n nho nhat de tong > 1000 la ',n); writeln('Tong dau tien > 1000 la ',S); end. 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: 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: 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 giảng. GV: Cho HS quan sát chương trình lặp vô hạn. Sau đó đặt câu hỏi vì sao chương trình này lặp vô hạn? var a: integer; begin a:=5; while a<6 do writeln('A'); end. HS: Quan sát và trả lời GV: Nhận xét và lưu ý cho HS. 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". HS: Ghi bài. Lặp vô hạn lần – lỗi lập trình cần tránh * Lưu ý: 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". IV. Củng cố (3p) Câu 1: Chương trình sau đây tính tổng 10 số tự nhiên đầu tiên. Hãy nhìn vào chương trình sau và phát hiện lỗi sai của chương trình. GV đưa ra chương trình đúng như sau: V. Dặn dò (1p) + Làm các bài tập 3, 4, 5 trang 71 SGK. + Xem trước Bài thực hành - Học bài cũ. - Viết các thuật toán cho hai bài tập trên. E. RÚT KINH NGHIỆM Ngày tháng năm 2011 Duyệt GV hướng dẫn Lê Đình Trung
Tài liệu đính kèm: