Ngày soạn: 22/02/2010 tiết theo ppct: 50 Ngày dạy: 26/02/2010 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[r]
Trang 1Ngày soạn: 22/02/2010 tiết theo ppct: 50
Ngày dạy: 26/02/2010
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: SGK
HS: Xem trước bài ở nhà
III Tiến trỡnh bài giảng
1 Ổn định lớp
2 Kiểm tra bài cũ
Nêu cấu trúc lệnh với số lần chưa biết trước?
Hoạt động của GV
Y/c hs nhắc lại cỳ phỏp
cõu lệnh lặp với số lần
chưa biết trước
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
Cho học sinh quan sỏt
phim trong chương trỡnh
? Chạy chương trỡnh này,
ta nhận được giỏ trị ntn?
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
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
Hoạt động của HS
While <điều kiện> do
<Cõu lệnh>
Đọc vớ dụ 4 SGK
Quan sỏt đoạn chương trỡnh
Xuất giỏ trị của biến n và tổng của n số đầu tiờn >
1000 Đọc vớ dụ 5 sgk
Chỳ ý nghe
Nội dung
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 :
Lop7.net
Trang 2Giới thiệu phần 3
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
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.
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"
Quan sát
Để viết chương trình tính tổng
ta có thể sử
2 3 100
T
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
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
Lop7.net