Giáo án Tin học Lớp 8 - Tiết 43, Bài 8: Lặp với số lần chưa biết trước - Năm học 2008-2009

Giáo án Tin học Lớp 8 - Tiết 43, Bài 8: Lặp với số lần chưa biết trước - Năm học 2008-2009

 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 bi:

1. Chuẩn bị của giáo viên:

- Giáo án, dồ dùng dạy học.

- Ví dụ minh họa.

2. Chuẩn bị của học sinh:

- Học bài cũ.

- Xem trước bài mới.

 

doc 6 trang Người đăng tranhiep1403 Lượt xem 1848Lượt tải 2 Download
Bạn đang xem tài liệu "Giáo án Tin học Lớp 8 - Tiết 43, Bài 8: Lặp với số lần chưa biết trước - Năm học 2008-2009", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tuần: 23
Tiết: 43
Ngày soạn: 21/01/2009
Ngày dạy: 09/02/2009
	Bài8: 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 bi:
1. Chuẩn bị của giáo viên: 
- Giáo án, dồ dùng dạy học.
- Ví dụ minh họa.
Chuẩn bị của học sinh: 
Học bài cũ.
Xem trước bài mới.
III. Hoạt động lên lớp:
1. Ổn định lớp:
	- Giữ trật tự.
	- Điểm danh sỉ số lớp.
2. Kiểm tra bài cũ:
Câu 1: Giải thích lại câu lệnh lặp .. For:= to do;
Câu 2: Cho ví dụ về câu lệnh lặp .. For:= to do;
3. Nội dung: 
	Giới thiệu bài mới:
	Tiết trước chúng ta đã được làm quen với câu lệnh lặp với số lần biết trước, tiết này chúng ta sẽ học thêm về một câu lệnh lặp mới trong PASCAL. Câu lệnh lặp này dùng giải quyết những bài toán lặp lai mà không biết trước số lần lặp là bao nhiêu hay còn gọi là “ Lặp với số lần chưa biết trước ”
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH
NỘI DUNG
1. Hoạt động 1: Các hoạt động lặp với số lần chưa biết trước
- GV: Để tính tổng 100 số tự nhiên đầu tiên, em cần viết câu lệnh để máy tính thực hiện ít nhất bao nhiêu lần?
- HS: 99 lần.
- GV: Trong thực tế có nhiều hoạt động được lặp đi lặp lại với số lần chưa biết trước. Đưa ra các ví dụ thực tế về việc lặp đi lặp lại với số lần chưa xác định trước.
* Ví dụ 1:
- GV: Điều kiện để kết thúc việc lặp đi lặp lại goi điên thoại cua ban LONG là gi?
- HS: có người nhấc máy.
- GV: Hãy nêu một vài ví dụ về lặp với số lần chưa biết trước.
- HS: Nêu ví dụ.
* Ví dụ 2:
- GV: đưa ra ví dụ này, giới thiệu thuật toán.
- GV: Việc thực hiện lặp đi lặp lại các phép cộng trong thuật toán trên cũng chưa xác đinh đươc số vòng lặp. Vậy nó phụ thuộc vào điều kiên gi? Chỉ dừng lại khi nào?
- HS: Điều kiên S<= 1000, và chỉ dừng lại khi điều kiện sai.
- GV: Tóm lại các hoạt động lặp chỉ dừng lại khi nào?
- HS: Chỉ dừng lại khi được thỏa mãn một điều kiện nào đó.
- GV: Đưa ra sơ đồ miêu tả hình 39 SGK/68.
2. Hoạt động 2: Ví dụ về lệnh lặp với số lần chưa biết trước
- GV: Em hãy nhắc lại cấu trúc câu lệnh lặp với số lần biết trước.
- HS: For:= to do;
- GV: Giới thiệu câu lệnh WHILE  DO; Hướng dẫn HS cách viết câu lệnh và giải thích các thành phần của câu lệnh.
- HS: Lắng nghe và ghi bài.
- GV: Yêu cầu HS nhận xét về cấu trúc câu lệnh. Giải thích nghĩa của câu lệnh theo nghĩa cũa tiếng ANH.
- HS: Trong khi(khi).thi thực hiện(làm)..
- GV: Nhấn mạnh các hoạt động của câu lệnh
+ Trước tiên Hoạt động nào đươc diễn ra?
- HS: Kiểm tra điều kiện.
+ Nếu điều kiện sai thì thực hiện lệnh gì?
- HS: Câu lệnh bỉ bỏ qua và việc lặp kết thúc.
+ Nếu điều kiện đúng thì thưc hiện lệnh gì?
- HS: Thực hiện câu lệnh và quay lại kiểm tra điều kiện.
* Bài tập nhóm: 
- HS: Thảo luận nhóm về sự giống nhau và khác nhau giữa hai câu lệnh
FOR ... DO và WHILE ... DO.
- GV: Nhận xét và đưa ra kết quả thảo luận.
* Câu hỏi HSG:
Với hai câu lệnh trên ta có thể dùng để giải quyết một bài toán cụ thể được hay không?
1. Các hoạt động lặp với số lần chưa biết trước
- Trong thực tế có những hoạt động được lặp đi lặp lại với số lần chưa biết trước.
* Ví dụ 1: (SGK/67)
Lặp lại việc gọi điện thoại cho đến khi có người nhấc máy.
* Ví dụ 2: (SGK/67,68)
Lặp lại việc tính tổng các số tự nhiên đầu tiên cho đến khi tổng đó lớn hơn 1000.
- Tóm lại: Việc lặp lại một hoạt động với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể có được thỏa mản hay không.
Sơ đồ:
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.
4. Củng cố: 
- Nhắc lại cấu trúc câu lệnh lặp với số lần chưa biết trước?
- Nhác lại thành phần và từng bước thực hiện câu lệnh.
5. Dặn dò.
- Dặn dò học sinh về nhà học bài.
- Xem tiếp phần còn lại.
- Tìm hiểu ý nghĩa chương trình trong các ví dụ.
IV. Rút kinh nghiệm:	
Tuần: 23
Tiết: 44
Ngày soạn: 21/01/2009
Ngày dạy: 10/02/2009
	Bài8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC(tt)
 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 bi:
1. Chuẩn bị của giáo viên: 
- Giáo án, dồ dùng dạy học.
- Ví dụ minh họa.
Chuẩn bị của học sinh: 
Học bài cũ.
Xem trước bài mới.
III. Hoạt động lên lớp:
1. Ổn định lớp:
	- Giữ trật tự.
	- Điểm danh sỉ số lớp.
2. Kiểm tra bài cũ:
Câu 1: Nêu cấu trúc câu lệnh lặp với số lần không biết trước?
Câu 2: Giải thích các thành phần và từng bước thực hiện?
Câu 3: Điểm khác nhau giữa hai câu lệnh lặp đã học?
3. Nội dung:
	Giới thiệu bài mới:
	Chúng ta đã được học về cấu trúc vòng lặp While ... do, hôm nay chúng ta sẽ hiểu rõ hơn câu lệnh và cách sử dụng câu lệnh trong chương trình như thế nào thông qua các ví dụ. Đồng thời các em cũng sẽ được làm quen với lỗi cần tranh strong khi sử dụng vòng lăp là “ vô hạn lần”.
HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH
NỘI DUNG
1. Hoạt động 1: Các ví dụ
* Ví dụ 3:
- GV: Cho HS thảo luận nhóm trong VD 3 để phân tích ý nghĩa câu lệnh trong chương trình.
- Thảo luận nhóm: cử đại diện lên trả lời.
* Ví dụ 4: SGK/69
- GV: Đưa ra ví dụ 4, yêu cầu HS đọc lại VD2.
- HS: đọc lại ví dụ 2.
- GV: Cho HS tính tổng s, và n trong 5 vòng lặp đầu tiên. Sau đó cho HS đọc đáp án của bài toán
- HS:  n=45, s= 1034.
* Ví dụ 5: SGK/69
- GV: ở bài toán này ta tinh cũng tương tự như việc tính tổng 100 số tự nhiên đầu tiên. Vơi i: biến đếm, T: biến tổng, ta có công thức sau: T:=T+1/I; Bài toán này ta có thể giải bằng hai cách, Dùng lệnh lặp với số lần biết trước và lệnh lặp với số lần không biết trước. Hãy nhận xét kết quả của hai chương trình.
- HS: Kết quả giống nhau.
- GV: Qua đó ta thấy có thể sử dụng while  do thay thế cho For  do và ngược lại.
2. Hoạt động 2: Lỗi lập trình cần tránh
- GV: khi sử dụng lệnh lặp, chúng cần tranh lỗi lặp đi lặp lai không có điểm dừng của vòng lặp. Người ta gọi lỗi như thế là lặp vô hạn lần.
var a:integer;
begin
a:=5;
while a<6 do writeln('A');
end.
- GV: Em thấy điều kiện trong chương trình trên có gì đặc biệt?
- HS: Luôn đúng.
- 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. KHi viết chương trình không nên để máy tính thực hiện những vòng lặp vô hạn.
* Hoạt động nhóm:
Tìm ba ví dụ thỏa:
+ vd1: Sử dụng lệnh lăp While  do.
+ vd2: Sử dụng lệnh lặp FOR do
+ vd3: lặp vô han lần.
* Câu hỏi HSG: 
Xác đinh một số nguyên tố. Biết: SNT là số chia hết cho 1 và chính nó.
2. Ví dụ về lệnh lặp với số lần chưa biết trước
* Ví dụ 3:SGK/69
x:=1; 
n:=1;
while x>=sai_so do
begin n:=n+1; x:=1/n end;
* Ví dụ 4: SGK/69
S:=0; n:=1;
while S<=1000 do
begin n:=n+1; S:=S+n end;
Ví dụ 5. Để 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);
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 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".
4. Củng cố: 
- GV: Cho HS đọc phần ghi nhớ.
- Trả lời câu hỏi sau:
Hãy chỉ ra lỗi trong các câu lệnh sau đây:
X:=10; while X:=10 do X:=X+5;
X:=10; while X=10 do X=X+5;
S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n;
5. Dặn dò.
- Học bài, làm bài tâp.
- Đọc trước bài thực hành.
IV. Rút kinh nghiệm:	
DUYỆT
Số lượng:
Hình Thức:
Nội dung:	Ngày.....tháng.....năm......
Đề nghị:......................................
.................................................... 
....................................................

Tài liệu đính kèm:

  • docbai8(2t).doc