Giải Bài 8: Lặp với số lần chưa biết trước Tin học 8

17

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

                 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

               begin n := n + 1 ;

                    S := S + n end;

b. S := 0;  n := 0;

   While S

                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

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 Begin n:= n + 1; S:= S + n ;end;