I. Mục tiêu
1. Kiến thức:
- Biết cch p dụng cu lệnh While.do vo bi tốn cụ thể.
- Biết được một số dạng bi tập p dụng cấu trc lặp với số lần khơng biết trước.
- Biết được lỗi lặp trình cần trnh khi sử dụng cu lệnh While.do.
2. Kỹ năng:
- Sử dụng thnh thạo cấu trc lặp với số lần chưa biết trước While.do.
3. Thái độ:
- Học sinh nghiêm túc trong giờ học.
5 trang |
Chia sẻ: lantls | Lượt xem: 2175 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Bài 8: Lặp với số lần chưa biết trước(TT), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tuần: 31 Ngày soạn: 01/04/2011
Tiết: 55
BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(tt)
Mục tiêu
Kiến thức:
Biết cách áp dụng câu lệnh While..do vào bài tốn cụ thể.
Biết được một số dạng bài tập áp dụng cấu trúc lặp với số lần khơng biết trước.
Biết được lỗi lặp trình cần tránh khi sử dụng câu lệnh While..do.
Kỹ năng:
- Sử dụng thành thạo cấu trúc lặp với số lần chưa biết trước While..do.
3. Thái độ:
- Học sinh nghiêm túc trong giờ học.
Chuẩn bị:
Giáo viên: chuẩn bị tốt giáo án, sách giáo khoa.
Học sinh: sách giáo khoa, xem trước bài học “ Lặp với số lần chưa biết trước(tt)”, vở ghi bài.
Phương pháp:
- Thuyết trình, giảng giải, vấn đáp.
Tiến trình lên lớp:
Ổn định lớp.
Kiểm tra bài cũ
? Em hãy nêu lại cấu trúc của câu lệnh lặp chưa biết trước số lần lặp và giải thích rõ từng phần trong câu lệnh.
! 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.
? Vẽ sơ đồ và nêu các bước thực hiện của câu lệnh lặp với số lần chưa biết trước.
!
! Câu lệnh này được thực hiện như sau:
Kiểm tra điều kiện.
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.
Bài mới
+ Đặt vấn đề:
Tiết trước chúng ta đã xác định được đâu là hoạt động lặp với số lần khơng biết trước cũng như 1 bài tốn dạng này, trong tiết học ngày hơm nay chúng ta sẽ xét thêm 1 vài ví dụ sử dụng câu lệnh lặp với số lần khơng biết trước để thành thạo hơn cách sử dụng câu lệnh này.
HOẠT ĐỘNG CỦA GV VÀ HS
NỘI DUNG KIẾN THỨC
Hoạt động 1:Xét ví dụ 3 SGK/68
GV: Gọi 1 học sinh đọc ví dụ 3.
HS: Đọc ví dụ SGK.
GV: Cơ sẽ xét sai số là 0.005. Trước khi viết chương trình bài tốn này cơ sẽ hướng dẫn chúng ta xây dựng thuật tốn của bài tốn.
GV: Cơ gọi n là các số tự nhiên, vậy n sẽ cĩ các giá trị nào?
HS: n=0,1, 2, 3,…
GV: n của cơ trong bài tốn này cĩ vai trị là mẫu số trong 1 phép chia mà trong phép chia khơng thực hiện phép chia cho 0 nên cơ sẽ khơng tính số 0 trong dãy số tự nhiên. Vậy dãy số tự nhiên của chúng ta lúc này sẽ là n=1,2,3,…Khi cơ lần lượt thay các số tự nhiên này vào biểu thức 1/n cơ sẽ được các thương sau: X1= 1/1; X2=1/2; X3=1/3;…các thương này sẽ giảm dần đến 1 lúc nào đĩ Xn là thương đầu tiên nhỏ hơn sai số cho trước. Lúc này ta sẽ xác định được n cần tìm.
? 1 học sinh xác định cho cơ cơng việc lặp đi lặp lại trong bài tốn này và điều kiện ngừng việc lặp.
HS: Cơng việc lặp: Tính x là thương của 1/n.
Điều kiện ngừng việc lặp: Tìm được n đầu tiên để 1/n nhỏ hơn sai số.
GV: Nhận xét. Một em hãy xác định cho cơ trong bài tốn này chúng ta sẽ sử dụng mấy biến? Cơng dụng của từng biến.
HS: Biến n thể hiện cho các số tự nhiên. Biến X thể hiện thương số
GV: nhận xét. Bắt đầu vào chương trình khi chương trình chưa thực hiện lệnh nào chúng ta cĩ thương là bao nhiêu? n sẽ được gán giá trị đầu tiên trong dãy số, chúng ta sẽ gán n cĩ giá trị là bao nhiêu?
HS: Xß 1; nß 1;
GV: Bước 2 chúng ta sẽ xây dựng câu lệnh lặp. Đây là bước khá quan trọng, nếu câu lệnh của chúng ta đúng thì đáp số bài tốn mới đúng được. Ở trên các em đã xác định được điều kiện ngừng việc lặp là X < sai_so vậy ngược lại điều kiện thực hiện cơng việc lặp này là gì?
HS: X>= sai_so.
GV: Nhận xét. Nếu X>=sai_so thì nßn+1; Xß1/n, quay lại bước 2, ngược lại sang bước 3.
GV: Cơng việc cuối cùng cần làm là gì để thể hiện kết quả bài tốn cho mọi người biết.
GV: Gọi 1 học sinh áp dụng cấu trúc while..do vào điều kiện giải quyết bài tốn ở bước 2.
HS: While x>= sai_so do
Begin
n:= n+1;
x:=1/n;
end;
GV: Nhận xét. Cho các tổ thảo luận nhĩm: viết chương trình hồn chỉnh của bài tốn trên.
HS: Tập trung thảo luận nhĩm.
GV: Nhận xét chương trình của các nhĩm.Cho học sinh ghi bài.
Hoạt động 2: Hướng dẫn giải quyết bài tốn bằng cách sử dụng câu lệnh lặp for..do hoặc while..do.
GV: Trước khi qua ví dụ 5 1 em hãy lên viết cho cơ câu lệnh tính tổng S=1+2+3+...+100.
HS: for i:=1 to 100 do S:=S+i;
GV: Tương tự như bài tốn này, nếu cơ khơng tính tổng của các số tự nhiên nữa mà cơ tính tổng các phân số của nĩ, cơ cĩ ví dụ 5 như sau: Viết chương trình tính tổng S=1+++...+. Đây là bài tốn lặp biết trước số lần lặp hay chưa biết trước số lần lặp?
HS: Biết trước số lần lặp. 100 lần.
GV: Tương tự như bài tốn cơ đã cho 1 em hãy lên viết cho cơ câu lệnh tính tổng S=1+++...+ sử dụng vịng lặp for..do
HS: for i:=1 to 100 do S:=S + 1/i;
GV: Trong một số bài tốn lặp biết trước số lần lặp ngồi việc dùng câu lệnh for..do chúng ta cĩ thể thay thế câu lệnh này bằng câu lệnh While..do. Cụ thể trong bài tốn này chúng ta sẽ thay thế như thế nào? Cơ sẽ sử dụng hai biến, biến tổng S và biến i thể hiện cho các số tự nhiên liên tiếp làm mẫu số của biểu thức. Một em hãy cho cơ biết cơng việc lặp và điều kiện ngưng việc lặp trong bài tốn là gì?
HS: cơng việc lặp là tính tổng SßS+1/i;
Điều kiện ngưng việc lặp là: i>100
GV: Thuật tốn của chúng ta được xây dựng tương tự như ví dụ 3. Đầu tiên ta sẽ gán giá trị đầu cho 2 biến: biến S, n cĩ giá trị đầu là bao nhiêu?
HS: Sß0; nß1;
GV: Bước 2 chúng ta sẽ xây dựng điều kiện để thực hiện yêu cầu bài tốn. Điều kiện thực hiện cơng việc lặp của bài tốn này là gì? 1 em hãy xây dựng bước 2, bước 3 của thuật tốn này.
HS: Nếu i<= 100 thì SßS+1/i; ißi+1; quay lại bước 2. Ngược lại, qua bước 3. B3: In kết quả ra màn hình.
GV: Nhận xét.
GV: Các em hãy viết câu lệnh tương ứng với các bước của thuật tốn,
HS: S:=0;i:=1;
While i<=100 do
Begin
S:=S+1/i;
i:=i+1;
end;
write(S);
GV: Nhận xét và cho học sinh ghi bài.
Hoạt động 3: Lặp vơ hạn lần – Lỗi lập trình cần tránh.
GV: Đối với vịng lặp While..do, trong các câu lệnh của vịng lặp này cần cĩ câu lệnh làm thay đổi biểu thức điều kiện, cĩ nghĩa là phải cĩ câu lệnh để đến lúc nào đĩ điều kiện khơng được thỏa mãn, khi đĩ vịng lặp kết thúc. Ví dụ như trong ví dụ 3 của cơ, biểu thức thay đổi điều kiện là x:=1/n. Trong ví dụ 5, biểu thức thay đổi điều kiện là biểu thức nào?
HS: i:=i+1.
GV: Chúng ta xét ví dụ trong SGK/70
Trong ví dụ này ta gán a cĩ giá trị là 5. Trong câu lệnh While a<6 do writeln(‘A’) khơng cĩ biểu thức thay đổi điều kiện a, lúc này điều kiện a<6 (tức là 5<6) luơn luơn đúng nên lệnh writeln(‘A’) luơn được thực hiện.
2. Cấu trúc câu lệnh lặp với số lần chưa biết trước.
Ví dụ 3: SGK/68.
Thuật tốn:
B1: Xß1; nß1;
B2: Nếu x>= sai_so thì n:=n+1; x:=1/n, quay lại bước 2; ngược lại sang bước 3.
B3: In kết quả ra màn hình.
Ví dụ 5: SGK/69
Cách 1: Sử dụng câu lệnh for..do
For i:=1 to 100 do s:=s+1/i;
Cách 2: Sử dụng câu lệnh While..do
While i<=100 do
Begin
s:=s+1/i;
i:=i+1;
end;
Nhận xét: Trong một số trường hợp chúng ta cĩ thể sử dụng câu lệnh While..do thay cho câu lệnh for..do.
3. Lặp vơ hạn lần – lỗi lập trình cần tránh
Đối với vịng lặp While..do, trong các câu lệnh của vịng lặp này cần cĩ câu lệnh làm thay đổi biểu thức điều kiện.
Củng Cố:
Hướng dẫn về nhà:
- Về nhà học bài cũ, vận dụng câu lệnh lặp với số lần lặp chưa biết trước làm bài tập sau: Viết chương trình kiểm tra số n được nhập từ bàn phím cĩ phải là số nguyên tố khơng?
- Làm các bài tập 3, 4, 5 SGK.
Rút kinh nghiệm
File đính kèm:
- bài 8. Lap voi so lan chua biet truoc (tiet 2).doc