Kiến thức: - Biết được nhu cầu 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
Trang 1Ngày soạn: 25/02/2011
Ngày giảng: 26/02/2011
Tiết: 45
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt)
I Mục đích:
1 Kiến thức:
- Biết được nhu cầu 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 được 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 ngôn ngữ Pascal
2 Kỹ năng:
- Rèn khả năng đọc chương trình, phân tích tác dụng các câu lệnh
- Viết được câu lệnh lặp ở những bài toán đơn giản
3 Thái độ:
- Ham thích môn học
- Tích cực học tập
II Chuẩn bị:
1 Đồ dùng dạy học
- Giáo viên:
- SGK, tài liệu, giáo án
- Đồ dùng dạy học: máy tính
- Học sinh:
- Đọc trước bài và học bài ở nhà
- SGK, Đồ dùng học tập
2 Phương pháp
- Phương pháp thử, trực quan, thảo luận nhóm, thực hành
IV Các hoạt động dạy học:
1 Ổn định lớp:
2 Kiểm tra bài cũ:Kết hợp trong bài.
3 Bài mới:
CỦA HS
NỘI DUNG
GV: Ở các tiết trước chúng ta
đã được tìm hiều về các hoạt
động lặp với số lần chưa biết
trước, biết được cú pháp của
câu lệnh và cách hoạt động
của nó Đã tìm hiểu một số ví
dụ vận dụng câu lệnh lặp với
số lần chưa biết trước vào giải
Trang 2bài toán Giờ học hôm nay
chúng ta sẽ tìm hiểu sang ví
dụ 5:
GV ghi đầu bài lên bảng:
GV: Trước khi vào tìm hiểu ví
dụ 5 ta cùng nhau nhắc lại
kiến thức ở các tiết trước:
?Nêu một vài ví dụ về hoạt
động lặp với số lần chưa biết
trước?
GV: nhận xét và đưa ra một
số ví dụ cho HS
GV: ?Hãy nêu cú pháp của
câu lệnh lặp với số lần chưa
biết trước?
GV nhận xét kết luận
GV: Trong Pascal có những
chương trình ngoài việc sử
dụng câu lệnh For do Ta
cũng có thể sử dụng câu lệnh
While do thay cho câu
lệnh For do mà vẫn cho
cùng một kết quả Để hiểu rõ
hơn các em tìm hiểu qua ví dụ
5
HS: suy nghĩ và trả lời:
HS: Suy nghĩ và trả lời
Tiết 45:
LẶ P VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt)
1 Các hoạt động lặp với số lần chưa biết trước.
Ví dụ:
- Tập lái xe đến khi biết lái
- Học thuộc lòng một bài thơ cho tới khi bố mẹ kiểm tra là đã thuộc thì mới kết thúc, nếu không thì phải học lại…
2 Ví dụ về lệnh lặp với số lần chưa biết trước (tt).
cú pháp: while <điều kiện> do
<câu lệnh>;
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:
(1) Kiểm tra điều kiện:
(2) Nếu điều kiện SAI, câu lệnh sẽ
bị bỏ qua và chuyển sang câu lệnh tiếp theo trong chương trình Nếu
điều kiện ĐÚNG, thực hiện câu lệnh và quay lại bước 1
Ví dụ 5:
Viết chương trình tính tổng
100
1
3
1 2
1
1 + + + +
=
T
Trang 3GV: Yêu cầu HS đọc đề bài.
?Bài toán trên là hoạt động
lặp với số lần biết trước hay
lặp với số lần chưa biết
trước?
?Đề bài yêu cầu chúng ta
làm gì?
?Ta sử dụng câu lệnh lặp
nào để giải quyết bài toán?
?Em hãy cho thầy biết cú
pháp của câu lệnh
For do ?
GV: Em hãy cho thầy biết
giá trị đầu, giá trị cuối và
câu lệnh là gì?
Hs: - Giá trị đầu: 1
- Giá trị cuối: 100
- Câu lệnh: T := T
+ 1/i;
GV: Cho HS chép chương
trình vào vở
GV: Yêu cầu HS gõ chương
trình vào máy và chạy thử
HS: trả lời:
HS: Viết chương trình tính tổng
HS: Lệnh lặp for…do…
Hs: For <biến đếm>:= <giá trị đầu> To <giá trị cuối> Do <câu lệnh>;
Hs:
Giá trị đầu: 1 Giá trị cuối: 100 Câu lệnh: T := T + 1/i;
HS: Chép bài vào vở
HS: Thực hành
Bài toán trên là hoạt động lặp với
số lần biết trước
Phân tích bài toán:
T1=1 T2=T1+1/2 T3=T2+1/3
T100=T99+1/100
Nhận xét:
Bắt đầu từ T2 việc tính T được lặp
đi lặp lại 99 lần theo quy luật Tsau = Ttrước+ 1/i
với i chạy từ 2 → 100
*) Giải bài toán bằng câu lệnh lặp với số lần biết trước:
Cú pháp của câu lệnh For do For <biến đếm> := <giá trị đầu>
To <giá trị cuối> Do <câu lệnh>;
Program vidu5_1;
Var i: integer;
T: real;
Begin T:=0;
For i:=1 to 100 do T:=T+1/i; Writeln (T);
End
Trang 4GV: Nếu sử dụng câu lệnh
while… do thì điều kiện của
chương trình là gì?
GV: Vòng lặp sẽ dừng lại khi
nào?
GV: Cho HS chép chương
trình vào vở
GV: Yêu cầu HS gõ chương
trình vào máy và chạy thử
GV: Sau khi chạy thử 2
chương trình, em hãy cho
biết kết quả?
GV: Qua ví dụ này cho ta 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 Nhưng tùy
trường hợp mà chúng ta sử
dụng câu lệnh for…do… thay
cho câu lệnh while…do… vì
lệnh lặp while…do… chỉ phù
hợp cho lệnh lặp với số lần
chưa biết trước còn câu lệnh
for…do phù hợp lệnh lặp với
số lần biết trước
HS: i<=100
HS: Dừng lại khi i>100.
HS: Chép bài
HS: Thực hành
HS: Kết quả giống nhau
Program vidu5_2;
Var i: integer;
T: real;
Begin T:=0;
i:=1;
while i<=100 do begin T:=T+1/i;
i:=i+1; end;
end
Ta có thể sử dụng câu lệnh While do thay cho câu lệnh for… do
4 Củng cố:
?Trong các hoạt động dưới đây, hoạt động nào sẽ được thực hiện lặp lại với số lần chưa biết?
A Tính tổng của 20 số tự nhiên đầu tiên
B Nhập một số hợp lệ, ví dụ số nguyên trong khoảng từ 0 đến 10, vào máy tính Nếu số nhập vào không hợp lệ thì được yêu cầu nhập lại
C Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số
D Nhập các số từ bàn phím và tính tổng cho đến khi lần đầu tiên nhận được tổng lớn hơn 1000 thì kết thúc
Đáp án: B,D
5 Dặn dò:
- Về nhà học bài
- Xem trước ví dụ 4, phần 3 giờ sau học tiếp