Dễ hiểu giải Tin học 8 Chân trời bài 15 Gỡ lỗi chương trình
Giải dễ hiểu bài 15 Gỡ lỗi chương trình. Trình bày rất dễ hiểu, nên tiếp thu Tin học 8 Chân trời dễ dàng. Học sinh nắm được kiến thức và biết suy rộng ra các bài tương tự. Thêm 1 dạng giải mới để mở rộng tư duy. Danh mục các bài giải trình bày phía dưới
Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây
BÀI 15. GỠ LỖI CHƯƠNG TRÌNH
1. PHÁT HIỆN VÀ PHÂN LOẠI LỖI
Câu hỏi. Tìm hiểu và đề xuất bộ dữ liệu thử để phát hiện lỗi chương trình ở Hình 4. Theo em lỗi chương trình ở Hình 4 thuộc loại nào.
Giải nhanh:
- Bộ dữ liệu thử: a = 0, b bất kì.
- Lỗi ở chương trình 4 thuộc loại lỗi logic.
2. GỠ LỖI
Câu hỏi 1. Hình 6 là kết quả kiểm thử chương trình ở Hình 4. Em hãy quan sát Hình 6 và cho biết:
- Lỗi được phát hiện khi thực hiện chương trình với những bộ dữ liệu nào?
- Câu lệnh nào trực tiếp tạo ra lỗi? Câu lệnh nào liên quan đến lỗi?
- Nguyên nhân gây ra lỗi này là gì?
Giải nhanh:
a) Bộ dữ liệu Hình 6b: a = 0, b = 2 và Hình 6c: a = 0, b = 0.
b) Câu lệnh trực tiếp tạo ra lỗi là:
Câu lệnh liên quan đến lỗi là:
c) Nguyên nhân: lỗi logic vì phép chia cho 0 là không xác định.
Câu hỏi 2. Em hãy lắp các câu lệnh, khối lệnh ở cột bên phải vào vị trí thích hợp trong cấu trúc điều khiển ở cột bên trái để tạo thành chương trình tính đúng nghiệm của phương trình ax + b = 0. Bảng 1.
Giải nhanh:
- Cách 1: 1 - b, 2 - a, 3 - d, 4 - e, 5 - c.
- Cách 2: 1 - d, 2 - e, 3 - b, 4 - a, 5 - c.
LUYỆN TẬP
Câu hỏi 1. Thế nào là lỗi cú pháp, lỗi logic?
Giải nhanh:
- Lỗi cú pháp là lỗi do viết chương trình, câu lệnh sai cú pháp dẫn đến chương trình không hoạt động.
- Lỗi logic là lỗi xảy ra trong trường hợp chương trình hoạt động nhưng đưa ra kết quả sai.
Câu hỏi 2. Hãy sắp xếp các việc dưới đây theo trình tự để phát hiện, gỡ lỗi chương trình.
- Xây dựng bộ dữ liệu thử với các tình huống có thể xảy ra khi đưa chương trình vào sử dụng.
- Tìm câu lệnh, cấu trúc điều khiển gây ra lỗi.
- Thực hiện chương trình với các bộ dữ liệu thử.
- Sửa lỗi cho chương trình.
- Xác định nguyên nhân gây lỗi.
Giải nhanh:
A → C → B → E → D.
Câu hỏi 3. Những phát biểu nào sau đây là sai khi nói về việc xác định vị trí, nguyên nhân gây lỗi?
A. Cần tập trung xem xét câu lệnh, cấu trúc điều khiển trực tiếp tạo ra lỗi hay liên quan đến lỗi.
B. Xem xét kĩ lưỡng, cụ thể hoạt động của câu lệnh, cấu trúc điều khiển tạo ra lỗi hay liên quan đến lỗi trong tình huống phát sinh lỗi.
C. Người lập trình không cần sử dụng tư duy logic của bản thân để phân tích, suy luận nguyên nhân gây ra lỗi.
D. Khi cần thiết, ta có thể bổ sung một số câu lệnh để theo dõi sự thay đổi giá trị của các biến, kết quả thực hiện câu lệnh, cấu trúc điều khiển nào đó, từ đó giúp xác định vị trí, nguyên nhân gây ra lỗi dễ dàng, nhanh chóng hơn.
Giải nhanh:
Đáp án C.
Câu hỏi 4. Hình 7 là chương trình một bạn đã tạo với mục đích tính và thông báo tổng của 10 số được nhập từ bàn phím. Theo em, khi thực hiện, chương trình này có đưa ra kết quả như bạn mong muốn hay không? Tại sao?
Giải nhanh:
Kết quả như mong muốn vì khi khởi tạo giá trị ban đầu cho biến S là 0 trong điều kiện lặp khiến cho giá trị của S trở lại thành 0 sau mỗi lần lặp.
THỰC HÀNH
Câu hỏi 1. Tạo chương trình ở Hình 2, thực hiện kiểm thử, gỡ lỗi để chương trình đưa ra kết quả đúng với mọi cặp số a, b.
Giải nhanh:
- Chương trình đưa ra kết quả sai khi giá trị a, b bằng nhau.
- Gỡ lỗi:
Câu hỏi 2. Thực hành theo các yêu cầu sau:
- Tạo chương trình ở Hình 4.
- Chạy thử chương trình với các bộ dữ liệu thử em đã đề xuất ở hoạt động Làm của Mục 1 để phát hiện lỗi chương trình.
- Thực hiện gỡ lỗi để chương trình tính đúng nghiệm của phương trình ax + b = 0 với mọi cặp số a, b.
Giải nhanh:
a) HS tạo chương trình như sau:
b) Chạy thử với bộ dữ liệu thử: a = 0, b = 2 và a = 0, b = 0.
c) Gỡ lỗi:
Câu hỏi 3. Tạo chương trình ở Hình 7. Thực hiện kiểm thử, gỡ lỗi để chương trình đưa ra đúng tổng của 10 số được nhập từ bàn phím.
Giải nhanh:
- HS tự thực hiện tạo chương trình như sau và tiến hành kiểm thử.
- Gỡ lỗi: Chuyển lệnh gán giá trị ban đầu S = 0 ra khỏi điều kiện lặp.
VẬN DỤNG
Em hãy thực hành kiểm thử, gỡ lỗi cho các chương trình em đã tạo ở các Bài 12, 13, 14. Trao đổi với bạn về những lỗi đã được em phát hiện, sửa chữa.
Giải nhanh:
HS tự tiến hành thực hiện.
Nếu chưa hiểu - hãy xem: => Lời giải chi tiết ở đây
Bình luận