Tải bản đầy đủ (.pdf) (6 trang)

Giáo án Tin học Lớp 8 - Tiết 43, Bài 8: Lặp với số lần chưa biết trước - Năm học 2008-2009

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (213.07 KB, 6 trang )

<span class='text_page_counter'>(1)</span>Tuần: 23 Tiết: 43 Ngày soạn: 21/01/2009 Ngày dạy: 09/02/2009 Bài8: 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 bi: 1. Chuẩn bị của giáo viên: - Giáo án, dồ dùng dạy học. - Ví dụ minh họa. 2. Chuẩn bị của học sinh: - Học bài cũ. - Xem trước bài mới. III. Hoạt động lên lớp: 1. Ổn định lớp: - Giữ trật tự. - Điểm danh sỉ số lớp. 2. Kiểm tra bài cũ: Câu 1: Giải thích lại câu lệnh lặp .. For< Biến đếm>:=< giá trị đầu> to < Giá trị cuối> do< câu lệnh>; Câu 2: Cho ví dụ về câu lệnh lặp .. For< Biến đếm>:=< giá trị đầu> to < Giá trị cuối> do< câu lệnh>; 3. Nội dung: Giới thiệu bài mới: Tiết trước chúng ta đã được làm quen với câu lệnh lặp với số lần biết trước, tiết này chúng ta sẽ học thêm về một câu lệnh lặp mới trong PASCAL. Câu lệnh lặp này dùng giải quyết những bài toán lặp lai mà không biết trước số lần lặp là bao nhiêu hay còn gọi là “ Lặp với số lần chưa biết trước ” HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH 1. Hoạt động 1: Các hoạt động lặp với số lần chưa biết trước - GV: Để tính tổng 100 số tự nhiên đầu tiên, em cần viết câu lệnh để máy tính thực hiện ít nhất bao nhiêu lần? - HS: 99 lần. - GV: Trong thực tế có nhiều hoạt động được lặp đi lặp lại với số lần chưa biết trước. Đưa Lop8.net. NỘI DUNG 1. Các hoạt động lặp với số lần chưa biết trước - Trong thực tế có những hoạt động được lặp đi lặp lại với số lần chưa biết trước..

<span class='text_page_counter'>(2)</span> ra các ví dụ thực tế về việc lặp đi lặp lại với số lần chưa xác định trước. * Ví dụ 1: - GV: Điều kiện để kết thúc việc lặp đi lặp lại goi điên thoại cua ban LONG là gi? - HS: có người nhấc máy. - GV: Hãy nêu một vài ví dụ về lặp với số lần chưa biết trước. - HS: Nêu ví dụ. * Ví dụ 2: - GV: đưa ra ví dụ này, giới thiệu thuật toán. - GV: Việc thực hiện lặp đi lặp lại các phép cộng trong thuật toán trên cũng chưa xác đinh đươc số vòng lặp. Vậy nó phụ thuộc vào điều kiên gi? Chỉ dừng lại khi nào? - HS: Điều kiên S<= 1000, và chỉ dừng lại khi điều kiện sai. - GV: Tóm lại các hoạt động lặp chỉ dừng lại khi nào? - HS: Chỉ dừng lại khi được thỏa mãn một điều kiện nào đó…. - GV: Đưa ra sơ đồ miêu tả hình 39 SGK/68. 2. Hoạt động 2: Ví dụ về lệnh lặp với số lần chưa biết trước - GV: Em hãy nhắc lại cấu trúc câu lệnh lặp với số lần biết trước. - HS: For< Biến đếm>:=< giá trị đầu> to < Giá trị cuối> do< câu lệnh>; - GV: Giới thiệu câu lệnh WHILE … DO; Hướng dẫn HS cách viết câu lệnh và giải thích các thành phần của câu lệnh. - HS: Lắng nghe và ghi bài. - GV: Yêu cầu HS nhận xét về cấu trúc câu lệnh. Giải thích nghĩa của câu lệnh theo nghĩa cũa tiếng ANH. - HS: Trong khi(khi)….thi thực hiện(làm)….. - GV: Nhấn mạnh các hoạt động của câu lệnh + Trước tiên Hoạt động nào đươc diễn ra? - HS: Kiểm tra điều kiện. + Nếu điều kiện sai thì thực hiện lệnh gì? - HS: Câu lệnh bỉ bỏ qua và việc lặp kết thúc. + Nếu điều kiện đúng thì thưc hiện lệnh gì? - HS: Thực hiện câu lệnh và quay lại kiểm Lop8.net. * Ví dụ 1: (SGK/67) Lặp lại việc gọi điện thoại cho đến khi có người nhấc máy.. * Ví dụ 2: (SGK/67,68) Lặp lại việc tính tổng các số tự nhiên đầu tiên cho đến khi tổng đó lớn hơn 1000. - Tóm lại: Việc lặp lại một hoạt động với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể có được thỏa mản hay không. Sơ đồ:. 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>; - 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..

<span class='text_page_counter'>(3)</span> tra điều kiện. * Bài tập nhóm: - HS: Thảo luận nhóm về sự giống nhau và khác nhau giữa hai câu lệnh FOR ... DO và WHILE ... DO. - GV: Nhận xét và đưa ra kết quả thảo luận. * Câu hỏi HSG: Với hai câu lệnh trên ta có thể dùng để giải quyết một bài toán cụ thể được hay không? 4. Củng cố: - Nhắc lại cấu trúc câu lệnh lặp với số lần chưa biết trước? - Nhác lại thành phần và từng bước thực hiện câu lệnh. 5. Dặn dò. - Dặn dò học sinh về nhà học bài. - Xem tiếp phần còn lại. - Tìm hiểu ý nghĩa chương trình trong các ví dụ. IV. Rút kinh nghiệm: ........................................................................................................... ................................................................................................................................................. ................................................................................................................................................. .................................................................................................................................................. Lop8.net.

