Chào mừng quý vị đến với website của ...
Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tài liệu của Thư viện về máy tính của mình.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
Bài 15. Gỡ lỗi chương trình
(Tài liệu chưa được thẩm định)
Nguồn: Bạch Kim
Người gửi: Ngô Văn Chinh (trang riêng)
Ngày gửi: 14h:00' 27-08-2024
Dung lượng: 697.8 KB
Số lượt tải: 0
Nguồn: Bạch Kim
Người gửi: Ngô Văn Chinh (trang riêng)
Ngày gửi: 14h:00' 27-08-2024
Dung lượng: 697.8 KB
Số lượt tải: 0
Số lượt thích:
0 người
BÀI 15. GỠ LỖI CHƯƠNG TRÌNH
Trang bìa
Trang bìa
Ảnh
BÀI 15. GỠ LỖI CHƯƠNG TRÌNH
Ảnh
A. Khởi động
- Giới thiệu bài
Ảnh
Giới thiệu bài
- Khởi động
Để 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 chương trình 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)?
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.
Ảnh
B. Khám phá kiến thức mới
1. Phát hiện và phân loại lỗi
Chương trình lỗi.
Ảnh
- Lỗi cú pháp
Lỗi cú pháp: là lỗi viết chương trình, câu lệnh sau cú pháp dẫn đến chương trình không hoạt động.
Ảnh
Ví dụ: Chương trình trong Hình 1 không hoạt động là do: không phải là câu lệnh trong Scratch, không lắp ghép được với câu lệnh (do không có khớp nối).
Ảnh
Ảnh
- Lỗi logic
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.
Ví dụ: chương trình ở Hình 2 đưa ra kết quả sai khi nhập giá trị a, b bằng nhau.
Ảnh
- Câu hỏ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.
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.
Ảnh
2. Gỡ lỗi
Sau khi phát hiện lỗi, ta cần tìm câu lệnh, cấu trúc điều khiển gây ra lỗi, nguyên nhân gây ra lỗi và sửa lỗi chương trình (còn được gọi là gỡ lỗi).
Ảnh
Tìm lỗi
Có hai cách thường được sử dụng để phát hiện lỗi lôgic. + Cách thứ nhất: Cần tập trung xem xét câu lệnh trực tiếp tạo ra lỗi và những câu lệnh, cấu trúc bảng điểu khiển có liên quan logic đến lỗi. + Cách thứ hai: 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 này trong tình huống phát sinh lỗi.
Sửa lỗi
Sửa lỗi: Khi đã xác định được lâu lệnh, cấu trúc điều khiển, nguyên nhân gây ra lỗi ta có thể thực hiện chỉnh sửa lỗi
Ảnh
- Câu hỏi 1
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:
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à: Câu lệnh liên quan đến lỗi là: 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.
Ảnh
Ảnh
Ảnh
- Câu hỏi 2
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.
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.
Ảnh
Luyện tập
- Câu 1
Câu hỏi 1: Thế nào là lỗi cú pháp, lỗi logic?
Trả lời: + 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. Hầu hết các ngôn ngữ lập trình đều có công cụ hỗ trợ hạn chế, phát hiện lỗi cú pháp. + 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. Sử dụng bộ dữ liệu thử là cách thường được sử dụng để phát hiện lỗi logic trong chương trình.
- Câu 2
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. 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: A → C → B → E → D.
- Câu 3
Bài tập trắc nghiệm
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.
- Câu 4
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?
Trả lời: Theo em khi thực hiện chương trình này không ra 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. Điều này dẫn đến kết quả sai.
Ảnh
Thực hành
Thực hành 1
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.
Ảnh
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
Câu hỏi 2: 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: b) Chạy thử với bộ dữ liệu thử: a = 0, b = 2 và a = 0, b = 0. c) Gỡ lỗi:
Ảnh
Thực hành 3
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.
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ử. - Gỡ lỗi: Chuyển lệnh gán giá trị ban đầu S = 0 ra khỏi điều kiện lặp.
Ảnh
Ảnh
Vận dụng
- 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.
Dặn dò
- Dặn dò
Ảnh
Dặn dò:
Ôn lại bài vừa học. Làm bài tập về nhà trong SBT. Chuẩn bị bài sau: "Bài 16. Tin học và nghề nghiệp".
- Cảm ơn
Ảnh
Trang bìa
Trang bìa
Ảnh
BÀI 15. GỠ LỖI CHƯƠNG TRÌNH
Ảnh
A. Khởi động
- Giới thiệu bài
Ảnh
Giới thiệu bài
- Khởi động
Để 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 chương trình 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)?
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.
Ảnh
B. Khám phá kiến thức mới
1. Phát hiện và phân loại lỗi
Chương trình lỗi.
Ảnh
- Lỗi cú pháp
Lỗi cú pháp: là lỗi viết chương trình, câu lệnh sau cú pháp dẫn đến chương trình không hoạt động.
Ảnh
Ví dụ: Chương trình trong Hình 1 không hoạt động là do: không phải là câu lệnh trong Scratch, không lắp ghép được với câu lệnh (do không có khớp nối).
Ảnh
Ảnh
- Lỗi logic
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.
Ví dụ: chương trình ở Hình 2 đưa ra kết quả sai khi nhập giá trị a, b bằng nhau.
Ảnh
- Câu hỏ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.
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.
Ảnh
2. Gỡ lỗi
Sau khi phát hiện lỗi, ta cần tìm câu lệnh, cấu trúc điều khiển gây ra lỗi, nguyên nhân gây ra lỗi và sửa lỗi chương trình (còn được gọi là gỡ lỗi).
Ảnh
Tìm lỗi
Có hai cách thường được sử dụng để phát hiện lỗi lôgic. + Cách thứ nhất: Cần tập trung xem xét câu lệnh trực tiếp tạo ra lỗi và những câu lệnh, cấu trúc bảng điểu khiển có liên quan logic đến lỗi. + Cách thứ hai: 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 này trong tình huống phát sinh lỗi.
Sửa lỗi
Sửa lỗi: Khi đã xác định được lâu lệnh, cấu trúc điều khiển, nguyên nhân gây ra lỗi ta có thể thực hiện chỉnh sửa lỗi
Ảnh
- Câu hỏi 1
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:
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à: Câu lệnh liên quan đến lỗi là: 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.
Ảnh
Ảnh
Ảnh
- Câu hỏi 2
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.
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.
Ảnh
Luyện tập
- Câu 1
Câu hỏi 1: Thế nào là lỗi cú pháp, lỗi logic?
Trả lời: + 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. Hầu hết các ngôn ngữ lập trình đều có công cụ hỗ trợ hạn chế, phát hiện lỗi cú pháp. + 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. Sử dụng bộ dữ liệu thử là cách thường được sử dụng để phát hiện lỗi logic trong chương trình.
- Câu 2
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. 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: A → C → B → E → D.
- Câu 3
Bài tập trắc nghiệm
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.
- Câu 4
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?
Trả lời: Theo em khi thực hiện chương trình này không ra 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. Điều này dẫn đến kết quả sai.
Ảnh
Thực hành
Thực hành 1
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.
Ảnh
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
Câu hỏi 2: 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: b) Chạy thử với bộ dữ liệu thử: a = 0, b = 2 và a = 0, b = 0. c) Gỡ lỗi:
Ảnh
Thực hành 3
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.
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ử. - Gỡ lỗi: Chuyển lệnh gán giá trị ban đầu S = 0 ra khỏi điều kiện lặp.
Ảnh
Ảnh
Vận dụng
- 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.
Dặn dò
- Dặn dò
Ảnh
Dặn dò:
Ôn lại bài vừa học. Làm bài tập về nhà trong SBT. Chuẩn bị bài sau: "Bài 16. Tin học và nghề nghiệp".
- Cảm ơn
Ảnh
 
↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng ZIP và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT ↓
Các ý kiến mới nhất