II/ Đồ dựng dạy học:
1/ Giáo viên:
- Giáo án, SGK, ...
2/ Học sinh:- SGK, vở ghi, đồ dùng học tập...
III/ Hoạt động dạy học
1/ Ổn định lớp
2/ Kiểm tra bài củ: Cho học sinh nêu lại câu lệnh lặp với số lần chưa biết trước trongpascal và hoạt động của nó pascal và hoạt động của nó
3/ Nội dung mới: Lặp với số lần chưa biết trước(Tiết2)
Hoạt động của giáo viên Hoạt động của học sinh HĐ 4: Tìm hiểu ví dụ về lệnh lặp với số lần chưa biết trước.
GV cho học sinh tìm hiểu một số ví dụ minh họa về câu lệnh while...do
VD3: Viết chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước.
- Hướng dẫn học sinh viết chương trình Chúng ta biết rằng nếu số n với n>0 càng lớn thì 1/n càng nhỏ, nhưng lại lớn hơn 0. Như vậy tìm giá trị của n để 1/n<0.005 hoặc 1/n<0.003
GV theo dõi chương trình học sinh viết GV đánh gía nhận xét chương trình học sinh viết và sữa những lỗi sai học sinh hay gặp.
GV cho học sinh tìm hiểu và làm tiếp ví dụ 4:
VD4: viết chương trình tính tổng n số tự nhiên đầu tiên.
GV hướng dẫn học sinh viết chương trình Chúng ta biết ở ví dụ 2 trong tiết 1 đã viết
HS các nhóm thảo luận
HS các nhóm viết chương trình
Đại diện một nhóm lên bảng viết chương trì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;
witeln(' so n nho nhat de 1/n< ', sai_so:6:4, 'la ',n);
readln; End.
HS các nhóm lắng nghe và tìm hiểu sách giáo khoa
HS xem lại thuật toán ở ví dụ 2 HS các nhóm viết chương trình
thuật toán cho ví dụ 4 rồi, từ thuật toán chúng ta sử dụng một số câu lệnh lặp đó được học để viết chương trình
GV theo dõi chương trình học sinh viết GV nhận xét bài làm của học sinh các nhóm
Xét VD 5: Viết chương trình tính tổng T = 1+1/2+1/3+1/4+...+1/100.
GV hướng dẫn học sinh viết chương trình theo 2 dạng lặp là for...do và while...do GV phân nhóm để viết chương trình theo dạng for...do và dạng while...do
Cho một nhóm lên bảng viết theo câu lệnh while...do.
Gv theo dõi chương trình học sinh viết Nhận xét đánh giá chương trình học sinh viết. chương trình 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);
readln; End.
HS các nhóm có nhận xét chương trình của nhóm bạn
HS các nhóm thảo luận để viết chương trình
Một nhóm học sinh viết chương trình theo câu lệnh lặp for...do, nhóm khác viết chương trình theo câu lệnh lặp while...do Đại diện nhóm học sinh lên bảng viết chương trình dùng câu lệnh while...do Begin
T:= 0; i:=0;
While i<=100 do
Begin T:=T+1/i; i:=i+1; End;
Writeln(T); readln; end.
HĐ 5: Tìm hiểu lặp vô hạn lần- lỗi lập trình cần tránh.
GV lưu ý cho học sinh những 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, nếu không chương trình sẽ chạy không bao giờ dừng.
VD chương trình sau đây sẽ chạy không bao giờ dừng:
Var a: integer; Begin a:=5;
While a<6 do writeln('A'); end.
? Theo em chương trình trên tại sao luôn không dừng và giá trị a của biến a luôn bằng bao nhiêu?
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 từ điều kiện đúng sang điều kiện sai chỉ như thế chương trình mới dừng.
HS các nhóm lắng nghe và ghi bài HS ghi bài
HS tìm hiểu chương trình giáo viên viết
HS trả lời HS tiếp thu bài
GV cho 1, 2 em học sinh đọc mục ghi nhớ.
- Cho HS hệ thống lại toàn bộ kiến thức đã học trong bài 8 - Cho HS làm bài tập 1, 2, 3 SGK
- Dặn HS về nhà làm hết các bài tập và tìm hiểu trước bài thực hành 6
Tiết 43, 44 NS: 19/01/2010 ND: 26/01/2010 Bài thực hành 6:
SỬ DỤNG LỆNH LẶP WHILE...DOI/ Mục đích yêu cầu: I/ Mục đích yêu cầu: