Tìm kiếm Bài giảng
Bài 8. Lặp với số lần chưa biết trước

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Hoàng Thị Vân
Ngày gửi: 08h:38' 25-02-2023
Dung lượng: 607.0 KB
Số lượt tải: 126
Nguồn:
Người gửi: Hoàng Thị Vân
Ngày gửi: 08h:38' 25-02-2023
Dung lượng: 607.0 KB
Số lượt tải: 126
Số lượt thích:
0 người
BÀI 8
LẶP VỚI SỐ LẦN CHƯA BIẾT
TRƯỚC
Thời gian 2 tiết
CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Hãy đọc ví dụ 1 _ sách giáo khoa _
trang 67
.....
CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Nếu cộng lần lượt n số tự nhiên đầu tiên (n= 1, 2,
3,…), ta sẽ được các kết quả T1=1, T2=1 + 2, T3=1
+ 2 + 3, … tăng dần.
Cần cộng bao nhiêu số tự nhiên đầu tiên để ta
nhận được tổng Tn nhỏ nhất lớn hơn 1000?
CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
THUẬT TOÁN
* Bước 1: S ← 0; n ← 0;
{Khởi tạo S và n}
* Bước 2: Nếu S ≤ 1000, n ← n + 1; ngược lại, chuyển đến bước 4;
* Bước 3: S ← S + n và quay lại bước 2;
* Bước 4: In kết quả: S và n là số tự nhiên nhỏ nhất sao cho
S > 1000. kết thúc thuật toán
Nhận xét thuật toán.
Từ bước 2 đến bước 3 được lặp lại nhiều lần
nếu điều kiện S ≤ 1000 chưa được thoả mãn
và chỉ dừng khi điều kiện đó sai.
CÂU LỆNH WHILE - DO
Hãy nêu cấu trúc lặp với câu lệnh while - do?
While <điều kiện> do;
Điều kiện: biểu thức quan hệ hoặc biểu thức logic
Câu lệnh: là môt câu lệnh trong Pascal
SƠ ĐỒ KHỐI
Điều kiện
Sai
Đúng
Quan sát sơ
đồ khối, hãy
cho biết sự
thực hiện của
máy?
Câu lệnh
• Bước 1: tính giá trị của <điều kiện>.
• Bước 2: Nếu <điều kiện> có giá trị đúng thì:
• thực hiện lệnh cần lặp.
• quay lại bước 1.
Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện.
VÍ DỤ 1
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.
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
Quan 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.
VÍ DỤ 2
Viết chương trình tính tổng T.
S=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
Quan sát chương trình
VÍ DỤ 3
Viết chương trình tính tổng T.
1 1
1
T 1 ...
2 3
100
Yêu cầu:
Viết chương trình theo hai dạng cấu trúc:
for .. do
while .. do
Quan sát chương trình
Quan sát chương trình
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:
Vòng lặp vô tận
Yêu cầu:
* Hãy cho biết chương trình trên sẽ lặp lại như thế
nào?
GHI NHỚ
1. Cấu trúc lặp với số lần chưa biết trước.
While <điều kiện> do;
2. 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, thì chương trình sẽ
không “rơi” vào “vòng lặp vô tận”
LẶP VỚI SỐ LẦN CHƯA BIẾT
TRƯỚC
Thời gian 2 tiết
CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Hãy đọc ví dụ 1 _ sách giáo khoa _
trang 67
.....
CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Nếu cộng lần lượt n số tự nhiên đầu tiên (n= 1, 2,
3,…), ta sẽ được các kết quả T1=1, T2=1 + 2, T3=1
+ 2 + 3, … tăng dần.
Cần cộng bao nhiêu số tự nhiên đầu tiên để ta
nhận được tổng Tn nhỏ nhất lớn hơn 1000?
CÁC HOẠT ĐỘNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
THUẬT TOÁN
* Bước 1: S ← 0; n ← 0;
{Khởi tạo S và n}
* Bước 2: Nếu S ≤ 1000, n ← n + 1; ngược lại, chuyển đến bước 4;
* Bước 3: S ← S + n và quay lại bước 2;
* Bước 4: In kết quả: S và n là số tự nhiên nhỏ nhất sao cho
S > 1000. kết thúc thuật toán
Nhận xét thuật toán.
Từ bước 2 đến bước 3 được lặp lại nhiều lần
nếu điều kiện S ≤ 1000 chưa được thoả mãn
và chỉ dừng khi điều kiện đó sai.
CÂU LỆNH WHILE - DO
Hãy nêu cấu trúc lặp với câu lệnh while - do?
While <điều kiện> do
Điều kiện: biểu thức quan hệ hoặc biểu thức logic
Câu lệnh: là môt câu lệnh trong Pascal
SƠ ĐỒ KHỐI
Điều kiện
Sai
Đúng
Quan sát sơ
đồ khối, hãy
cho biết sự
thực hiện của
máy?
Câu lệnh
• Bước 1: tính giá trị của <điều kiện>.
• Bước 2: Nếu <điều kiện> có giá trị đúng thì:
• thực hiện lệnh cần lặp.
• quay lại bước 1.
Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện.
VÍ DỤ 1
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.
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
Quan 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.
VÍ DỤ 2
Viết chương trình tính tổng T.
S=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
Quan sát chương trình
VÍ DỤ 3
Viết chương trình tính tổng T.
1 1
1
T 1 ...
2 3
100
Yêu cầu:
Viết chương trình theo hai dạng cấu trúc:
for .. do
while .. do
Quan sát chương trình
Quan sát chương trình
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:
Vòng lặp vô tận
Yêu cầu:
* Hãy cho biết chương trình trên sẽ lặp lại như thế
nào?
GHI NHỚ
1. Cấu trúc lặp với số lần chưa biết trước.
While <điều kiện> do
2. 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, thì chương trình sẽ
không “rơi” vào “vòng lặp vô tận”
 








Các ý kiến mới nhất