TIẾT 49: LẬP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I.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 while do… trong Pascal. II. Chuẩn bị - GV: Giáo án, máy chiếu, máy tính. - HS: Sách, vởđọc trước bài ở nhà. III. Tiến trình dạy - học Hoạt động 1: Kiểm tra bài củ Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,…,99,100 Bước 1. SUM 0; i 0. Bước 2. i i + 1. Bước 3. Nếu i ≤ 100, thì SUM SUM + i và quay lại bước 2. Bước 4. Thông báo kết quả và kết thúc thuật toán. Đặt vấn đề: Với bài toán trên, trong TP ta sử dụng vòng lặp for…to…do thì sẽ thực hiện dễ dàng . Nhưng nếu ta thay số 100 bởi n ( tính tổng n số tự nhiên đầu tiên ) thì ta sẽ gặp nhiều khó khăn trong việc sử dụng vòng lặp for…to…do bởi lúc này số lần lặp không biết trước. Vậy ta phải làm như thế nào ? Giới thiệu bài mới . Hoạt động 2: Các hoạt động lặp với số lần chưa biết trước + G : y/c hs đọc ví dụ 1sgk/67 + G : Phân tích ví dụ 1. Các hot đng lp vi s ln cha bit trc a/ Ví dụ 1(sgk). + Hs : 2-3 hs đọc ví dụ sgk + Hs : Chú ý lắng nghe + G : Hướng dẫn hs xây dựng thuật toán + G : Ch ạy tay cho h ọc sinh xem ( Chỉ nên ch ạy tay thử từ 1 đến 10 ) b/ Ví dụ 2 : Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3, ), Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng T n nhỏ nhất lớn hơn 1000? + Hs : Nghe giáo viên hướng dẫn, sau đó tự xây dựng thuật toán + Hs : Chú ý nghe . Hs ghi vở ví dụ 2 Giải : Kí hiệu S là tổng cần tìm và ta có thuật toán như sau: + Bước 1. S 0, n 0. + G : Giới thiệu sơ đồ khối + Bước 2. Nếu S ≤ 1000, n n + 1; ngược lại chuyển tới bước 4. + Bước 3. S S + n và quay lại bước 2. + Bước 4. 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. * Ta có sơ đồ khối : * Nhận xét : Để viết chương trình + G : Nêu nhận xét + G : Có thể sử dụng lệnh lặp với số lần lặp chưa biết trước trong các chương trình lập trình . Sau đây ta xét câu lệnh và ví dụ trong TP chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa biết trước 2. Ví d v lnh lp vi s ln cha bit trc Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng: while <điều kiện> do <câu lệnh>; + G : Giới thiệu cú pháp lệnh while … do ….; + G : Xét ví dụ 3 Chúng ta biết rằng, nếu n càng 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 lặp này được thực hiện như sau: Bước 1 : Kiểm tra điều kiện. Bước 2 : Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và việc 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à lớn thì 1 n càng nhỏ, nhưng luôn luôn lớn hơn 0. Với giá trị nào của n thì 1 n < 0.005 hoặc 1 n < 0.003 ? ( Gv đưa phim trong ví dụ 3 ) + G : giới thiệu chương trình mẫu sgk ( Giáo viên in chương trình mẫu trên phim trong ) quay lại bước 1. Ví dụ 3. + Hs : Đọc ví dụ 3 + Hs : quan sát Với giá trị nào của n ( n>o ) thì 1 n < 0.005 hoặc 1 n < 0.003? Chương trình dưới đây tính số n nhỏ nhất để 1 n nhỏ hơn một sai số cho trước : uses crt; var x: real; n: integer; + G : Ch ạy tay cho học sinh xem + G : Yêu cầu học sinh mở máy tính và mở chương trình ví dụ 3 ( giáo viên chuẩn bị chương trình mẫu và đưa lên các máy ) + G : Cho học sinh chạy chương trình trên máy + G : Yêu cầu hs const sai_so=0.003; begin clrscr; x:=1; n:=1; while x>=sai_so do begin n:=n+1; x:=1/n end; writeln('So n nho nhat de 1/n < ',sai_so:5:4, 'la ',n); readln end. + Hs : thực hiện thay iu kin sai_so = 0.003 thnh 0.002 ; 0.001 ; 0.005 ; Hoạt động 3: Củng cố - Giáo viên hệ thống lại toàn bộ kiến thức đã học. Hoạt động 4: Hớng dẫn về nhà - Học bài theo sách giáo khoa và vở ghi. - Làm bài tập 1, 2, 3 SGK trang71. - Đọc trớc Bài 8: lặp với số lần cha biết trớc. . Củng cố - Giáo viên hệ thống lại toàn bộ kiến thức đã học. Hoạt động 4: Hớng dẫn về nhà - Học bài theo sách giáo khoa và vở ghi. - Làm bài tập 1, 2, 3 SGK trang71. - Đọc trớc Bài 8: lặp với. G : Ch ạy tay cho học sinh xem + G : Yêu cầu học sinh mở máy tính và mở chương trình ví dụ 3 ( giáo viên chuẩn bị chương trình mẫu và đưa lên các máy ) + G : Cho học sinh chạy chương. Pascal. II. Chuẩn bị - GV: Giáo án, máy chiếu, máy tính. - HS: Sách, vởđọc trước bài ở nhà. III. Tiến trình dạy - học Hoạt động 1: Kiểm tra bài củ Viết thuật toán tính tổng 100 số tự nhiên