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

Nhằm giúp các em học sinh học thật tốt môn Tin học 8, eLib đã biên soạn và tổng hợp nội dung giải bài tập trang 71 dưới đây. Tài liệu gồm các câu hỏi với phần phương pháp và hướng dẫn giải đầy đủ, chi tiết. Mời các em cùng tham khảo!

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

1. Giải bài 1 trang 71 SGK Tin học 8

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.

Phương pháp giải

Dựa vào các kiến thức được học kết hợp với nội dung được trình bày ở mục 1 trang 67 SGK Tin học 8 để phân tích và đưa ra câu trả lời phù hợp.

Hướng dẫn giải

Một vài ví dụ về hoạt động lặp với số lần chưa biết trước:

- Tìm một từ nhất định bị gõ sai chính tả trong văn bản và sửa lại cho đúng. Số từ cần phải sửa chưa được biết trước

- Khi chuẩn bị tô phở để phục vụ cho khách, cô bán hàng thường thực hiện các công việc sau đây: Cho một lượng bánh phở vào nồi nước phở để làm nóng bánh phở, cho bánh phở đã làm nóng vào bát, làm chín một ít thịt và cho vào bát bánh phở đã được làm nóng, cho thêm gia vị, thêm nước phở đang được đun sôi và bát phở,... Các thao tác đó được thực hiện lặp lại mỗi khi có khách ăn phở. Trong suốt ca bán hàng số lần thực hiện các thao tác lặp đó là không thể biết trước

- Trong xưởng may, mỗi cô công nhân may cùng một chi tiết của chiếc áo, hay chiếc quần với các đường may đã được thiết kế trước. May xong một sản phẩm, cô công nhân sẽ may sản phẩm tiếp theo cho đến khi hết giờ làm việc

2. Giải bài 2 trang 71 SGK Tin học 8

Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp chưa biết trước.

Phương pháp giải

Từ các kiến thức được học kết hợp với nội dung được trình bày ở mục 2 trang 68, 69 SGK Tin học 8 để phân tích và trả lời.

Hướng dẫn giải

Sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp chưa biết trước là ở các điểm sau đây:

- Câu lệnh với số lần lặp cho trước

+ Chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được xác định từ trước

+ Điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa

+ Câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện

- Câu lệnh lặp với số lần lặp chưa biết trước

+ Chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần lặp chưa được xác định trước

+ Điều kiện có thể là kiểm tra một giá trị của một số thực, cũng có thể là một điều kiện tổng quát khác, ví dụ như một số có chia hết cho 3 hay không,...

+ Điều kiện được kiểm tra trước. Nếu điều kiện được thỏa mãn, câu lệnh mới được thực hiện. Do đó có thể có trường hợp câu lệnh hoàn toàn không được thực hiện.

3. Giải bài 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  ← 10, x ← 0.5

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

- Bước 3. S ← 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 ← 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.

Phương pháp giải

Dựa vào nội dung được trình bày ở mục 2 trang 68, 69 SGK Tin học 8 để trả lời.

Hướng dẫn giải

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.

4. Giải bài 4 trang 71 SGK Tin học 8

Hãy tìm hiểu các cụm câu lệnh sau đây và cho biết với các câu 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; S:=S+n

end;

b)

S:=0; n:=0;

while S<=10 do

      n:=n+1; S:=S+n;

Phương pháp giải

Dựa vào các kiến thức được học kết hợp với nội dung được trình bày ở mục 2,3 trang 67-69 SGK Tin học 8 để phân tích và đưa ra câu trả lời phù hợp.

Hướng dẫn giải

a) Chương trình thực hiện 5 vòng lặp.

b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn.

Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp while..do thường là câu lệnh ghép.

5. Giải bài 5 trang 71 SGK Tin học 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<=10 do n:=n+1; S:=S+n;

Phương pháp giải

Từ vào các kiến thức được học kết hợp với nội dung được trình bày ở mục 2 trang 68, 69 SGK Tin học 8 để phân tích và chỉ ra lỗi sau của phương trình.

Hướng dẫn giải

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.

Ngày:15/09/2020 Chia sẻ bởi:Denni Trần

CÓ THỂ BẠN QUAN TÂM