logo

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Hướng dẫn Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình ngắn gọn, hay nhất theo chương trình Sách mới.

Bài 15: Gỡ lỗi chương trình

Lý thuyết Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Sơ đồ tư duy Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Khởi động trang 95 Tin học 8: Để so sánh hai số a, b được nhập từ bàn phím, một bạn đã tạo chương trình ở Hình 1. Khi nháy chuột vào nút Go không hoạt động. Bạn đã phát hiện được lỗi và chỉnh sửa thành chương trình ở Hình 2. Khi thực hiện chương trình ở Hình 2 và nhập giá trị a, b đều là 5, chương trình đưa ra kết quả sai (xem Hình 3).

Hãy thảo luận với bạn và cho biết:

- Tại sao chương trình ở Hình 1 không hoạt động?

- Tại sao chương trình ở Hình 2 đưa ra kết quả sai khi nhập cặp số a, b là (5;5)?

Để so sánh hai số a b được nhập từ bàn phím một bạn đã tạo chương trình

Trả lời:

Chương trình 1 có lỗi cú pháp, câu lệnh 2, 3 không khớp nối với câu lệnh 1, 4.

Chương trình 2 có lỗi logic, a = b thuộc trường hợp a > b sai nên chương trình đưa ra thông báo sai khi nhập hai số a, b bằng nhau.

Khám phá trang 96 Tin học 8: 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.

Trả lời:

Bộ dữ liệu thử: a = 0, b bất kì.

- Theo em lỗi ở chương trình 4 thuộc loại lỗi logic.

Khám phá 1 trang 97 Tin học 8: 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:

a) 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?

b) 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?

c) Nguyên nhân gây ra lỗi này là gì?

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Trả lời:

a) Lỗi được phát hiện khi thực hiện chương trình với 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à: 

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Câu lệnh liên quan đến lỗi là:  

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

c) Nguyên nhân gây ra lỗi này là: lỗi logic vì phép chia cho 0 là không xác định.

Khám phá 2 trang 97 Tin học 8: 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.

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Trả lời:

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 

Luyện tập 1 trang 98 Tin học 8: Thế nào là lỗi cú pháp, lỗi logic?

Trả lời:

- Lỗi cú pháp (syntax error) và lỗi logic (logic error) là hai loại lỗi phổ biến mà các lập trình viên thường gặp phải khi viết và phát triển phần mềm.

+ Lỗi cú pháp (syntax error): Lỗi cú pháp là những lỗi xảy ra khi cấu trúc của mã nguồn không tuân theo quy tắc ngữ pháp của ngôn ngữ lập trình. Điều này có thể bao gồm các lỗi như thiếu dấu ngoặc đơn, dấu ngoặc kép, dấu chấm phẩy hoặc dấu ngoặc đơn, hoặc không đúng vị trí của từ khóa và toán tử. Lỗi cú pháp thường được trình biên dịch (compiler) hoặc trình thông dịch (interpreter) phát hiện và báo cáo khi bạn biên dịch hoặc chạy mã nguồn.

+ Lỗi logic (logic error): Lỗi logic là những lỗi xảy ra khi mã nguồn không hoạt động đúng như mong đợi, mặc dù không có lỗi cú pháp. Lỗi logic thường không được trình biên dịch hoặc trình thông dịch phát hiện và báo cáo. Thay vào đó, lập trình viên cần phải tự kiểm tra và sửa chữa lỗi logic dựa trên kết quả không chính xác hoặc hành vi không mong muốn của chương trình.

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Luyện tập 2 trang 98 Tin học 8: 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.

A. 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.

B. Tìm câu lệnh, cấu trúc điều khiển gây ra lỗi.

C. Thực hiện chương trình với các bộ dữ liệu thử.

D. Sửa lỗi cho chương trình.

E. Xác định nguyên nhân gây lỗi.

Trả lời:

Để phát hiện, gỡ lỗi chương trình ta cần thực hiện theo trình tự sau: A → C → B → E → D.

Luyện tập 3 trang 98 Tin học 8: 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.

Trả lời:

Phát biểu sai khi nói về việc xác định vị trí và nguyên nhân gây lỗi là ý 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.

Trong quá trình tìm và khắc phục lỗi, người lập trình cần sử dụng tư duy logic để phân tích và suy luận về nguyên nhân gây ra lỗi, đồng thời xác định vị trí của lỗi trong mã nguồn. Việc này đóng vai trò quan trọng trong việc giúp lập trình viên sửa chữa lỗi một cách hiệu quả và nhanh chóng.

Luyện tập 4 trang 98 Tin học 8: 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?

Trả lời:

Theo ý kiến của em thì chương trình này không mang lại kết quả như kỳ vọng do việc khởi tạo giá trị ban đầu cho biến S bằng 0 trong vòng lặp. Điều này khiến giá trị của S bị đặt lại là 0 sau mỗi lần lặp dẫn đến kết quả không chính xác.

Thực hành 

Thực hành 1 trang 98 Tin học 8: 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.

Trả lời:

Chương trình đưa ra kết quả sai khi giá trị a, b bằng nhau.

Gỡ lỗi: Thay đổi đoạn chương trình so sánh hai số a, b với 3 trường hợp như sau

Thực hành 2 trang 98 Tin học 8: Thực hành theo các yêu cầu sau

a) Tạo chương trình ở Hình 4.

b) 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.

c) 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.

Trả lời:

a) HS tạo chương trình như sau:

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

b) Chạy thử với bộ dữ liệu thử: a = 0, b = 2 và a = 0, b = 0.

c) Gỡ lỗi:

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Thực hành 3 trang 98 Tin học 8: 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.

Trả lời:

- HS tự thực hiện tạo chương trình như sau và tiến hành kiểm thử.

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

- Gỡ lỗi: Chuyển lệnh gán giá trị ban đầu S = 0 ra khỏi điều kiện lặp.

Soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình

Vận dụng 

Vận dụng trang 98 Tin học 8: 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.

Trả lời:

HS tự thực hành

>>> Xem toàn bộ: Soạn Tin học 8 Chân trời sáng tạo

-------------------------------------

Trên đây Toploigiai đã cùng các bạn soạn Tin học 8 Chân trời sáng tạo Bài 15: Gỡ lỗi chương trình trang 95, 96,…98 trong bộ SGK Chân trời sáng tạo theo chương trình sách mới. Chúc các bạn học tốt!

icon-date
Xuất bản : 21/03/2023 - Cập nhật : 02/04/2024