BÀI 8: 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ụ + 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 ) 1. CỎC HOạT độNG LặP VớI Số LầN CHưA BIếT TRướC a/ V ớ dụ 1(sgk). + Hs : 2-3 hs đọc ví dụ sgk + Hs : Chỳ ý lắng nghe 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 + 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 + 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 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ề LệNH LặP VớI Số LầN CHưA BIếT TRướC 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 > ; trỡnh . Sau đây ta xét câu lệnh và ví dụ trong TP + 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 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ớ 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à 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; 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 ) + 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 thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; n: integer; 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 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 chưa biết trước. . BÀI 8: 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ố. 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ề LệNH LặP VớI Số LầN CHưA BIếT TRướC 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. 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 +