Các hoạt động lặp với số lần chưa biết trước 2.. Ví dụ về lệnh lặp với số lần chưa biết trước Tiết 47... Các hoạt động lặp với số lần chưa biết trước: Câu lệnh Điều kiện?. •Việc thực hi
Trang 1XIN CHÀO QUÝ THẦY CÔ GIÁO CÙNG CÁC EM HỌC SINH
Trang 2Viết chương trình tính tổng 10 số tự nhiên đầu tiên bằng việc sử dụng vòng lặp For…Do
Trang 3Bài 17 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1 Các hoạt động lặp với số lần chưa biết trước
2 Ví dụ về lệnh lặp với số lần chưa biết trước
Tiết 47
Trang 4lần chưa biết trước:
Ví dụ 1:
Cứ 10 phút, Long gọi điện cho
Trang một lần là hoạt động
lặp.
Long chưa xác định được Long
sẽ gọi cho Trang bao nhiêu
lần cả.
Long kết thúc hoạt động gọi
điện thoại khi có người nhấc
máy.
phải là hoạt động lặp hay không?
•Khi bạn Long quyết định cứ 10 phút thì gọi cho
Trang, Long có xác định được Long sẽ gọi cho
Trang mấy lần hay không?
• Khi nào hoạt động gọi điện thoại của Long kết thúc?
Trang 51 Các hoạt động lặp với
số lần chưa biết trước:
Ví dụ 2:
Bước 1: S 0, n= 0.
Bước 2: Nếu S <= 1000,
n n + 1; ngược lại,
chuyển tới 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.
Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1,2,3,…), ta sẽ được kết quả tăng dầnT1=1, T2=1+2,…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?
Em hãy viết thuật toán cho ví dụ trên?
Trang 61 Các hoạt động lặp với
số lần chưa biết trước:
Câu lệnh
Điều kiện
?
•Việc thực hiện lặp lại các phép cộng
trên với số lần chưa biết trước phụ thuộc vào điều kiện gì?
•Phép cộng chỉ dừng khi nào?
•Điều kiện s<=1000.
•Phép cộng chỉ dừng khi
kết quả kiểm tra là sai (tức
s>1000)
Đúng
Sai
Trang 71 Các hoạt động lặp
với số lần chưa biết
trước:
Nhận xét : Để viết
chương trình chỉ dẫn
máy tính thực hiện
các hoạt động lặp
như trong các ví dụ
trên, ta có thể sử
dụng câu lệnh có
dạng lặp với số lần
chưa biết trước
Câu lệnh
Điều kiện
?
Đúng
Sai
Trang 81 Các hoạt động lặp với
số lần chưa biết trước
2 Ví dụ về lệnh lặp với số
lần chưa biết trước:
Em hãy nhắc lại cú pháp của câu lệnh lặp với số lần biết trước?
For <điều kiện>:=<giá trị đầu> to <giá trị cuối> do <lệnh>;
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 hay câu lệnh
ghép.
Em hãy phân biệt câu lệnh đơn và câu
lệnh ghép?
Câu lệnh đơn là câu lệnh chỉ có một
lệnh
Câu lệnh ghép là tập hợp nhiều câu
lệnh đơn
Trang 9lần chưa biết trước
2 Ví dụ về lệnh lặp với số
lần chưa biết trước:
While <điều kiện> do <câu lệnh>;
Câu lệnh
Điều kiện
?
Dựa vào sơ đồ khối, hãy phát biểu
hoạt động của câu lệnh lặp với số lần
chưa biết trước?
Câu lệnh lặp được thực hiện
như sau:
Bước 1 : Kiểm tra điều kiện.
Bước 2 : Nếu điều kiện SAI,
câu lệnh sẽ bị bỏ qua và việc
thực hiện lệnh lặp kết thúc
Nếu điều kiện đúng, thực
hiện câu lệnh và quay lại
bước 1.
Trang 101 Các hoạt động lặp với
số lần chưa biết trước
2 Ví dụ về lệnh lặp với số
lần chưa biết trước:
Ví dụ 3:
Thuật toán:
B1. x← 1, n ← 1.
B2 Nếu x>= 0,003, n ←
n+1; Ngược lại, chuyển
tới bước 4.
B3 x ← 1/n và quay lại B2.
B4 In kết quả: n là số nhỏ
nhất để 1/n< 0,003.
Ví dụ 3: Với giá trị nào của n để 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.
Hãy viết thuật toán cho
ví dụ trên
Trang 111 Các hoạt động lặp
với số lần chưa biết
trước
2 Ví dụ về lệnh lặp
với số lần chưa biết
trước:
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:
Trang 121 Các hoạt động lặp
với số lần chưa biết
trước
2 Ví dụ về lệnh lặp
với số lần chưa biết
trước:
Ví dụ 5:
Ví dụ 5: Viết chương trình tính tổng
Trang 131 Các hoạt động lặp với
số lần chưa biết trước
2 Ví dụ về lệnh lặp với số
lần chưa biết trước:
Ví dụ 5:
Khi bài toán biết trước
số vòng lặp, nên sử dụng
câu lệnh For do Ngược
lại, khi bài toán chưa biết
trước số vòng lặp nên sử
dụng câu lệnh While do.
Ví dụ 5: Viết chương trình tính tổng
Trường hợp nào nên sử dụng câu lệnh với số lần biết trước? Trường hợp nào nên sử dụng
Trang 14Lựa chọn cấu trúc đúng của câu lệnh lặp với số lần chưa biết trước:
a X:= 10; while X= 10 do X= X+1;
b X:= 10; while X:= 10 do X:= X+1;
c S:= 0; n:= 1; while S<= 10 do S:= S+n; n:= n+1;
d S:= 0; n:= 1; while S<= 10 do
begin
S:= S+n;
n:= n+1;
end;
Trang 15nhìn vào chương trình sau và phát hiện lỗi sai của chương trình
Trang 16- Chạy bằng tay các ví dụ 3, 4, 5 SGK
- Trả lời các câu hỏi và bài tập trang 71 SGK
- Xem trước phần 3: Lặp vô hạn lần – lỗi lập trình cần tránh
Trang 17CHÚC QUÝ THẦY CÔ GIÁO MẠNH KHỎE
CHÚC CÁC EM HỌC GIỎI