Bài tập 3 trang 71 SGK Tin học 8

Lý thuyết Bài tập
Câu hỏi:

Bài tập 3 trang 71 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  \(\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.

a) Thuật toán 1:

10 vòng lặp được thực hiện. Khi kết thúc thuật toán 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:

Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đ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);

Nhận xét: Trong các thuật toán và chương trình trên, điều kiện được kiểm tra trước khi các bước lặp được thực hiện. Do đó nếu điều kiện không được thỏa mãn ngay từ đầu, các bước lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp while..do.

 

-- Mod Tin Học 8

Copyright © 2021 HOCTAP247