A. MỤC TIÊU:
+) 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;
+) Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước.
+) Biết sửa lổi và viết được chương trình một số bài toán cơ bản.
B. CHUẨN BỊ:
1. Giáo viên: Soạn bài, đọc tài liệu tham khảo, dung cu day học.
2. Học sinh: Đọc tr¬ớc bài, làm các bài tập, dụng cụ học tập.
D¹y líp: 8A; 8B; 8E. Ngµy so¹n: 17/02/2010. TiÕt PPCT: 45. Ngµy d¹y: 19/02/2010. BÀI TẬP A. MỤC TIÊU: +) 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; +) Hiểu hoạt động của câu lệnh lặp với số lần chưa biết trước. +) Biết sửa lổi và viết được chương trình một số bài toán cơ bản. B. CHUẨN BỊ: 1. Giáo viên: Soạn bài, đọc tài liệu tham khảo, dung cu day học. 2. Học sinh: Đọc trớc bài, làm các bài tập, dụng cụ học tập. C. TIẾN TRÌNH TIẾT DẠY: HOẠT ĐỘNG CỦA THẦY VÀ TRÒ KIẾN THỨC CẦN ĐẠT Hoạt động 1: Bài tập 2: Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp chưa biết trước. GV: Hướng dẫn HS làm bài tập 3. +) Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể hiện các thuật toán đó! a) Thuật toán 1 Bước 1. S ¬ 10, x ¬ 0.5. Bước 2. Nếu S £ 5.2, chuyển tới bước 4. Bước 3. S ¬ S - x và quay lại bước 2. Bước 4. Thông báo S và kết thúc thuật toán. b) Thuật toán 2 Bước 1. S ¬ 10, n ¬ 0. Bước 2. Nếu S ≥ 10, chuyển tới bước 4. Bước 3. n ¬ n + 3, S ¬ S - n quay lại bước 2. Bước 4. Thông báo S và kết thúc thuật toán. Cho nhận xét của em! Hoạt động 2: Hướng dẫn về nhà: Xem lại các bài đã làm, làm tiếp các bài còn lại, tiết sau làm tiếp các dạng BT. HS: TRả lời yêu cầu của GV. Bài tập 2: +) Như tên gọi của nó, câu lệnh lặp với số lần lặp cho trước chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được xác định từ trước, còn với câu lệnh lặp với số lần lặp chưa biết trước thì số lần lặp chưa được xác định trước. +) Trong câu lệnh lặp với số lần cho trước, điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa, còn trong câu lệnh lặp với số lần lặp chưa biết trước, điều kiện tổng quát hơn nhiều, có thể là kiểm tra một giá trị của một số thực, cũng có thể là một điều kiện tổng quát khác, ví dụ như một số có chia hết cho 3 hay không,... +) Trong câu lệnh lặp với số lần cho trước, câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Trong câu lệnh lặp với số lần chưa xác định trước, trước hết điều kiện được kiểm tra. Nếu điều kiện được thỏa mãn, câu lệnh mới được thực hiện. Do đó có thể có trường hợp câu lệnh hoàn toàn không được thực hiện. Bài 3: a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng: S:=10; x:=0.5; while S>5.2 do S:=S-x; writeln(S); b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng: S:=10; n:=0; while S<10 do begin n:=n+3; S:=S-n end; writeln(S); Nhận xét: Trong các thuật toán và chương trình trên, điều kiện được kiểm tra trước khi các bước lặp được thực hiện. Do đó nếu điều kiện không được thỏa mãn ngay từ đầu, các bước lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp while..do.
Tài liệu đính kèm: