Giáo án tin học lớp 8 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
Trang 1Giáo án tin học lớp 8
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ủ
Trang 2Viế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
Trang 3+ 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 Tn 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 :
Trang 4+ G : Giới thiệu
sơ đồ khố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 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
Trang 5+ 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 trình Sau đây
ta xét câu lệnh và
ví dụ trong TP
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>;
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
Trang 6+ G : Giới thiệu
cú pháp lệnh
….;
+ 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ư 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 :
Trang 7nhỏ, 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í 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
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
+ Hs : thực hiện
Trang 8và 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 ;
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à
Trang 9- 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