1 - MỤC TIÊU
a. Kiến thức
+ 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;
b. Kỹ Năng
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.
c. Thái độ
Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng.
Ngày soạn: Ngày dạy: Dạy lớp: Tiết 49 Bài 8: lặp với số lần lặp chưa biết trước 1 - Mục tiêu a. Kiến thức + 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; b. Kỹ Năng 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. c. Thái độ Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng. 2 - Chuẩn bị a. Giáo viên: SGK, mỏy chiếu, cỏc vớ dụ về chương trỡnh b. Học sinh: Xem trước bài ở nhà 3- Tiến trình bài dạy a. Kiểm tra bài cũ: (5p) Viết thuật toỏn tớnh tổng 100 số tự nhiờn đầu tiờn 1,2,3,,99,100 Trả lời 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. b. Bài mới (36p) HĐ của Thầy HĐ của Trò Ghi Bảng Hoaùt ủoọng 1 – 16p - Y/c hs đọc vớ dụ 1sgk/67 - Phõn tớch vớ dụ - Hướng dẫn hs xõy dựng thuật toỏn - Giới thiệu sơ đồ khối - Nờu nhận xột Hoaùt ủoọng 2 – 19p - ới thiệu cỳ phỏp lệnh while do .; - t vớ dụ 3 Chỳng ta biết rằng, nếu n càng lớn thỡ càng nhỏ, nhưng luụn luụn lớn hơn 0. Với giỏ trị nào của n thỡ < 0.005 hoặc < 0.003 ? - Giới thiệu chương trỡnh mẫu sgk - 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) - Cho học sinh chạy chương trỡnh trờn mỏy - Yờu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; .. - 2-3 hs đọc vớ dụ sgk Hs : Chỳ ý lắng nghe - Nghe giỏo viờn hướng dẫn, sau đú tự xõy dựng thuật toỏn - Hs ghi vở vớ dụ 2 - Tiếp thu kiến thức - Ghi vở - ỳ ý nghe và ghi chộp - Quan sỏt Hs : thực hiện Hs : thực hiện Hs : thực hiện 1. Cỏc hoạt động lặp với số lần chưa biết trước a/ Vớ dụ 1(sgk). b/ Vớ dụ 2 : (sgk) 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. + Bước 2. Nếu S ≤ 1000, n ơ n + 1; ngược lại chuyển tới b4. + 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 do ; 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. Với giỏ trị nào của n ( n>o ) thỡ < 0.005 hoặc < 0.003? Chương trỡnh dưới đõy tớnh số n nhỏ nhất để nhỏ hơn một sai số cho trước : uses crt; var x: real; 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. c. Cuỷng coỏ (2p) Ghi nhớ sgk Cuự phaựp caõu leọnh laởp While...do d. Hướng dẫn học ở nhà (2p) Làm bài tập 2,3a SGK/71 Ngày soạn: Ngày dạy: Dạy lớp: Tiết 50 Bài 8: lặp với số lần lặp chưa biết trước (t2) 1 - Mục tiêu a. Kiến thức + 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; b. Kỹ Năng 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. c. Thái độ Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng. 2 - Chuẩn bị a. Giáo viên: SGK, mỏy chiếu, cỏc vớ dụ về chương trỡnh b. Học sinh: Xem trước bài ở nhà 3 - Tiến trình bài dạy a. Kiểm tra bài cũ (5p) Nhắc lại cú pháp câu lệnh lặp? Dựa trên sơ đồ hãy nêu quá trình thực hiện câu lệnh lặp b. Bài mới ( 36p ) HĐ của Thầy HĐ của Trò Ghi Bảng Hoạt động 1 - 21p - Y/c hs nhắc lại cỳ phỏp cõu lệnh lặp với số lần chưa biết trước - Ta tiếp tục xột cỏc vớ dụ mà trong chương trỡnh cú cõu lệnh với số lần lặp chưa biết trước - Xột vớ dụ 4 - Cho học sinh quan sỏt chương trỡnh - Chạy tay cho học sinh xem chương trỡnh mẫu - Cho học sinh chạy chương trỡnh trờn mỏy - Chạy chương trỡnh này, ta nhận được giỏ trị ntn? - Giới thiệu vớ dụ 5 sgk Viết chương trỡnh tớnh tổng -Cho học sinh quan sỏt chương trỡnh - Vớ dụ này cho thấy rằng chỳng ta cú thể sử dụng cõu lệnh whiledo thay cho cõu lệnh fordo. Hoaùt ủoọng 2 – 15p - Khi 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 bao giờ kết thỳc. Chẳng hạn, chương trỡnh dưới đõy sẽ lặp lại vụ tận: - 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. - 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". - Trả lời - Quan sỏt - Chỳ ý nghe và tự chạy tay lại - Nếu chạy chương trỡnh này ta sẽ nhận được n = 45 và tổng đầu tiờn lớn hơn 1000 là 1034. - Quan sỏt - Kết quả bằng nhau Chỳ ý nghe Chỳ ý nghe Vớ dụ 4. Chương trỡnh Pascal dưới đõy thể hiện thuật toỏn tớnh số n trong vớ dụ 2: var S,n: integer; begin S:=0; n:=1; 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); end. Vớ dụ 5. Viết chương trỡnh tớnh tổng Giải : Để viết chương trỡnh tớnh tổng ta cú thể sử dụng lệnh lặp với số lần lặp biết trước fordo: T:=0; for i:=1 to 100 do T:=T+1/i; writeln(T); Nếu sử dụng lệnh lặp whiledo, đ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 do begin T:=T+1/i; i:=i+1 end; writeln(T); * Nhận xột : Vớ dụ này cho thấy rằng chỳng ta cú thể sử dụng cõu lệnh whiledo thay cho cõu lệnh fordo. 3. Lặp vụ hạn lần – Lỗi lập trỡnh cần trỏnh Khi 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 bao giờ kết thỳc. var a:integer; begin a:=5; while a<6 do writeln('A'); end. c. Cuỷng coỏ (2p) - Ghi nhớ sgk - Cuỷng coỏ laùi baứi vaứ nhaộc voứng laởp voõ haùn caàn traựnh. d. Hướng dẫn về nhà (2p) Làm bài tập 5 SGK/71 Chuaồn bũ baứi taọp cho tieỏt sau.
Tài liệu đính kèm: