Rõ nét về file powerpoint trình chiếu. => Xem thêm
Ngày soạn:…/…/…
Ngày dạy:…/…/…
BÀI 15: GỠ LỖI CHƯƠNG TRÌNH (2 Tiết)
Sau bài học này, HS sẽ chạy thử, tìm lỗi và sửa được lỗi cho chương trình.
Năng lực chung:
Năng lực riêng:
III. PHÂN BỐ THỜI LƯỢNG
Bước 1: GV chuyển giao nhiệm vụ học tập
- GV yêu cầu HS quan sát hình 1, 2, 3 và trả lời câu hỏi:
Để 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)?
Bước 2: HS thực hiện nhiệm vụ học tập
- HS đọc yêu cầu, thảo luận nhóm sắp xếp các mảnh ghép theo thứ tự hợp lí nhất.
- GV hướng dẫn, hỗ trợ HS (nếu cần thiết).
Bước 3: Báo cáo kết quả hoạt động và thảo luận
- Đại diện 1-2 nhóm báo cáo kết quả nhiệm vụ
- GV mời HS khác lắng nghe, nhận xét, bổ sung.
HS nêu được hoặc phán đoán được:
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.
Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập
- GV đánh giá, nhận xét, chuẩn kiến thức.
- GV dẫn dắt HS vào bài học: Trong bài học này chúng ta sẽ cùng tìm hiểu về lỗi chương trình là gì? Làm thế nào để gỡ lỗi chương trình – Bài 15: Gỡ lỗi chương trình.
Hoạt động 1: Phát hiện và phân loại lỗi
- HS nêu và ghi được vào vở kiểm thử chương trình, mục đích của kiểm thử, phân loại lỗi chương trình, câu trả lời Hoạt động Làm.
HOẠT ĐỘNG CỦA GV - HS | DỰ KIẾN SẢN PHẨM |
Bước 1: GV chuyển giao nhiệm vụ học tập - GV chia lớp thành 6 nhóm HS, mỗi nhóm tìm hiểu Phát hiện và phân loại lỗi theo kĩ thuật khăn trải bàn theo nội dung các câu hỏi để các nhóm hiểu sâu nội dung mình tìm hiểu: - Chương trình ở Hình 4 trong SGK thực hiện công việc gì? + Đối với phương trình ax - b = 0, điều kiện của hệ số a là gì? Nêu các trường hợp về nghiệm số của phương trình? Bộ dữ liệu thử tương ứng với các tình huống này là gì? + Chương trình ở Hình 4 trong SGK có lỗi cú pháp không (có chạy được không)? Chương trình sẽ cho kết quả sai với bộ dữ liệu thử nào? - GV cho HS thảo luận nhóm, hoàn thành bài tập trong mục Hoạt động Làm SGK tr.96 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. - GV tổ chức để HS tự tóm tắt, chốt kiến thức như nội dung tại mục Ghi nhớ. Bước 2: HS thực hiện nhiệm vụ học tập - HS đọc thông tin SGK tr.95, 96, thảo luận nhóm và trả lời câu hỏi. - HS hoàn thành bài tập trong mục Hoạt động Làm SGK tr.96. - GV theo dõi, hỗ trợ HS nếu cần thiết. Bước 3: Báo cáo kết quả hoạt động và thảo luận - GV mời đại diện HS trình bày về kiểm thử chương trình, mục đích của kiểm thử, phân loại lỗi chương trình - GV mời đại diện HS khác nhận xét, bổ sung. Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập - GV nhận xét, chuẩn kiến thức. - GV chuyển sang nội dung mới. | 1. Phát hiện và phân loại lỗi - Kiểm thử là công đoạn quan trọng trong quy trình sản xuất phần mềm, giúp kiểm tra tính hoạt động của chương trình. - Phát hiện lỗi trong chương trình là một trong những mục đích chính của việc kiểm thử. - Lỗi chương trình có thể được phân thành hai loại: + Lỗi cú pháp: là lỗi 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. VD: Chương trình ở Hình 2 đưa ra kết quả sai khi nhập giá trị a, b bằng nhau. Thực hiện chương trình với các bộ dữ liệu cụ thể là cách thường được sử dụng để phát hiện lỗi logic trong chương trình. - Các bộ dữ liệu thử cần được xây dựng để kiểm thử các tình huống có thể xảy ra khi đưa chương trình vào sử dụng. - Bộ dữ liệu thử dùng để phát hiện lỗi trong chương trình; bộ dữ liệu thử cần được xây dựng để kiểm tra các tình huống xảy ra khi đưa chương trình vào sử dụng. - Chương trình ở Hình 4 trong SGK thực hiện giải phương trình bậc nhất ax - b = 0 với hệ số a, b được nhập từ bàn phím; hệ số a phải khác không; có ba trường hợp: phương trình vô nghiệm khi a = 0, b ≠ 0; phương trình có vô số nghiệm khi a = 0, b = 0; phương trình có một nghiệm khi a ≠ 0. - Các bộ dữ liệu thử tương ứng với các trường hợp là: a = 0, b ≠ 0; a = 0, b =0; a ≠ 0, b là số bất kì. Hoạt động Làm: - Chương trình ở Hình 4 trong SGK không có lỗi cú pháp nên có thể chạy được. Khi thực hiện chương trình với các bộ dữ liệu có a = 0 sẽ dẫn đến chương trình thông bảo không đúng nghiệm số của phương trình. Đó là lỗi logic. |
Hoạt động 2: Tìm hiểu về gỡ lỗi
- HS nêu và ghi được vào vở cách tìm lỗi, sửa lỗi, gỡ lỗi ở các chương trình đơn giản, câu trả lời Hoạt động Làm tr 97.
HOẠT ĐỘNG CỦA GV – HS | DỰ KIẾN SẢN PHẨM |
Bước 1: GV chuyển giao nhiệm vụ học tập - GV yêu cầu HS đọc thông tin mục 2 SGK, thảo luận nhóm và trả lời các câu hỏi: + Việc xác định câu lệnh, cấu trúc điều khiến sai cú pháp thường được thực hiện bằng cách nào? + Việc xác định vị trí, nguyên nhân gây lỗi logic được thực hiện thế nào? Nêu ví dụ. - GV có thể giới thiệu, lấy ví dụ minh họa: là người tạo ra chương trình (người lập trình), ta có thể bổ sung câu lệnh để theo dõi kết quả trung gian để giúp xác định vị trí, nguyên nhân gây lỗi dễ dàng, nhanh chóng hơn. - Việc sửa lỗi được thực hiện trên cơ sở vị trí, nguyên nhân gây lỗi đã được xác định. GV yêu cầu HS đọc SGK, quan sát, nêu những chỉnh sửa trong chương trình ở Hình 2 trong SGK so với Hình 1 trong SGK và trong đoạn chương trình ở Hình 5 trong SGK so với đoạn chương trình tương ứng ở Hình 2 trong SGK - GV tiếp tục yêu cầu HS làm việc cặp đôi, hoàn thành các bài tập trong mục Hoạt động Làm SGK tr.97: 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: 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ì? (GV có thể đặt câu hỏi gợi ý: + Với bộ dữ liệu nào chương trình đưa ra thông báo sai về nghiệm số? + Câu lệnh nào đưa ra thông báo sai về nghiệm số? Nghiệm số x được tính ở câu lệnh nào? + Với giá trị a như thế nào thì chương trình sai nhận số x?) 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. Bước 2: HS thực hiện nhiệm vụ học tập - HS đọc thông tin SGK mục 2 - SGK tr. 81,82 và trả lời câu hỏi. - HS thảo luận nhóm đôi và hoàn thành bài tập trong mục Hoạt động Làm. - GV hướng dẫn, theo dõi, hỗ trợ HS nếu cần thiết. Bước 3: Báo cáo kết quả hoạt động và thảo luận - GV mời đại diện HS trình bày về lỗi và cách khắc phục, sửa lỗi chương trình + Bài tập trong Hoạt động làm - GV mời đại diện HS khác nhận xét, bổ sung. Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập - GV nhận xét và kết luận. - GV chuyển sang hoạt động mới. - GV chốt lại kiến thức trọng tâm. | 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). a) Tìm lỗi - Các công cụ hỗ trợ lập trình giúp xác định các câu lệnh, cấu trúc điều khiển sai cú pháp một cách dễ dàng. - Tuy nhiên, việc phát hiện lỗi logic thường không dễ dàng bằng cách này. - Dưới đây là một số lưu ý trong việc xác định vị trí, nguyên nhân gây lỗi logic: + 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 điều khiển có liên quan logic đến lỗi. + 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. + Bằng tư duy logic của bản thân, ta cần phân tích, suy luận để xác định nguyên nhân gây lỗi. Ví dụ: nguyên nhân lỗi trong chương trình ở Hình 2 là chưa tính đến trường hợp a=b. - Bổ sung 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 đó giúp xác định vị trí, nguyên nhân gây ra lỗi dễ dàng và nhanh chóng hơn khi cần thiết. b) Sửa lỗi - Khi đã xác định được câ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. - Để sửa lỗi cú pháp chương trình ở Hình 1, ta cần kết hợp câu lệnh ask and wait với set to để nhập hai số a, b từ bàn phím (Hình 2). - Để sửa lỗi logic chương trình ở Hình 2, ta cần chỉnh sửa để chương trình xét cả 3 trường hợp có thể xảy ra khi so sánh hai số a, b (Hình 5). Hoạt động Làm: 1. a) Lỗi Phát sinh khi sử dụng bộ dữ liệu (0,2); (0,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. 2. 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. |
Nhiệm vụ 1: Khoanh tròn vào đáp án đặt trước câu trả lời đúng
Bước 1: GV chuyển giao nhiệm vụ học tập
- GV nêu yêu cầu: Khoanh tròn vào đáp án đặt trước câu trả lời đúng
Câu 1. T Đâu là lỗi cú pháp?
Cả 3 đáp án trên.
Câu 2. Nếu chương trình chạy bị lỗi với thông báo lỗi là ZeroDivisionError thì đó là lỗi gì và em cần sửa lỗi như thế nào? Chọn phương án đúng nhất.
Câu 3. Muốn truy vết để tìm lỗi ta nên:
Câu 4. Bộ dữ liệu kiểm thử (test) có những tính chất gì?
Câu 5. Công cụ Debug dùng để:
Bước 2: HS thực hiện nhiệm vụ học tập
- HS vận dụng kiến thức đã học và trả lời câu hỏi.
- GV hướng dẫn, theo dõi, hỗ trợ HS nếu cần thiết.
Bước 3: Báo cáo kết quả hoạt động và thảo luận
- GV mời đại diện HS trả lời:
Câu 1. Đáp án C.
Câu 2. Đáp án D.
Câu 3. Đáp án A.
Câu 4. Đáp án C.
Câu 5. Đáp án D.
- GV mời đại diện HS khác nhận xét, bổ sung.
Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập
- GV đánh giá, nhận xét, chuẩn kiến thức.
Nhiệm vụ 2: Trả lời câu hỏi phần Luyện tập SGK tr.98
Bước 1: GV chuyển giao nhiệm vụ học tập
- GV nêu yêu cầu:
Bài tập 1. Thế nào là lỗi cú pháp, lỗi logic?
Bài tập 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.
Bài tập 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?
Bài tập 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?
Bước 2: HS thực hiện nhiệm vụ học tập
- HS làm việc cá nhân, dựa vào kiến thức đã học để trả lời câu hỏi.
- GV hướng dẫn, theo dõi, hỗ trợ HS nếu cần thiết.
Bước 3: Báo cáo kết quả hoạt động và thảo luận
- GV mời đại diện HS trình bày trước lớp:
Bài tập 1.
----------------Còn tiếp---------------
Nâng cấp lên tài khoản VIP để tải tài liệu và dùng thêm được nhiều tiện ích khác