HS: Đọc và nêu yêu cầu GV: Yêu cầu HS so sánh đoạn chương trinh dùng lệnh For ...do và đoạn chương trình dùng lệnh While ...do HS: Đều cho một kết quả GV: Cho HS hoạt động theo nhóm làm [r]
Trang 1Ngày soạn: Ngày giảng: Tiết 50:
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
(Tiếp theo) I.Mục tiêu:
1 Kiến thức:
- Biết câu lệnh lặp với số lần chưa biết trước while do… trong Pascal
2 Kĩ năng:
- Lấy được các ví dụ cụ thể về câu lệnh lặp với số lần chưa biết trước.
3 Thái độ:
- Nghiêm túc trong quá trình hcọ tập và rèn luyện.
II Chuẩn bị
1.Giáo viên: SGK, giáo án, máy tính
2 Học sinh: SGK, đồ dùng học tập
III Tiến trình bài dạy
1 Ổn định:
2 Kiểm tra bài cũ:
Trong quá trình học
3 Bài mới
GV: Cho học sinh đọc lại phần mô tả
thuật toán của ví dụ 2
Gv: Cho HS quan sát chương trình và
nêu ý nghĩa của từng câu lệnh
HS: Làm việc theo nhóm, đại diện một
nhóm lên nêu ý nghĩa còn các nhóm
khác nhận xét và bổ sung
GV: Nhận xét và bổ sung
GV: Cho HS ghi chương trình
GV: Đưa chương trình lên máy tính và
chay kết quả cho HS quan sát
HS: Quan sát
GV : Chạy chương trình này, ta nhận
được giá trị như thế nào?
HS : Nếu chạy chương trình này ta sẽ
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.
Trang 2cầu của bài toán.
HS: Đọc và nêu yêu cầu
GV: Yêu cầu HS so sánh đoạn chương
trinh dùng lệnh For do và đoạn
chương trình dùng lệnh While do
HS: Đều cho một kết quả
GV: Cho HS hoạt động theo nhóm làm
hoàn chỉnh hai chương trình của ví dụ
và đại diện hai nhóm lên viết chương
trình các nhóm khác bổ sung
HS: Hoạt động theo nhóm
GV: Chạy chương đã chuẩn bị sẳn trên
máy tính cho học sinh quan sát và sửa
lỗi
HS: Quan sát và sửa lỗi
GV: So sánh kết quả khi chạy hai
chương trình
HS : Kết quả bằng nhau
Giải :
Để 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 for…do: T:=0;
for i:=1 to 100 do T:=T+1/i;
writeln(T);
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
GV : 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
GV : Cho HS quan sát kết quả khi
chạy ví dụ trên máy tính (GV chuẩn bị
sẳn)
HS : Quan sát
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.
Do vậy,
HS : Chú ý nghe
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
Ví dụ:
Với chương trình này khi chạy sẽ cho kết quả lặp vô tận
var a:integer;
begin
a:=5;
while a<6 do writeln('A');
end.
- 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"
Trang 34 Củng cố:
- Nhắc lại kiến thức cơ bàn của vòng lặp cho học sinh nắm
5 Dặn dò:
- Học lại bài, làm bài tập và đọc bài thực hành
IV RÚT KINH NGHIỆM :
………
………
………
**********