(Tiếp theo) I.Mục tiờu: Qua bài học này HS cần đạt:
- Biết câu lệnh lặp với số lần chưa biết trước while...do… trong Pascal.
- Lấy được các vị cụ cụ thể về câu lệnh lặp với số lần chưa biết trước.
- Nghiêm túc trong quá trình hcọ tập và rèn luyện.
II. Chuẩn bị :
GV: SGK, mỏy chiếu, bảng phụ ghi cỏc vớ dụ về chương trỡnh, phòng máy HS: Xem trước bài ở nhà
III. Tiến trỡnh dạy học : 1.ổn định tổ chức :
Ngày dạy Lớp Tiết HS vắng Nhận xét hoạt động dạy học
10/02/2009 8A 5
12/02/2009 8B 4
14/02/2009 8C 4
11/02/2009 8D 2
10/02/2009 8E 3
2. Kiểm tra bài cũ:
HS1:Thế nào là hoạt động lặp với số lần cha biết trớc ? Cho ví dụ minh hoạ .
HS2: Câu lệnh lặp với số lần lặp cha xác định phụ thuộc điều gì? Khi nào thì nó ngừng lặp?
GV nhận xét, đánh giá.
3. B i m ià ớ
Hoạt động GV và HS Nội dung
+ G : 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
+ G : Cho học sinh quan sát phim trong chương trình
+ Hs : quan sát
+ G : Chạy tay cho học sinh xem + Hs : chú ý nghe và tự chạy tay lại + G : Yêu cầu học sinh mở máy tính và mở chương trình ví dụ 4 ( giáo viên chuẩn bị chương trình mẫu và đưa lên các máy )
+ Hs : thực hiện
+ G : Cho học sinh chạy chương trình trên máy
+ Hs : thực hiện
+ G : chạy chương trình này, ta nhận được giá trị ntn?
+ Hs : 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.
+ G : giới thiệu ví dụ 5 sgk Viết chương trình tính tổng
1 1 1
1 ...
2 3 100 T
+ G : Cho học sinh quan sát phim trong chương trình
+ Hs : quan sát
+ G : Chạy tay ( cả hai chương trình ) cho học sinh xem
+ Hs : chú ý nghe và tự chạy tay lại + G : so sánh kết quả khi chạy hai
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 n:=n+1; S:=S+n 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
1 1 1
1 ...
2 3 100 T
Giải :
Để viết chương trình tính tổng
1 1 1
1 ...
2 3 100 T
ta có thể sử dụng lệnh lặp với số lần lặp biết trước for…do:
T:=0;
for i:=1 to 100 do T:=T+1/i;
writeln(T);
chương trình
+ Hs : Kết quả bằng nhau
+ G : Ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do.
+ G : Giới thiệu phần 3
+ G : 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 + Hs : Chú ý nghe
+ G : Chẳng hạn, chương trình dưới đây sẽ lặp lại vô tận:
var a:integer;
begin a:=5;
while a<6 do writeln('A');
end.
+ Hs : Quan sát
+ G : 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".
+ Hs : Chú ý nghe
Nếu sử dụng lệnh lặp while…do, đ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 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
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.
4. Củng cố:
- Ghi nhớ sgk
- Làm bài tập 2,3a,bài 5 SGK/71 5. Hướng dẫn về nhà:
- Học bài và làm lại các bài tập - Nghiên cứu trước bài thực hành.
---o0o---
TuÇn 27 TiÕt 51
Ngày soạn: 19/02/2009 Ngày dạy: 04/03
Bài thực hành 6:
Tiết 43: Sử dụng lệnh While do …
I. Mục tiêu
- Vận dụng kiến thức của vòng lặp while ... do để viết chơng trình. Biết lựa chọn câu lệnh lặp while ... do hoặc For ... do cho phù hợp với tình huống cụ thể.
- Rèn luyện kỹ năng về khai báo và sử dụng biến, kĩ năng đọc hiểu chơng trình. Biết vai trò của việc kết hợp các cấu trúc điều khiển.
- Thái độ học tập nghiêm túc, tích cực làm các bài tập thực hành.
II. Chuẩn bị
- Giáo viên: Giáo án, phòng máy tính, sgk.
- Học sinh: Kiến thức cũ, sgk.
III. Tiến trình dạy – học 1.ổn định tổ chức :
Ngày dạy Lớp Tiết HS vắng Nhận xét hoạt động dạy học 8A
8B 8C 8D 8E 2. Kiểm tra bài cũ:
? Viết cú pháp của câu lệnh lặp while ... do và For ... do.
3. Thực h nhà
Chúng ta đã nghiên cứu lý thuyết về vòng lặp While ... do. để biết vòng lặp chạy nh thế nào thì
hôm nay chúng ta cùng nhau đi vào tiết thực hành.
Gọi Hs đọc bài toán và nêu yêu cầu bài toán.
? Làm thế nào để tính trung bình n số thực x1, x2, . . ., xn
? Dữ liệu đầu vào (Input) của bài toán là gì
? Dữ liệu đầu ra (Output) của bài toán là gì
Gọi Hs nêu thuật toán.
Gv nhận xét và đa ra thuật toán.
? Dựa vào việc thuật toán ở trên, theo em cần khai báo những biến gì cho chơng trình bài toán.
Gv kết luận và đa ra chơng trình trình nh Sgk.
? Tìm hiểu ý nghĩa từng câu lệnh.
Gv mô phỏng hoạt động chính của chơng trình với n
= 3
Yêu cầu Hs hoạt động nhóm để thực hiện các công việc sau:
+ Gõ và lu chơng trình với tên Tinh_TB.
+ Dịch và sửa lỗi nếu có và chạy với bộ số dữ liệu tuỳ ý đề kiểm tra kết quả nhận đợc.
+ Thử viết lại chơng trình bằng cách sử dụng câu lệnh For...do thay cho câu lệnh while . . . do.
? Khi nào ta dùng câu lệnh For . . . do và khi nào ta dùng câu lệnh While . . . do
Dãy số thực x1, x2, . . ., xn
Giá trị trung bình (x1+x2+. . . +xn) / n Hs nêu thuật toán.
Hs trả lời.
Hs làm việc theo nhóm cử đại diện báo cáo.
Với câu lệnh lặp khi biết điều kiện
đã biết trớc thì sử dụng câu lệnh lặp For . . . do, còn khi lặp với số lần cha biết trớc thì sử dụng câu lệnh lặp While . . . do
4.Củng cố
- Nhận xét toàn bộ kiến thức chính đã học trong giờ.
- Nhận xét đánh giá giờ thực hành.
5. Hớng dẫn về nhà
- Chuẩn bị bài cho tiết sau.
- Ôn lại câu lệnh và tập viết một số chơng trình đơn giản.
---o0o---
Bài thực hành 5: