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

Sách Giáo Khoa

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  \(\leftarrow\) 10, x \(\leftarrow\) 0.5

Bước 2. Nếu S \(\leq\) 5.2, chuyển tới bước 4.

Bước 3. S \(\leftarrow\) S - x và quay lại bước 2.

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 \(\leftarrow\) 10, n \(\leftarrow\) 0.

Bước 2. Nếu S ≥ 10, chuyển tới bước 4.

Bước 3. n \(\leftarrow\) n + 3, S  \(\leftarrow\) 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.

Minh Lệ
20 tháng 4 2020 lúc 10:10

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.

tricoder
6 tháng 1 2021 lúc 16:44

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)

-không thực hiện lặp do điều kiện thoát lặp là s>=10 mà ban đầu s=10

-kết thúc,s=10

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.


Các câu hỏi tương tự
Quỳnh Huỳnh
Xem chi tiết
help me
Xem chi tiết
Bùi Thọ Anh
Xem chi tiết
linh phuong
Xem chi tiết
Linh Đào Phương
Xem chi tiết
Bao An Nguyen Thien
Xem chi tiết
tien nguyen
Xem chi tiết
Nhung Beat
Xem chi tiết
Creeper Boy - MC Gamer
Xem chi tiết