Trong Bài 7: Câu lệnh lặp chúng ta đã làm quen với các hoạt động lặp và cách chỉ thị cho máy tính thực hiện các hoạt động lặp với số lần đã được xác định trước. Trong thực tế có nhiều hoạt động được thực hiện lặp đi lặp lại với số lần lần chưa được biết trước. Vậy để hiểu rõ hơn về vấn đề này, mời các em cùng 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.
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ó ai nhấc máy. Long quyết định gọi lại thêm 1 lần nữa. Như vậy Long đã biết trước là mình sẽ lặp lại gọi điện thêm 2 lần. Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi có người bắt máy.
Điều kiện: Có người nhấc máy thì kết thúc hoạt động lặp.
Ví dụ 2: Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), 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?
Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp
Mô tả thuật toán bằng liệt kê:
- Bước 1. S \(\leftarrow\) 0, n \(\leftarrow\) 0
- Bước 2. Nếu S ≤ 1000, n \(\leftarrow\) n + 1; ngược lại chuyển tới Bước 4
- Bước 3. S \(\leftarrow\) 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
Mô tả thuật toán bằng sơ đồ khối:
Hình 1. Mô tả thuật toán bằng sơ đồ khối
KẾT LUẬN:
- 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ực hiện các hoạt động lặp 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
1.2. Ví dụ về lệnh lặp với số lần chưa biết trước
Cú pháp:
While < Điều kiện > do < Câu lệnh >;
Trong đó:
- While, do: là các từ khóa
- Đ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
Hoạt động:
- 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 câu 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
Ví dụ 3:
While a<=b do a:=a+1;
- While, do là các từ khóa
- Điều kiện là a<=b (chứa phép so sánh)
- Câu lệnh là a:=a+1 (câu lệnh đơn)
Ví dụ 4:
While a>b do
Begin
write('a>b');
a:=a-1;
End;
- While, do là các từ khóa
- Điều kiện là a>b (chứa phép so sánh)
- Câu lệnh là Write('a>b') và a:=a-1 (câu lệnh ghép)
Ví dụ 5: Viết câu lệnh in ra 5 số tự nhiên liên tiếp bắt đầu bằng 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
Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc.
Chẳng hạn, chương trình dưới đây sẽ 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ị của biến a luôn luôn bằng 5, điều kiện a<6 luôn luôn đúng nên lệnh writeln('A'); luôn được thực hiện.
- Do vậy, 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. Chỉ như thế chương trình mới không "rơi" vào những "vòng lặp vô tận".
2. Luyện tập Bài 8 Tin học 8
Sau khi học xong Bài 8: Lặp với số lần chưa biết trước, cá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, các ngôn ngữ lập trình còn có các câu lệnh lặp với số lần chưa biết trước
- while...do là câu lệnh lặp với số lần chưa biết trước trong Pascal
2.1. Trắc nghiệm
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 8 Bài 8 cực hay có đáp án và lời giải chi tiết.
-
- A. Thực hiện < câu lệnh > sau từ khóa Do
- B. Kiểm tra giá trị của < điều kiện >
- C. Thực hiện câu lệnh sau từ khóa Then
- D. Kiểm tra < câu lệnh >
-
- A. 0 lần
- B. 1 lần
- C. 2 lần
- D. Vô số lần
-
- A. 1 lần
- B. 2 lần
- C. 5 lần
- D. 6 lần
Câu 4- 10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
2.2. Bài tập SGK
Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 8 Bài 8 để giúp các em nắm vững bài học và các phương pháp giải bài tập.
Bài tập 1 trang 71 SGK Tin học 8
Bài tập 2 trang 71 SGK Tin học 8
Bài tập 3 trang 71 SGK Tin học 8
Bài tập 4 trang 71 SGK Tin học 8
Bài tập 5 trang 71 SGK Tin học 8
3. Hỏi đáp Bài 8 Tin học 8
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học HOC247 sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 8 HỌC247