Lặp vô hạn- lỗi lập trình cần tránh Bài mới Bài tập về nhà Cũng cố... Lặp vô hạn- lỗi lập trình cần tránh Bài mới Bài tập về nhà Cũng cố... Lặp vô hạn- lỗi lập trình cần tránh Bài mới
Trang 2KIỂM TRA BÀI CŨ
Hãy nêu cấu trúc của lệnh lặp
có số bước lặp xác định trước? Lệnh lặp sẽ thực hiện khi nào? Kết thúc khi nào?
For <biến đếm> := <giá trị đầu> to <giá trị cuối> do
<câu lệnh>;
For <biến đếm> := <giá trị đầu> to <giá trị cuối> do
<câu lệnh>;
Trang 3Hãy xác định câu lệnh lặp của chương trình tính tổng các số tự nhiên liên tiếp:
T= 1+2+3+ +n.
Hãy xác định câu lệnh lặp của chương trình tính tổng các số tự nhiên liên tiếp:
T= 1+2+3+ +n.
Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng T n nhỏ nhất lớn hơn 1000?
Trang 41.Các hoạt động lặp với
số lần chưa biết trước
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
Cũng cố
Bài mới
Bài tập
TiÕt 48 - Bµi
8
LẶP VỚI SỐ LẦN
1.Các hoạt động lặp với
số lần chưa biết trước
2
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
Trang 52 CÂU LỆNH WHILE - DO
2 CÂU LỆNH WHILE - DO
1.Các hoạt động lặp với
số lần chưa biết trước
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
Cũng cố
Bài mới
Bài tập
Quan sát đoạn chương trình sau.Từ đó hãy nêu cấu trúc lặp với câu lệnh while - do?
1.Các hoạt động lặp với
số lần chưa biết trước
2
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
Trang 62 CÂU LỆNH WHILE - DO
2 CÂU LỆNH WHILE - DO
1.Các hoạt động lặp với
số lần chưa biết trước
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
Cũng cố
Bài mới
Bài tập
Cấu trúc lặp với câu lệnh while – do
có dạng là:
While <điều kiện> do <câu lệnh >;
While < điều kiện > do < câu lệnh >;
Điều kiện: Thường là phép so sánh Câu lệnh: là một câu lệnh đơn giản hay lệnh ghép trong Pascal
Trong đó: While, do là các từ khóa
1.Các hoạt động lặp với
số lần chưa biết trước
2
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
Trang 7Quan sát sơ đồ
khối, em hãy
cho biết máy
tính sẽ thực
hiện như thế
nào?
• Bước 1: Kiểm tra <điều kiện>
• Bước 2: Nếu <điều kiện> có giá trị đúng thì thực hiện câu lệnh
và quay lại bước 1 Ngược lại nếu điều kiện sai thì sẽ bỏ qua và kết thúc vòng lặp
SƠ ĐỒ KHỐI
Điều kiện
Câu lệnh
Đúng
Sai
Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện.
Trang 8Ví dụ 1
Nếu n (n>0) càng lớn thì 1/n càng nhỏ, nhưng luôn luôn lớn hơn 0
Viết chương trình tính tổng :
cho tới khi 1/n <0.003
2 3
T
n
= + + + +
1.Các hoạt động lặp với
số lần chưa biết trước
2
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
Trang 9* Lần lượt thay điều kiện sai_so bằng các giá trị 0.005; 0.002; 0.001, ta nhận các kết quả
khác nhau
Quan sát chương trình
Trang 10Viết chương trình tính tổng T.
100
1
3
1 2
1
1 + + + +
=
T
Yêu cầu:
Viết chương trình theo hai dạng cấu trúc:
for do while do
Ví dụ 2:
1.Các hoạt động lặp với
số lần chưa biết trước
2
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
Trang 11Quan sát chương trình dạng For Quan sát chương trình dạng While
Em có nhận xét gì về hai dạng lệnh trên?
Trang 12Lưu ý khi sử dụng lệnh l ặp for - While
- Ở dạng For do khi chạy chương trình thì máy nó
sẽ tự tăng biến điều khiển(biến đếm) Còn dạng While thì người lập trình phải tự tăng biến điều khiển.
- Một số bài toán chỉ sử dụng được lệnh While
do mà không sử dụng được lệnh For Do
Ngược lại có thể sử dụng câu lệnh While Do thay cho câu lệnh For Do.
- Ở lệnh While Do khi có nhiều lệnh phải được đặt giữa 2 từ khóa Begin và End
- Ở lệnh For câu lệnh được thực hiện ít nhất 1 lần, sau
đó kiểm tra điều kiện Còn vòng While thì trước hết máy kiểm tra điều kiện Nếu đk đúng thì câu lệnh mới được thực hiện Do đó có trường hợp câu lệnh hoàn toàn không được thực hiện
- Trong câu lệnh For điều kiện là giá trị của một biến đếm có giá trị nguyên, còn câu lệnh While thì Đk kiểm tra có thể là giá trị của một số thực
1.Các hoạt động lặp với
số lần chưa biết trước
2
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
Trang 133 LẶP VÔ HẠN LẦN _ LỖI LẬP TRÌNH CẦN TRÁNH
Quan sát đoạn chương trình sau:
Yêu cầu:
* Hãy cho biết chương trình trên sẽ lặp lại như thế
nào? n
Vòng lặp vô tận
Trang 141 Cấu trúc lặp với số lần chưa biết trước.
câu lệnh phải được thay đổi để sớm hay
không “ rơi ” vào “vòng lặp vô tận”
1.Các hoạt động lặp với
số lần chưa biết trước
2
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
Trang 15Bài tập về nhà
1.Các hoạt động lặp với
số lần chưa biết trước
2.Câu lệnh While do
Ví dụ 1:
Ví dụ 2:
3 Lặp vô hạn- lỗi lập
trình cần tránh
Bài mới
Bài tập về nhà
Cũng cố
1.- Về nhà các em học bài và làm bài tập trong SGK trang 71
2 - Chuẩn bị bài thực hành số 6 SGK để tiết sau sữa bài tập và thực hành.
3.Viết chương trình để giải một số bài toán sau:
a Tính tổng s = 1+3+5+7 +….+ (2n-1) bằng câu lệnh For và While.
b Tính tổng s= 2+5+8+….+(3n-1) bằng câu lệnh For
và While.
b Với giá trị nào của n thì 1/n < 0.003?
Viết chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước.
Trang 16Thực hiện tháng 03 năm 2010
Trang 17Với giá trị nào của n thì 1/n < 0.003?
Viết chương trình tính số n nhỏ nhất để 1/n
nhỏ hơn một sai số cho trước.
Ví dụ 1
Nếu n (n>0) càng lớn thì 1/n càng nhỏ, nhưng luôn luôn lớn hơn 0
Trang 18Quan sát chương trình
* Lần lượt thay điều kiện sai_so bằng các giá trị 0.005; 0.002; 0.001, ta nhận các kết quả
khác nhau
Trang 19Viết chương trình tính tổng
T=1 + 2 + 3 + … + n
• Cần cộng bao nhiêu số tự nhiên để ta
nhận được tổng Tn nhỏ nhất lớn hơn 1000.
• Tính tổng S
EXAMPLE 2
Trang 20Quan sát chương trình