bai 8 lap voi so lan chua biet truoc tiet 2

4 3K 21
bai 8 lap voi so lan chua biet truoc tiet 2

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tiết: 50 Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt) I. MỤC TIÊU: 1. Kiến thức: - Biết được nhu cầu 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 được 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 ngôn ngữ Pascal. 2. Kỹ năng: - Rèn khả năng đọc chương trình, phân tích tác dụng các câu lệnh. - Viết được câu lệnh lặp ở những bài toán đơn giản. 3. Thái độ: - Ham thích môn học. - Tích cực học tập. II. CHUẨN BỊ: 1. Giáo viên : - SGK, tài liệu, giáo án. - Đồ dùng dạy học: máy tính. 2. Học sinh : - Đọc trước bài và học bài ở nhà - SGK, Đồ dùng học tập. III. PHƯƠNG PHÁP: - Phương pháp thử, trực quan, thảo luận nhóm, thực hành. IV. TIẾN TRÌNH DẠY HỌC: 1. Ổn định lớp : 2. Kiểm tra bài cũ: Hãy cho biết cú pháp câu lệnh lặp với số lần chưa biết trước và giải thích ý nghĩa? 3. Bài mới: HOẠT ĐỘNG CỦA GV VÀ HS NỘI DUNG HOẠT ĐỘNG 1: Giới thiệu bài GV: Ở tiết trước, chúng ta đã được tìm hiểu cú pháp của câu lệnh lặp với số lần chưa biết trước. Chúng ta tiếp tục tìm hiểu một số ví dụ vận dụng câu lệnh lặp với số lần chưa biết trước vào giải bài toán. Tiết 50: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt) HOẠT ĐỘNG 2: Ví dụ về lệnh lặp với số lần chưa biết trước GV: Ta đã tìm hiểu thuật toán tính tổng n số trong ví dụ 2, thuật toán đó được thể hiện bằng ngôn ngữ Pascal như thế nào các em qua ví dụ 4. GV: Tính S=1+2+… >1000 S0 S S+1 S S+2 S S+3 … GV: Cần cộng bao nhiêu số tự nhiên để tổng nhỏ nhất 2. Ví dụ về lệnh lặp với số lần chưa biết trước (tt). Ví dụ 4: Tính S=1+2+3+ . sao cho tổng nhỏ nhất lớn hơn 1000. 1 >1000? HS: Không biết. GV: Các em quan sát thấy các câu lệnh giống nhau. Nếu cô thay i=1,2,… thì tổng S thay bằng lệnh S S+? HS: S S+i. GV: Lệnh S S+i lặp lại bao nhiêu lần? HS: Không biết. GV: Ta sử dụng câu lệnh lặp nào để giải quyết bài toán? HS: Lệnh lặp while…do… GV: Điều kiện của câu lệnh lặp và câu lệnh? HS: Điều kiện S<=1000. Câu lệnh S:= S+n; n:= n+1; GV: Cho HS ghi chương trình vào vở. HS: Chép bài GV: Yêu cầu HS khởi động chương trình Turbo pascal gõ chương trình ví dụ 4 và chạy thử chương trình. HS: Thực hành. GV: Sau khi chạy chương trình em hãy cho biết kết quả? HS: kết quả là n=45 và tổng nhỏ nhất lớn hơn 1000 là 1034. GV: Trong Pascal có những chương trình ngoài việc sử dụng câu lệnh For .do . Ta cũng có thể sử dụng câu lệnh While .do thay cho câu lệnh For .do . mà vẫn cho cùng một kết quả. Để hiểu rõ hơn các em qua ví dụ 5. GV: Yêu cầu HS đọc đề bài. HS: Đọc bài. GV: Đề bài yêu cầu chúng ta làm gì? HS: Viết chương trình tính tổng T= 1+1/2+1/3+… +1/100 T0 T T+1/1 T T+1/2 T T+1/3 … T T+1/100 GV: Các em quan sát thấy các câu lệnh giống nhau. Nếu cô thay i=1,2,… thì tổng S thay bằng lệnh T T+? HS: T T+1/i. GV: Lệnh T T+1/i lặp lại bao nhiêu lần? HS: 100 lần GV: Ta sử dụng câu lệnh lặp nào để giải quyết bài toán? HS: Lệnh lặp for…do… GV: Em hãy cho cô biết cú pháp của câu lệnh For .do . Hs: For <biến đếm> := <giá trị đầu> To <giá trị cuối> Do <câu lệnh>; GV: Em hãy cho cô biết giá trị đầu, giá trị cuối và câu lệnh là gì? Hs: - Giá trị đầu: 1 - Giá trị cuối: 100 Var S,n: integer; Begin S:=0; n:=0; While S<=1000 do 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. Ví dụ 5: SGK. Program vidu5_1; Var i: integer; T: real; Begin T:=0; For i:=1 to 100 do T:=T+1/i; Writeln (T); 2 - Câu lệnh: T := T + 1/i; GV: Cho HS chép chương trình vào vở. HS: Chép bài vào vở. GV: Yêu cầu HS gõ chương trình vào máy và chạy thử. HS: Thực hành. GV: Nếu sử dụng câu lệnh while… do thì điều kiện của chương trình là gì? HS: i<=100 GV: Vòng lặp sẽ dừng lại khi nào? HS: Dừng lại khi i>100. GV: Cho HS chép chương trình vào vở. HS: Chép bài. GV: Yêu cầu HS gõ chương trình vào máy và chạy thử. HS: Thực hành. GV: Sau khi chạy thử 2 chương trình, em hãy cho biết kết quả? HS: Kết quả giống nhau. GV: Qua ví dụ này cho ta 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. Nhưng tùy trường hợp mà chúng ta sử dụng câu lệnh for… do… thay cho câu lệnh while…do… vì lệnh lặp while… do… chỉ phù hợp cho lệnh lặp với số lần chưa biết trước còn câu lệnh for…do phù hợp lệnh lặp với số lần biết trước. End. Program vidu5_2; Var i: integer; T: real; Begin T:=0; i:=1; while i<=100 do begin T:=T+1/i; i:=i+1; end; end. HOẠT ĐỘNG 3: Lặp vô hạn lần – lỗi lập trình cần tránh. GV: Khi 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 bao giờ kết thúc. Đó được gọi là lặp vô hạn lần. Vậy thế nào là lặp vô hạn lần chúng ta qua phần 3. GV: Các em quan sát ví dụ trong SGK. Var a: integer; Begin a:=5; while a<6 do writeln (‘A’); end. HS: Quan Sát. GV: Em hãy cho biết điều kiện của bài toán là gì? HS: điều kiện dừng là a<6. 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 nên lệnh writeln (‘A’) luôn được thực hiện. GV: Do vậy, 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. Lưu ý: Khi thực hiện vòng lặp, While ….do cần xác định được điều kiện trong câu lệnh sau một số lần sẽ chuyển từ đúng sang sai để thoát khỏi vòng lặp. Không rơi vào những “Vòng lặp vô tận” 3. Lặp vô hạn lần – lỗi lập trình cần tránh. Var a: integer; Begin a:=5; while a<6 do writeln (‘A’); end. 3 - Trong vòng lặp While .do điều kiện được kiểm tra trước khi thực hiện cậu lệnh, do đó có thể có trường hợp câu lệnh không được thực hiện một lần nào. GV: Cho HS ghi bài. HS: Ghi bài. 4. Củng cố: - Nêu những dạng câu lệnh lặp mà em đã được học? - Trả lời câu hỏi 4, 5 trang 71 SGK. 5. Dặn dò: - Về nhà học bài. - Coi trước bài thực hành 6 “Sử dụng lệnh lặp While .do .” 4 . em qua ví dụ 4. GV: Tính S=1 +2+ … >1000 S0 S S+1 S S +2 S S+3 … GV: Cần cộng bao nhiêu số tự nhiên để tổng nhỏ nhất 2. Ví dụ về lệnh lặp với số lần. tính tổng T= 1+1 /2+ 1/3+… +1/100 T0 T T+1/1 T T+1 /2 T T+1/3 … T T+1/100 GV: Các em quan sát thấy các câu lệnh giống nhau. Nếu cô thay i=1 ,2, … thì tổng

Ngày đăng: 12/09/2013, 13:31

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan