Bài 8. Lặp với số lần chưa biết trước

Sách Giáo Khoa
Hướng dẫn giải Thảo luận (2)

- Tập đi cho đến khi biết đi.

- Tập nấu cho đến khi nấu ăn 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…

Sách Giáo Khoa
Hướng dẫn giải Thảo luận (3)

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.

Sách Giáo Khoa
Hướng dẫn giải Thảo luận (2)

a)

- Máy thực hiện gồm 10 vòng lặp

- Khi kết thúc vòng lặp giá trị của S=5

- Chương trình :

Program hotrotinhoc;

var x,s:real;

begin

s:=10; x:=0.5;

while s>=5.2 do s:=s-x;

write(s:1:0);

readln

end.

b)

- Máy thực hiện gồm vô hạn vòng lặp

- Khi kết thúc vòng lặp giá trị của S không xác định

- Chương trình :

Program hotrotinhoc;

var n,s:byte;

begin

s:=10; n:=0;

while s<=10 do

begin

n:=n+3;

s:=s-n;

end;

write(s);

readln

end.

Sách Giáo Khoa
Hướng dẫn giải Thảo luận (1)

a) Vòng lặp while thực hiện 5 vòng lặp:
Vòng thứ nhất s=0 => n=1, s=1;
Vòng thứ hai s=1 => n=2, s=3;
Vòng thứ ba s=3 => n=3, s=6;
Vòng thứ tư s=6 => n=4, s=10;
Vòng thứ năm s=10 => n=5, s=15 kết thúc vòng lặp.
=> Vòng while sẽ kết thúc khi giá trị của s thay đổi không đáp ứng điều kiện tiếp tục vòng.

b) Vòng lặp while thực hiện vô hạn lần.
=> Giá trị của s luôn thỏa mãn điều kiện tiếp tục vòng while vì trong vòng while không thấy sự thay đổi của biến s (s luôn bằng 0 bé hơn 10).

Sách Giáo Khoa
Hướng dẫn giải Thảo luận (1)

a) Thừa dấu hai chấm trong điều kiện;

b) Thiếu dấu hai chấm trong câu lệnh gán;

c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận.