I. MỤC TIÊU:
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 thỏa 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 trong một ngôn ngữ lập trình cụ thể.
3. Thái độ: Học tập nghiêm túc, có ý thức tự giác, tinh thần vươn lên vượt qua khó khăn.
II. CHUẨN BỊ:
1. Giáo viên: Sách giáo khoa, máy tính điện tử, giáo án, máy chiếu.
2. Học sinh: Vở ghi, sách giáo khoa.
III. CÁC HOẠT ĐỘNG DẠY – HỌC:
Ngày soạn: 23/03/2015 Ngày day: 25/03/2015 Tuần 27 Tiết: 53 BÀI 8. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I. MỤC TIÊU: 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 thỏa 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 trong một ngôn ngữ lập trình cụ thể. 3. Thái độ: Học tập nghiêm túc, có ý thức tự giác, tinh thần vươn lên vượt qua khó khăn. II. CHUẨN BỊ: 1. Giáo viên: Sách giáo khoa, máy tính điện tử, giáo án, máy chiếu. 2. Học sinh: Vở ghi, sách giáo khoa. III. CÁC HOẠT ĐỘNG DẠY – HỌC: 1. Ổn định lớp: 8A1: 8A2: 8A3: 2. Kiểm tra bài cũ: Câu 1: Trình bày cú pháp và cách thực hiện câu lệnh lặp với số lần chưa biết trước? 3. Bài mới: Hoạt động của GV Hoạt động của HS Nội dung ghi bảng Hoạt động 1: Lặp vô hạn lần – Lỗi lập trình cần tránh. + GV: Ôn lại cho HS về cấu trúc của câu lệnh lặp với số lần biết trước. + GV: Đặt vấn đề khi nào thì vòng lặp dừng lại. + GV: Cho HS nhắc lại câu lệnh lặp với số lần chưa biết trước. + GV: Số vòng lặp của câu lệnh phụ thuộc vào điều gì? + GV: So sánh giữa hai vòng lặp về sự khác nhau. + GV: Đặt vấn đề nếu vòng lặp chưa biết trước có điều kiện luôn đúng thì câu lệnh sẽ thực hiện như thế nào. + GV: Vậy thì khi nào vòng lặp sẽ dừng lại. + GV: Khi sử dụng vòng lặp chưa xác định cần làm gì để vòng lặp có thể dừng lại? + GV: Như vậy khi viết chương trình mà có vòng lặp không dừng lại sẽ gây ra điều gì? + GV: Đưa ra ví dụ về vòng lặp vô hạn lần. Var a: integer; Begin a:= 5; while a<6 do writeln(‘a’); readln; End. + GV: Thực hiện chạy vòng lặp trên bảng để HS có nhận xét về vòng lặp. + GV: Chương trình trên sẽ cho ra kết quả gì? + GV: Điều kiện ở chương trình trên tại sao luôn đúng. + GV: Làm thế nào để có thể đưa vòng lặp kết thúc. + GV: Đưa ra cho các HS một số ví dụ khác và yêu cầu HS xác định lỗi và sửa lại. Ví dụ 1: S:=0; n:=0; While S <= 10 do n:= n + 1; S:= S + n; Ví dụ 2: X:=10; While X:=10 do X:= X + 5; + GV: Sử dụng các ví dụ ở mục 2 trong bài phân tích cho HS thấy các vòng lặp tại sao lại dừng lại. + GV: Hướng dẫn HS cách thoát khỏi chương trình khi chạy chương trình với lỗi lặp vô hạn lần. + GV: Yêu cầu HS chạy chương trình và thực hiện thao tác. + GV: Gọi một HS lên bảng thực hiện thao tác. + GV: Yêu cầu các bạn khác nhận xét bổ xung. + GV: Lưu ý: Khi viết chương trình sử dụng cấu trúc lặp cần tránh tạo vòng lặp không bao giờ kết thúc. + HS: Trình bày về câu lệnh lặp For .. to .. do. + HS: Khi biến đếm lớn hơn giá trị cuối. + HS: Trình bày về câu lệnh lặp While .. Do. + HS: Phụ thuộc vào điều kiện trong vòng lặp. + HS: Vòng lặp for..do có lần lặp biết trước còn while..do thì chưa biết trước số vòng lặp. + HS: Vòng lặp sẽ không dừng lại và câu lệnh sau do thực hiện vô hạn lần. + HS: Khi điều kiện trong vòng lặp phải sai. + HS: Làm cho giá trị các biến trong điều kiện của câu lệnh phải được chuyển từ đúng sang sai. + HS: Chương trình thực hiện vô hạn lần mà không thể đưa ra được kết quả. + HS: Gõ đoạn chương trình trên vào Pascal. Var a: integer; Begin a:= 5; while a<6 do writeln(‘a’); readln; End. + HS: Thực hiện chạy vòng lặp và nhận xét kết quả đạt được. + HS: Câu lệnh xuất a ra màn hình được thực hiện liên tục. + HS: Vì trong điều kiện a luôn bằng 5 và nhỏ hơn 6. + HS: Cần phải đưa giá trị a về giá trị sai trong điều kiện. + HS: Chú ý về điều kiện trong câu lệnh lặp có đưa từ giá trị đúng về sai hay không. Ví dụ 1: Sửa lại S:=0; n:=0; While S <= 10 do begin n:= n + 1; S:= S + n; end; Ví dụ 2: Sửa lại X:=10; While X=10 do X:= X + 5; + HS: Năm bắt được các biến trong điều kiện thay đổi và trở về giá trị sai để kết thúc vòng lặp. + HS: Thực hiện nhấn tổ hợp phím Ctrl + Break để thoát khỏi vòng lặp vô hạn khi chạy chương trình. + HS: Thực hiện thao tác theo cá nhân theo sự hướng dẫn. + HS: Một em lên bảng thực hiện thao tác theo yêu cầu. + HS: Các bạn khác nhận xét bổ xung cho bạn mình. + HS: Ghi nhớ các yêu cầu khi thực hiện sử dụng câu lệnh lặp với số lần không xác định. 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. Củng cố - Củng cố lỗi lặp vô hạn lần cần tránh. 5. Dặn dò: - Ôn lại nội dung lặp với lần chưa biết trước chuẩn bị nội dung bài tập. IV. RÚT KINH NGHIỆM: Program Chao_hoi; Uses Crt; Var Tieptuc: Char; Ten: String; Begin Tieptuc:= ‘c’; While Tieptuc = ‘c’ do Begin Write(‘Nhap ten: ’); Readln(Ten); Writeln(‘Chao ban ’, Ten); Write(‘Tiep tuc? c/k’); Readln(Tieptuc); End; Readln; End.
Tài liệu đính kèm: