Việc lặp lại một nhóm hoạt động với số lần chưa xác định trước phụ thuộc vào một điều kiện cụ thể được thỏa mãn và chỉ dừng lại khi điều kiện không thỏa mãn.. Để chỉ dẫn máy tính thự[r]
(1)Tuần 22: Từ ngày 30/03 đến ngày 05/04 - Tiết 2 Tuần 23: Từ ngày 06/04 đến ngày 12/04 - Tiết 1
Bài 8: Lặp với số lần chưa biết trước
Trong Bài 7: Câu lệnh lặp làm quen với hoạt động lặp cách thị cho máy tính thực hoạt động lặp với số lần xác định trước Trong thực tế có nhiều hoạt động thực lặp lặp lại với số lần lần chưa biết trước Vậy để hiểu rõ vấn đề này, mời em theo dõi Bài 8: Lặp với số lần chưa biết trước để tìm hiểu nội dung chi tiết.
Nội dung:
1 Tóm tắt lý thuyết
1.1 Các hoạt động lặp với số lần chưa biết trước 1.2 Ví dụ lệnh lặp với số lần chưa biết trước
1.3 Lặp vơ hạn - Lỗi lập trình cần tránh - Phần giảm tải - Khuyến kích HS tự tìm hiểu 1 Tóm tắt lý thuyết
1.1 Các hoạt động lặp với số lần chưa biết trước
Ví dụ 1: Một ngày chủ nhật Long gọi điện cho Trang Khơng có nhấc máy Long quyết định gọi lại thêm lần Như Long biết trước lặp lại gọi điện thêm lần Một ngày khác, Long định 10 phút gọi điện lần cho Trang có người bắt máy
Điều kiện: Có người nhấc máy kết thúc hoạt động lặp
Ví dụ 2: Nếu cộng n số tự nhiên (n = 1, 2, 3, ), cần cộng số tự nhiên để ta nhận tổng Tn nhỏ lớn 1000?
Điều kiện: Khi tổng Tn nhỏ lớn 1000 kết thúc hoạt động lặp Mơ tả thuật tốn liệt kê:
Bước S0, n0
Bước Nếu S ≤ 1000, nn + 1; ngược lại chuyển tới Bước 4 Bước S S + n quay lại Bước 2
Bước In kết quả: S n số tự nhiên nhỏ cho S > 1000 Kết thúc thuật tốn
(2)Hình Mơ tả thuật toán sơ đồ khối KẾT LUẬN:
Việc lặp lại nhóm hoạt động với số lần chưa xác định trước phụ thuộc vào điều kiện cụ thể thỏa mãn dừng lại điều kiện không thỏa mãn
Để dẫn máy tính thực hoạt động lặp trên, ta sử dụng câu lệnh có dạng: Lặp với số lần chưa biết trước
1.2 Ví dụ lệnh lặp với số lần chưa biết trước a Cú pháp:
While < Điều kiện > do Begin
< Câu lệnh >; End;
Trong đó:
While, do: từ khóa
Điều kiện: thường phép so sánh
Câu lệnh: câu lệnh đơn giản hay câu lệnh ghép b Sơ đồ hoạt động
c Ý nghĩa sơ đồ:
Bước Kiểm tra điều kiện
Bước
* Nếu điều kiện thực câu lệnh quay lại bước 1 * Nếu điều kiện sai kết thúc vịng lặp.
Ví dụ 3:
While a<=b a:=a+1; While, từ khóa
Điều kiện a<=b (chứa phép so sánh) Câu lệnh a:=a+1 (câu lệnh đơn)
(3)Begin
write('a>b'); a:=a-1; End;
While, từ khóa
Điều kiện a>b (chứa phép so sánh)
Câu lệnh Write('a>b') a:=a-1 (câu lệnh ghép)
Ví dụ 5: Viết câu lệnh in số tự nhiên liên tiếp bắt đầu số 1. Gợi ý giải:
Sử dụng lệnh lặp với số lần lặp chưa biết trước while…do Đoạn chương trình mẫu:
n:=1
while n<=5 do begin
writeln(n); n:=n+1; end;
1.3 Lặp vô hạn - Lỗi lập trình cần tránh - Phần giảm tải - Khuyến kích HS tự tìm hiểu
Khi viết chương trình sử dụng cấu trúc lặp cần ý tránh tạo nên vịng lặp khơng kết thúc
Chẳng hạn, chương trình 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ị biến a luôn 5, điều kiện a<6 luôn nên lệnh writeln('A'); thực
Do vậy, thực vòng lặp, điều kiện câu lệnh phải thay đổi để sớm hay muộn giá trị điều kiện chuyển từ sang sai Chỉ chương trình khơng "rơi" vào "vịng lặp vơ tận"
2 Luyện tập Bài Tin học 8
Sau học xong Bài 8: Lặp với số lần chưa biết trước, em cần ghi nhớ:
Ngoài cấu trúc lặp với số lần lặp biết trước, ngơn ngữ lập trình cịn có câu lệnh lặp với số lần chưa biết trước
While câu lệnh lặp với số lần chưa biết trước Pascal 2.1 Trắc nghiệm
(4)o B Kiểm tra giá trị < điều kiện > o C Thực câu lệnh sau từ khóa Then o D Kiểm tra < câu lệnh >
Câu 2: < câu lệnh > sau từ khóa Do câu lệnh While thực ít lần?
o A lần
o B lần
o C lần
o D Vô số lần
Câu 3: Cho biết câu lệnh sau Do thực lần đoạn chương trình sau:
i := 5;
While i>=1 i := i – 1;
o A lần
o B lần
o C lần
o D lần
2.2 Bài tập SGK
Bài tập trang 71 SGK Tin học 8
Một vài ví dụ hoạt động lặp với số lần chưa biết trước: HS tự tìm ví dụ Bài tập trang 71 SGK Tin học 8
Gợi ý trả lời 2
Sự khác biệt câu lệnh lặp với số lần lặp cho trước câu lệnh lặp với số lần lặp chưa biết trước điểm sau đây:
Câu lệnh với số lần lặp cho trước Câu lệnh lặp với số lần lặp chưa biết trước
Chỉ thị cho máy tính thực lệnh nhóm lệnh với số lần xác định từ trước
Chỉ thị cho máy tính thực lệnh nhóm lệnh với số lần lặp chưa xác định trước
Điều kiện giá trị biến đếm có giá trị nguyên đạt giá trị lớn hay chưa
Điều kiện kiểm tra giá trị số thực, điều kiện tổng qt khác, ví dụ số có chia hết cho hay không, Câu lệnh thực lần, sau
kiểm tra điều kiện
Điều kiện kiểm tra trước Nếu điều kiện thỏa mãn, câu lệnh thực Do có trường hợp câu lệnh hồn tồn khơng thực
(5)Hãy tìm hiểu thuật tốn sau cho biết thực thuật tốn, máy tính vòng lặp? Khi kết thúc, giá trị S bao nhiêu? Viết chương trình Pascal thể thuật tốn đó:
a) Thuật tốn
Bước S 10, x 0.5
Bước Nếu S 5.2, chuyển tới bước Bước S S - x quay lại bước Bước Thông báo S kết thúc thuật toán b) Thuật toán
Bước S 10, n ->
Bước Nếu S ≥ 10, chuyển tới bước
Bước n n + 3, S S - n quay lại bước Bước Thông báo S kết thúc thuật toán Hướng dẫn giải chi tiết 3
a) Thuật tốn 1:
10 vịng lặp thực Khi kết thúc thuật toán S = 5.0 Đoạn chương trình Pascal tương ứng:
S:=10; x:=0.5;
while S>5.2 S:=S-x; writeln(S);
b) Thuật toán 2:
Khơng vịng lặp thực từ đầu điều kiện không thỏa mãn nên bước bị bỏ qua S = 10 kết thúc thuật tốn Đoạn chương trình Pascal tương ứng:
S:=10; n:=0; while S<10 do
begin n:=n+3; S:=S-n end; writeln(S);
Nhận xét: Trong thuật tốn chương trình trên, điều kiện kiểm tra trước bước lặp thực Do điều kiện không thỏa mãn từ đầu, bước lặp bị bỏ qua Điều đặc biệt câu lệnh lặp while
Bài tập trang 71 SGK Tin học 8
Hãy tìm hiểu cụm câu lệnh sau cho biết với câu lệnh chương trình thực vòng lặp? Hãy rút nhận xét em
a)
S:=0; n:=0; while S<=10 do
begin n:=n+1; S:=S+n end;
(6)S:=0; n:=0; while S<=10 do n:=n+1; S:=S+n;
Hướng dẫn giải chi tiết 4
a) Chương trình thực vòng lặp
b) Vòng lặp chương trình thực vơ tận sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn thỏa mãn Phần giảm tải -Khuyến kích HS tự tìm hiểu
Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn Khi vịng lặp kết thúc sau hữu hạn bước Để làm điều này, câu lệnh câu lệnh lặp while thường câu lệnh ghép
Bài tập trang 71 SGK Tin học 8
Hãy lỗi câu lệnh sau đây: a) X:=10; while X:=10 X:=X+5; b) X:=10; while X=10 X=X+5;
c) S:=0; n:=0; while S<=10 n:=n+1; S:=S+n; a) Thừa dấu hai chấm điều kiện;
b) Thiếu dấu hai chấm câu lệnh gán;
c) Thiếu từ khóa begin end trước sau lệnh n:=n+1; S:=S+n, vịng lặp trở thành vơ tận
1 Tóm tắt lý thuyết 1.1 Các hoạt động lặp với số lần chưa biết trước 1.2 Ví dụ lệnh lặp với số lần chưa biết trước 1.3 Lặp vô hạn - Lỗi lập trình cần tránh Việc mà câu lệnh While cần thực gì? < câu lệnh > sau từ khóa Do câu lệnh While thực Cho biết câu lệnh sau Do thực lần đoạn chương trình