2 HS trả lời: HS1: cấu trúc của câu lệnh lặp với số lần chưa biết trước: While < điều kiện> do ; Trong đó: - điều kiện thường là một phép so sánh - câu lệnh thường là câu lệnh đơn giản h[r]
(1)Giáo án tin học Ngày soạn: Ngày dạy: 09/03/2011 Tiết 54 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 cú pháp và hoạt động câu lệnh lặp với số lần không biết trước - Biết số lỗi lập trình cần tránh Kĩ năng: Rèn luyện kĩ sử dụng các câu lệnh lặp không xác định Pascal Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học II Chuẩn bị: Sách giáo khoa, máy tính điện tử III Hoạt động dạy và học Hoạt động GV Hoạt động HS Hoạt động 1: Kiểm tra bài cũ GV đặt câu hỏi và gọi HS trả lời ?: Hãy nêu cấu trúc câu lệnh lặp với số lần chưa biết trước? ?: câu lệnh lặp thực nào? Hãy vẽ sơ đồ khối mô tả hoạt động đó HS trả lời: HS1: cấu trúc câu lệnh lặp với số lần chưa biết trước: While < điều kiện> <câu lệnh>; Trong đó: - điều kiện thường là phép so sánh - câu lệnh thường là câu lệnh đơn giản hay câu lệnh ghép HS2: câu lệnh lặp thực sau: 1, Kiểm tra điều kiện 2, điều kiện sai, câu lệnh bị bỏ qua và việc thực lệnh lặp kết thúc Nếu điều kiện đúng thì thực câu lệnh và quay lại bước Sơ đồ khối: Trịnh Kiều Nga Lop8.net (2) Giáo án tin học Ngày soạn: Ngày dạy: 09/03/2011 GV nhận xét và cho điểm Hoạt động 2: Ví dụ lặp với số lần chưa biết trước Ví dụ Chương trình Pascal + Nghiên cứu chương trình SGK theo đây thực thuật toán tính tổng n yêu cầu giáo viên số ví dụ 2: Var S, n: integer; Begin S:= 0; n:=1; While S<= 1000 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); Readln End + Kết nhận sau chạy - Yêu cầu học sinh tìm hiểu chương chương trình là n = 45 và tổng tiên lớn 1000 là 1034 trình SGK ? Hãy cho biết kết nhận sau chạy chương trình HS viết chương trình cách Gv yêu cầu HS viết chương trình HS1: sử dụng câu lệnh for do: 1 1 T:= 0; tính tổng T= 100 For i:= to 100 T:= T+1/i; cách sử dụng câu lệnh lặp với Writeln (T); số lần biết trước for và câu HS2: sử dụng câu lệnh while do: lệnh lặp với số lần chưa biết trước T:= 0; Trịnh Kiều Nga Lop8.net (3) Giáo án tin học Ngày soạn: Ngày dạy: 09/03/2011 while Gọi HS lên bảng làm i:= 1; while i<= 100 begin T:= T+1/i; i:= i+1 end; writeln (T); GV cho HS nhận xét bài làm bạn, ? em có nhận xét gì kết hai chương trình trên? Ví dụ này cho thấy chúng ta có thể sử dụng While thay cho câu lệnh For chương trình trên có cùng kết Hoạt dộng 3: Lặp vô hạn lần- Lỗi lập trình cần tránh GV cho ví dụ: Var a: integer; Begin a:= 5; while a< writeln (‘ A’); end ? em hãy cho biết chương trình trên, vòng lặp có kết thúc không? Vì sao? Trong chương trình trên, vòng lặp không kết thúc Vì: giá trị biến a luôn 5, điều kiện a< luôn luôn đúng nên lệnh writeln (‘ A’) luôn thực GV lưu ý HS: 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 kết thúc Khi thực vòng lặp, điều kiện câu lệnh phải thay đổi để sớm hay muộn giá trị điều kiện chuyển từ đúng sang sai Chỉ chương trình không “rơi” vào “vòng lặp vô tận” Hoạt động 3: Củng cố GV yêu cầu HS đọc ghi nhớ SGK vài học sinh đọc ghi nhớ Trịnh Kiều Nga Lop8.net (4) Giáo án tin học Ngày soạn: Ngày dạy: 09/03/2011 Gv cho HS làm bài tập SGK Hãy tìm hiểu các thuật toán sau đây và cho biết thực thuật toán, máy tính thực bao nhiêu vòng lặp? Khi kết thúc, giá trị S bao nhiêu? Viết chương trình Pascal thể các thuật toán đó a) Thuật toán Bước S 10, x 0.5 Bước Nếu S 5.2, chuyển tới bước Bước S S x và quay lại bước Bước Thông báo S và kết thúc thuật toán b) Thuật toán Bước S 10, n Bước Nếu S ≥ 10, chuyển tới bước Bước n n + 3, S S n quay lại bước Bước Thông báo S và kết thúc thuật toán HS trả lời: a) Thuật toán 1: 10 vòng lặp thực 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 S:=S-x; writeln(S); b) Thuật toán 2: Không vòng lặp nào thực vì từ đầu điều kiện đã không thỏa mãn nên các bước và bị bỏ qua S = 10 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 begin n:=n+3; S:=S-n end; writeln(S); IV, Hướng dẫn nhà: - Ghi nhớ cú pháp và hoạt động vòng lặp while - Trả lời câu hỏi và làm bài tập SGK Trịnh Kiều Nga Lop8.net (5)