Trang Chủ Bài tập SGK lớp 8 Bài tập Tin học lớp 8 Bài 8. Lặp với số lần chưa biết trước – Tin học...

Bài 8. Lặp với số lần chưa biết trước – 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

CHIA SẺ
Bài 8 Tin học lớp 8: Lặp với số lần chưa biết trước. Giải câu 1, 2, 3, 4, 5 trang 70, 71 . 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..

Câu 1: 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: 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: 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 ;

- Quảng cáo -

                    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

Sự khác nhau giữa câu lệnh lặp với số lần chưa biết trước và câu lệnh lặp với số lần biết trước?

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: 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;