Đánh giá giải bài tập tin học 8

  • Học tốt
  • Lớp 8
  • Môn Tin Học Lớp 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?

  • Bài học cùng chủ đề:
  • Câu 5 trang 70 SGK Tin học lớp 8
  • Câu 2 trang 70 SGK tin học 8
  • Câu 4 trang 71 SGK tin học 8
  • Ngữ pháp tiếng anh hay nhất

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ác chương học và chủ đề lớn

  • Bài 1. máy tính và chương trình máy tính
  • Bài 2. làm quen với chương trình và ngôn ngữ lập trình
  • Bài 3. chương trình máy tính và dữ liệu
  • Bài 4: sử dụng biến trong chương trình
  • Bài 5: từ bài toán đến chương trình
  • Bài 6: câu lệnh điều kiện
  • Bài 7: câu lệnh lặp
  • Bài 8: lặp với số lần chưa biết trước
  • Bài 9: làm việc với dãy số

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

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

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 được VnDoc sưu tầm và đăng tải, tổng hợp các câu hỏi trong sách giáo khoa nằm trong chương trình giảng dạy môn Tin học lớp 8. Hi vọng rằng đây sẽ là những tài liệu hữu ích trong công tác giảng dạy và học tập của quý thầy cô và các bạn học sinh. Mời các quý thầy cô và các bạn cùng tham khảo

Bài 1 (trang 66 sgk Tin học lớp 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.

Trả lời:

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

- Tập nấu cho đến khi nấu ăn giỏi.

- Múc nước cho đến khi đầy thùng.

Bài 2 (trang 66 sgk Tin học lớp 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.

Trả lờ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.

Bài 3 (trang 66 sgk Tin học lớp 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ẽ thực hiện 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 ≤ 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 và quay lại bước 2.

Bước 4. Thông báo S và kết thúc thuật toán.

Trả lời:

a) Thuật toán 1:

- Kết quả thuật toán có 10 vòng lặp, giá trị S=5.

- Chương trình Pascal:

Đánh giá giải bài tập tin học 8

b) Thuật toán 2:

- Kết quả thuật toán có 0 vòng lặp do điều kiện vòng lặp không thỏa mãn, giá trị S=10.

- Chương trình Pascal:

Đánh giá giải bài tập tin học 8

Bài 4 (trang 67 sgk Tin học lớp 8): Hãy tìm hiểu mỗi đoạn chương trình Pascal 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; S:= S+n end;

b) S:= 0; n:= 0;

while S >=10 do

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

Trả lời:

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

b) Chương trình thực hiện vô hạn vòng lặp do giá trị của S luôn luôn nhỏ hơn 10.

Nhận xét: Cần chú ý về lỗi vòng lặp vô hạn. Ở phần b do thiếu đoạn begin end để đóng mở nên sau lệnh lặp chỉ thực hiện lệnh tăng n lên 1, còn lệnh tăng S lên 1 không thực hiện được. Do đó S luôn bằng 0 như ban đầu. Lỗi lặp vô hạn xuất hiện.

Tìm hiểu mở rộng (trang 67 sgk Tin học lớp 8): Câu lệnh lặp Repeat… until

Một câu lệnh lăp khác cũng thường hay được sử dụng trong Pascal là câu lệnh repeat… until có cú pháp như sau:

repeat

<câu lệnh 1>;

<câu lệnh 2>;…;

<câu lệnh k>;until <điều kiện>;

Khi gặp câu lệnh này chương trình sẽ thực hiện các câu lệnh nằm giữa hai từ khóa repeat và until, sau đó kiểm tra <điều kiện kiện>, nếu <điều kiện> sai thì tiếp tục thực hiện vòng lặp. Quá trình đó được lăp đi lặp lại cho tới khi nào <điều kiện> đúng thì kết thúc.

Đoạn chương trình sau cho cùng kết quả như ví dụ 4 ở trên:

T:= 0;

i:= 1;

repeat

T:= T+1/i;

i:= i+1;until i>100;

writeln(T);

1. Em hãy viết chương trình Pascal với câu lệnh repeat…until thể hiện thuật tính tính số n trong ví dụ 1.

2. Hãy tìm hiểu và rút ra những điểm giống và khác nhau giữa các câu lệnh lặp While… do và Repeat … until.

Trả lời:

1. Chương trình pascal:

Đánh giá giải bài tập tin học 8

2. Giống và khác:

Câu lệnh repeat…until: Chương trình sẽ thực hiện các câu lệnh nằm giữa hai từ khóa repeat và until, sau đó kiểm tra điều kiện, nếu điều kiện sai thì tiếp tục thực hiện vòng lặp. Nếu đúng thì kết thúc.

Câu lệnh lặp while … do: Kiểm tra điều kiện. Nếu điều kiện sai câu lệnh sẽ bị bỏ qua và thực hiện lệnh kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại kiểm tra điều kiện.

Giống: Đều là lệnh lặp với số lần chưa biết trước.

Khác: Repeat… until sẽ thực hiện lệnh rồi mới kiểm tra còn while… do kiểm tra rồi mới thực hiện lệnh.

Tham khảo thêm

  • Giải bài tập SGK Tin học 8 bài 2
  • Giải bài tập SGK Tin học 8 bài 4
  • Giải bài tập SGK Tin học 8 bài 3
  • Giải Tin học 8 bài 1: Máy tính và chương trình máy tính