Giáo án Tin học 8 - Tuần 26 - Dương Phước Giàu
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.
- Biết lệnh ghép trong pascal.
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.
II. CHUẨN BỊ
- Giáo viên: Sách giáo khoa, giáo án, bài tập.
- Học sinh:Sách giáo khoa, vở, viết, thước kẻ. Xem bài mới trước khi lên lớp.
Tuần: 26 Tiết 51 Ngày soạn: 10/01/2014 Bài 8 : LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I. MỤC TIÊU 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. - Biết lệnh ghép trong pascal. 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. II. CHUẨN BỊ - Giáo viên: Sách giáo khoa, giáo án, bài tập. - Học sinh:Sách giáo khoa, vở, viết, thước kẻ. Xem bài mới trước khi lên lớp. III. HOẠT ĐỘNG DẠY HỌC Tổ chức lớp (2’) - Ổn định tổ chức. Kiểm tra sĩ số học sinh. Kiểm tra bài cũ (không thực hiện) Bài mới: * Giới thiệu bài: (1’) - Trong bài trước chúng ta đã làm quen với các hoạt động lặp và cách chỉ thị cho máy tính thực hiện các hoạt động lặp với số lần đã được xác định trước, chẳng hạn, để tính tổng các số nguyên từ 1 đến 100. Trong thực tế có nhiều hoạt động được thực hiện được lặp đi lặp lại với số lần chưa biết trước. Để thực hiện được các câu lệnh lặp như thế này trong pascal, hôm nay ta đi vào nội dung mới. * Tiến trình bài dạy: TG Hoạt động giáo viên Hoạt động học sinh Nội dung 20' Hoạt động 1: Tìm hiểu một số công việc phải thực hiện nhiều lần 1. Các hoạt động lặp với số lần chưa biết trước: Ví dụ 1: Ví dụ 2: Thuật toán tính tổng n số tự nhiên đầu tiên nhỏ nhất lớn hơn 1000. B1: . B2: Nếu ; ngược lại, chuyển tới B4. B3: và quay lại B2. B4: 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. * Sơ đồ: Đúng Sai Điều kiện Câu lệnh - Đưa ra ví dụ về hoạt động lặp với số lần chưa biết trước: Ví dụ 1 SGK. - TH1 GV giới thiệu : ?Vậy theo các em Long Đã biết trước là mình sẽ lặp lại hoạt động gọi điện đó thêm bao nhiêu lần nữa không. - TH2 GV giới thiệu: ? Lần này Long sẽ thực hiện hoạt động gọi điện mấy lần. - Giới thiệu thuật toán khái quát của ví dụ 2 SGK: Trong trường hợp này để quyết định thực hiện phép cộng với số tiếp theo hay dừng, trong từng bước ta phải kiểm tra tổng đã lớn hơn 1000 hay chưa? Kí hiệu S là tổng cần tìm ta có thuật toán như sau: - Đưa ra thuật toán (Diễn giải). - Việc thực hiện phép cộng ở thuât toán trên được lặp lại với số lần chưa biết trước, phụ thuộc vào điều kiện (S1000) và chỉ dừng khi điều kiện đó sai. - Nói chung, việc lặp lại một nhóm các hoạt động với số lần chưa xác định trước phụ thuộc vào điều kiện cụ thể có được thỏa mãn hay không và có thể được mô tả bằng sơ đồ sau: - Lắng nghe. - Biết trước, gọi thêm hai lần nữa. - Chưa thể biết trước được. Cũng có thể là một hoặc hai lần hoặc nhiều hơn nữa. - Lắng nghe. - Chú ý. - Lắng nghe. 16’ Hoạt động2: Tìm hiểu Cú pháp về câu lệnh 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: * Cú pháp: 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 này được thực hiện như sau: 1. Kiểm tra điều kiện. 2. Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và 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. - Từ sơ đồ trên giáo viên có thể khái quát thành cú pháp của câu lệnh lặp. - Điều kiện thường là một phép so sánh. (phép so sánh ở đây có thể là , >=, , <). - Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép. - Chú ý theo dõi bảng. - Lắng nghe. Bổ sung kiến thức: Có thể nêu một số ví dụ sau: Nông dân ra đồng nhổ mà nhưng không biết nhổ một buổi sáng hết bao nhiêu bó mạ. chỉ biết rằng nhổ cho đến khi hết một buổi sánh thì thôi. 4. Củng cố (5’) - Ngoài cấu trúc với số lần biết trước, ngôn ngữ lập trình còn có các câu lặp với số lần chưa biết trước. - Nêu một vài ví dụ về hoạt động lặp với số lần chưa được biết trước. - Sự khác biệt giữa câu lệnh lặp với số lần biết trước và lặp với số lần chưa biết trước. 5. Dặn dò: (1’) - Về nhà học bài - Làm bài ví dụ 3, 4 và so sánh khi ta sử dung câu lệnh For do Tuần: 26 Tiết 52 Ngày soạn: 10/02/2014 Bài 8 : LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt) I. MỤC TIÊU 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. - Biết lệnh ghép trong pascal. 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 độ - Nghiêm túc trong học tập, có tinh thần học hỏi, sáng tạo . II. CHUẨN BỊ - Giáo viên: Sách giáo khoa, giáo án, bài tập. - Học sinh:Sách giáo khoa, vở, viết, thước kẻ. Xem bài mới trước khi lên lớp. III. HOẠT ĐỘNG DẠY HỌC Tổ chức lớp (2’) - Ổn định tổ chức. Kiểm tra sĩ số học sinh. Kiểm tra bài cũ (5') * Câu hỏi: Trình bày nguyên tắc hoạt động của câu lệnh lặp với số lần chưa biết trước whiledo? * Trả lời: Bài mới: * Giới thiệu bài: (1’) - Trong bài trước chúng ta đã làm quen với các hoạt động lặp và cách chỉ thị cho máy tính thực hiện các hoạt động lặp với số lần đã được xác định trước, chẳng hạn, để tính tổng các số nguyên từ 1 đến 100. Trong thực tế có nhiều hoạt động được thực hiện được lặp đi lặp lại với số lần chưa biết trước. Để thực hiện được các câu lệnh lặp như thế này trong pascal, hôm nay ta đi vào nội dung mới. * Tiến trình bài dạy: TG Hoạt động giáo viên Hoạt động học sinh Nội dung 10' Hoạt động 1: Tìm hiểu một số ví dụ 1. Ví dụ: Ví dụ 3: Viết chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước (với giá trị nào của n thì 1/n<0.005 hoặc 1/n<0.003) Program tinhn; Uses crt; Var x:real; N:integer; Const saiso=0.003; Begin X:=1; n:=1; While x>=saiso do Begin N:=n+1; x:=1/n; End; Writeln ('so n nho nhat de 1/n <' ,saiso,'la', n); Readln; End. - Đưa ra ví dụ 3 SGK: - Chúng ta biết rằng, nếu n càng lớn thi 1/n càng nhỏ. Vậy người ta hỏi với giá trị nào của n thì 1/n<0.005 hoặc 1/n<0.003. - Yêu cầu ở đây đưa ra là gì? - Rỏ ràng để tìm giá trị n ta phải tăng n này lên từng bước, và ta sẽ tính giá trị này theo từng mức tương ứng đó. Đến khi điều kiện thỏa mản thì thôi. - Ở đây sai số này có dạng là một số thập phân, vậy ta phải khai báo chúng theo kiểu dữ liệu nào đây? - Hướng dẫn học sinh viết chương trình. - Chú ý. - Lắng nghe. - Tìm giá trị n thỏa mản điều kiện trên. - Chú ý. - Vì dạng thập phân ta sẽ khai báo chúng dưới dạng real.. - Chú ý theo dõi. - Ghi bài vào vở. 6' - Nêu yêu cầu ví dụ 4. - Nhắc lại thuật toán này trong ví dụ 2. - Gọi một học sinh lên trình bày. B1: . B2: Nếu ; ngược lại, chuyển tới B4. B3: và quay lại B2. B4: 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. - Lên bảng. Ví dụ 4: Viết chương trình thể hiện thuật toán tính tổng của n số 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); - Nhận xét, hướng dẫn viết chương trình. - Chú ý theo dõi. Writeln ('tong dau tien >1000 la', s); Readln; End. 10' - Xét ví dụ 5. - Yêu cầu học sinh nhắc lại cách tính tổng của 100 số tự nhiên đầu tiên. - Tương tự như thế, ta cũng có thể viết được chương trình này bằng cách sử dụng vòng lặp for do. - Nhận xét. - Tương tự hướng dẫn học sinh viết chương trình này nhờ vào lệnh while..do. - Theo dõi. - t:=t+i - Lên bảng trình bày. - Chú ý theo dõi. - Ghi bài vào vở. Ví dụ 5: Viết chương trình tính tổng T=1+1/2 + 1/3 +...+1/100 (Sử dụng vòng lặp for..do và while..do) Sử dụng vòng lặp for ...do T:=0; For i:=1 to 100 do T:=t+ 1/i; Writeln (t); Sử dụng vòng lặp while..do T:=0; i:=1; While i<=100 do T:=t+1/i; Writeln (t); 5’ Hoạt động2: . Lặp vô hạn lần 3. Lặp vô hạn lần – lỗi lập trình cần tránh: 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". - Đưa ra chương trình lặp lại vô tận. - Hướng dẫn cho học sinh hiểu. - Chỉ ra giá trị của biến a luôn luôn đúng nên lệnh luôn được thực hiện. - Chú ý theo dõi bảng. - Lắng nghe. 4. Củng cố (5’) Hãy nêu 1 ví dụ để chương trình bị lỗi lặp vô hạn ? So sánh về chức năng của While do & For do 5. Dặn dò: (1’) - Học bài, làm bài tập 4,5 SGK - Hệ thống lại kiến thức về lặp với số lần biết trước: cấu trúc cú pháp, từ khóa, điều kiện để tiết sau làm bài tập.
File đính kèm:
- Tuần 26.doc