<span class='text_page_counter'>(4)</span> Tuần: 23 Tiết: 44 Ngày soạn: 21/01/2009 Ngày dạy: 10/02/2009 Bài8: LẶP. VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(tt). 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 bi: 1. Chuẩn bị của giáo viên: - Giáo án, dồ dùng dạy học. - Ví dụ minh họa. 3. Chuẩn bị của học sinh: - Học bài cũ. - Xem trước bài mới. III. Hoạt động lên lớp: 1. Ổn định lớp: - Giữ trật tự. - Điểm danh sỉ số lớp. 2. Kiểm tra bài cũ: Câu 1: Nêu cấu trúc câu lệnh lặp với số lần không biết trước? Câu 2: Giải thích các thành phần và từng bước thực hiện? Câu 3: Điểm khác nhau giữa hai câu lệnh lặp đã học? 3. Nội dung: Giới thiệu bài mới: Chúng ta đã được học về cấu trúc vòng lặp While ... do, hôm nay chúng ta sẽ hiểu rõ hơn câu lệnh và cách sử dụng câu lệnh trong chương trình như thế nào thông qua các ví dụ. Đồng thời các em cũng sẽ được làm quen với lỗi cần tranh strong khi sử dụng vòng lăp là “ vô hạn lần”. HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH 1. Hoạt động 1: Các ví dụ * Ví dụ 3: - GV: Cho HS thảo luận nhóm trong VD 3 để phân tích ý nghĩa câu lệnh trong chương trình. - Thảo luận nhóm: cử đại diện lên trả lời.. Lop8.net. NỘI DUNG 2. Ví dụ về lệnh lặp với số lần chưa biết trước * Ví dụ 3:SGK/69 x:=1; n:=1; while x>=sai_so do begin n:=n+1; x:=1/n end;.

<span class='text_page_counter'>(5)</span> * Ví dụ 4: SGK/69 * Ví dụ 4: SGK/69 - GV: Đưa ra ví dụ 4, yêu cầu HS đọc lại VD2. - HS: đọc lại ví dụ 2. - GV: Cho HS tính tổng s, và n trong 5 vòng lặp đầu tiên. Sau đó cho HS đọc đáp án của bài toán - HS: … n=45, s= 1034.. S:=0; n:=1;. * Ví dụ 5: SGK/69 - GV: ở bài toán này ta tinh cũng tương tự như việc tính tổng 100 số tự nhiên đầu tiên. Vơi i: biến đếm, T: biến tổng, ta có công thức sau: T:=T+1/I; Bài toán này ta có thể giải bằng hai cách, Dùng lệnh lặp với số lần biết trước và lệnh lặp với số lần không biết trước. Hãy nhận xét kết quả của hai chương trình. - HS: Kết quả giống nhau. - GV: Qua đó ta thấy có thể sử dụng while … do thay thế cho For … do và ngược lại.. Ví dụ 5. Để viết chương trình tính tổng 1 1 1 T  1    ...  ta có thể sử dụng lệnh 2 3 100 lặp với số lần lặp biết trước for…do:. while S<=1000 do begin n:=n+1; S:=S+n end;. T:=0; for i:=1 to 100 do T:=T+1/i; writeln(T);. Nếu sử dụng lệnh lặp while…do, đoạn chương trình dưới đây cũng cho cùng một kết quả: T:=0; i:=1; while i<=100 i:=i+1 end;. do. begin. T:=T+1/i;. writeln(T);. Ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do.. 2. Hoạt động 2: Lỗi lập trình cần tránh - GV: khi sử dụng lệnh lặp, chúng cần tranh lỗi lặp đi lặp lai không có điểm dừng của vòng lặp. Người ta gọi lỗi như thế là lặp vô hạn lần. var a:integer; begin a:=5; while a<6 do writeln('A'); end.. - GV: Em thấy điều kiện trong chương trình trên có gì đặc biệt? - HS: Luôn đúng. - Gv: Trong chương trình trên, giá trị của biến a luôn luôn bằng 5, điều kiện a<6 luôn luôn đúng. Lop8.net. 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"..

<span class='text_page_counter'>(6)</span> nên lệnh writeln('A') luôn được thực hiện. KHi viết chương trình không nên để máy tính thực hiện những vòng lặp vô hạn.. * Hoạt động nhóm: Tìm ba ví dụ thỏa: + vd1: Sử dụng lệnh lăp While … do. + vd2: Sử dụng lệnh lặp FOR… do + vd3: lặp vô han lần. * Câu hỏi HSG: Xác đinh một số nguyên tố. Biết: SNT là số chia hết cho 1 và chính nó.. 4. Củng cố: - GV: Cho HS đọc phần ghi nhớ. - Trả lời câu hỏi sau: Hãy chỉ ra lỗi trong các câu lệnh sau đây: a) X:=10; while X:=10 do X:=X+5; b) X:=10; while X=10 do X=X+5; c) S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n;. 5. Dặn dò. - Học bài, làm bài tâp. - Đọc trước bài thực hành. IV. Rút kinh nghiệm: ........................................................................................................... ................................................................................................................................................. ................................................................................................................................................. DUYỆT Số lượng: Hình Thức: Nội dung: Ngày.....tháng.....năm...... Đề nghị:...................................... .................................................... ..................................................... Lop8.net.

<span class='text_page_counter'>(7)</span>

×