Bài 8: Lặp với số lần chưa biết trước
Câu 1 trang 70 SGK tin học 8
Em hãy nêu một vài ví dụ về hoạt động lặp với số lần chưa biết trước
Lời giải :
– Tập lái xe đến khi biết lái
– Học thuộc lòng một bài thơ cho tới khi bố mẹ kiểm tra là đã thuộc thì mới kết thúc, nếu không thì phải học lại…
Câu 3 trang 70 SGK tin học 8
Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ bao
nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu? Viết chương trình Pascal thể
hiện các thuật toán đó!
a) Thuật toán 1
Bước 1. S
Bước 2. Nếu S 5.2, chuyển tới bớc 4.
Bước 3. S
Bước 4. Thông báo S và kết thúc thuật toán.
b) Thuật toán 2
Bước 1. S 10, n 0.
Bước 2. Nếu S 10, chuyển tới bớc 4.
Bước 3. n n + 3, S = S-n quay lại bước 2.
Bước 4. Thông báo S và kết thúc thuật toán.
Lời giải :
a. Thuật toán 1 :
Máy tính sẽ thực hiện 10 vòng lặp , khi kết thúc thuật toán giá trị của S = 5.0
Đoạn chương trình Pascal tương ứng:
S := 10; x := 0.5;
While S > 5.2 do
S := S – x;
Writeln(S);
b. Thuật toán 2 :
Máy tính sẽ không thực hiện vòng lặp nào do điều kiện không thỏa mãn, khi kết thúc thuật toán giá trị của S = 10
Đ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);
Câu 4 trang 71 SGK tin học 8
Hãy tìm hiểu mỗi đoạn lệnh sau đây và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp ? Hãy rút ra nhận xét của em.
a. S := 0; n := 0;
While S <= 10 do
begin n := n + 1 ;
S := S + n end;
b. S := 0; n := 0;
While S <= 10 do
n := n + 1 ;
S := S + n ;
Lời giải :
a.
Đoạn chương trình trên máy tính thực hiện 5 vòng lặp :
VL |
n := n+1 |
S := S+n |
1 | 1 | 1 |
2 | 2 | 3 |
3 | 3 | 6 |
4 | 4 | 10 |
5 | 5 | 15 |
b. Đoạn chương trình trên máy tính lặp vô hạn lần.
Câu 2 trang 70 SGK tin học 8
Lời giải :
Câu lệnh lặp với số lần biết trước :
– Chỉ thị cho máy tính thực hiện 1 lệnh hay 1 nhóm lệnh với số lần đã được xác định từ trước.
– Điều kiện là 1 giá trị của 1 biến đếm có giá trị nguyên
Câu lệnh lặp với số lần chưa biết trước :
– Chỉ thị cho máy tính thực hiện 1 lệnh hay 1 nhóm lệnh với số lần lặp chưa biết trước.
– Điều kiện tổng quát hơn, có thể là kiểm tra của 1 giá trị có thực, cũng có thể là 1 điều kiện tổng quát khác.
Câu 5 trang 70 SGK Tin học lớp 8
Hãy chỉ ra lỗi trong các câu lệnh sau đây:
a) X:= 10; while X: = 10 do X: = X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:=0;
while S <= 10 do n:= n + 1; S:= S + n ;
Lời giải :
a. Sai ở : while X:=10
X:= 10; while X: = 10 do X: = X + 5;
sửa thành X:= 10; while X = 10 do X : = X + 5;
b. Sai ở : X = X + 5
X:= 10; while X = 10 do X = X + 5;
Sửa thành : X:= 10; while X = 10 do X : = X + 5;
c. Thiếu begin và end trong vòng lặp
Sửa thành
S:= 0; n:=0;
while S <= 10 do Begin n:= n + 1; S:= S + n ;end;
Giaibaitap.me