Lớp 8.

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Mai Huyen Linh
Ngày gửi: 09h:29' 25-05-2025
Dung lượng: 5.2 MB
Số lượt tải: 29
Nguồn:
Người gửi: Mai Huyen Linh
Ngày gửi: 09h:29' 25-05-2025
Dung lượng: 5.2 MB
Số lượt tải: 29
Số lượt thích:
1 người
(Nguyễn Trầm Kha)
NHIỆT LIỆT CHÀO MỪNG
CÁC EM ĐẾN VỚI BÀI HỌC MỚI
KHỞI ĐỘNG
Đọc yêu cầu phần Khởi động SGK tr. 95 và trả lời câu hỏi:
1. Tại sao chương trình ở Hình 1 không hoạt động?
2. 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)?
KHỞI ĐỘNG
• 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ÀI 15: GỠ LỖI
CHƯƠNG TRÌNH
NỘI DUNG BÀI HỌC
01
02
Phát hiện và phân loại lỗi
Gỡ lỗi
01
Phát hiện và phân loại lỗi
Hoạt động 1: Đọc (và quan sát)
Hoạt động nhóm và tìm hiểu về Phát hiện và phân loại lỗi theo kĩ
thuật khăn trải bàn dựa trên các câu hỏi sau:
Chương trình ở Hình 4 trong SGK thực hiện
Chương
công việc gì?
Hình 4 trong SGK có
trình
ở
lỗi cú pháp không
Đối với phương trình ax - b = 0, điều kiện của
(có
chạy
được
hệ số a là gì? Nêu các trường hợp về nghiệm
không)?
số của phương trình? Bộ dữ liệu thử tương
trình sẽ cho kết quả
ứng với các tình huống này là gì?
sai với bộ dữ liệu
Chương
Hoạt động 1: Đọc (và quan sát)
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ể phân thành hai loại: Lỗi cú pháp và lỗi logic.
Hoạt động 1: Đọc (và quan sát)
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.
•
Hầu hết các ngôn ngữ lập trình cung cấp công cụ phát hiện lỗi cú pháp.
•
Ngôn ngữ lập trình trực quan như Scratch giúp hạn chế những tình
huống gây ra lỗi cú pháp.
Hoạt động 1: Đọc (và quan sát)
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.
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.
Hoạt động 1: Đọc (và quan sát)
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, 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.
Hoạt động 1: Đọc (và quan sát)
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 0; 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 2: Làm
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?
Hoạt động 2: 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 3: Ghi nhớ SGK tr. 96
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.
02
Gỡ lỗi
Hoạt động 1: Đọc (và quan sát)
Đọ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ụ.
Hoạt động 1: Đọc (và quan sát)
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).
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.
Hoạt động 1: Đọc (và quan sát)
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.
Hoạt động 1: Đọc (và quan sát)
Chưa tính đến
a) Tìm lỗi
trường hợp
a=b
Lưu ý khi xác định vị trí, nguyên nhân gây lỗi:
•
Cần tập trung xem xét câu lệnh trực tiếp tạo ra lỗi
hoặc 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.
•
Phân tích, suy luận để xác định nguyên nhân gây lỗi.
Hoạt động 1: Đọc (và quan sát)
a) Tìm lỗi
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.
Hoạt động 1: Đọc (và quan sát)
Đọ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
và trong đoạn chương trình ở
Hình 5 so với đoạn chương trình
tương ứng ở Hình 2.
Hoạt động 1: Đọc (và quan sát)
Để 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).
Hoạt động 1: Đọc (và quan sát)
Để 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 2: Làm
Làm việc theo cặp đôi, hoàn thành các bài tập trong mục
Hoạt động Làm SGK tr.97:
Câu 1. Hình 6 là kết quả kiểm thử chương
trình ở Hình 4. 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ì?
Hoạt động 2: Làm
Làm việc theo cặp đôi, hoàn thành các bài tập trong mục
Hoạt động Làm SGK tr.97:
Câu 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.
Hoạt động 2: Làm
Câu 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: lỗi logic vì phép chia cho 0 là không xác định.
Hoạt động 2: Làm
Câu 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.
Hoạt động 3: Ghi nhớ SGK tr. 96
Khi phát hiện lỗi, cần xác định 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 cho
chương trình.
LUYỆN TẬP
Nhiệm vụ 1
Trò chơi trắc nghiệm
Câu 1. Đâu là lỗi cú pháp?
A. Khi các câu lệnh trong chương trình được viết đúng cú pháp nhưng thực hiện
không đúng kịch bản.
B. Các lệnh viết bằng ngôn ngữ lập trình chỉ dẫn máy tính thực hiện các bước của
thuật toán.
C. Lệnh viết sai so với ngôn ngữ lập trình, làm cho chương trình không hoạt động.
D. Cả 3 đáp án trên.
Nhiệm vụ 1
Trò chơi trắc nghiệm
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à cần sửa lỗi như thế nào? Chọn phương án đúng nhất.
A. Đây là lỗi không thể sửa được.
B. Đây là lỗi chia cho 0, em cần xóa lệnh này khỏi chương trình.
C. Đây là lỗi chia cho 0, em cần thay thế phép toán khác để không xảy ra lỗi này
nữa.
D. Đây là lỗi chia cho 0, em cần tìm hiểu nguyên nhân vì sao lại xuất hiện 0 khi
chia, có thể bổ sung lệnh kiểm tra trước khi thực hiện phép chia.
Trò chơi trắc nghiệm
Nhiệm vụ 1
Câu 3. Muốn truy vết để tìm lỗi ta nên:
A. Sử dụng công cụ gỡ lỗi của chương trình lập trình hoặc đưa thêm các
câu lệnh xuất ra kết quả trung gian của quá trình tính toán.
B. Sử dụng thêm câu lệnh nhập.
C. Lưu lại chương trình.
D. Gõ lại chương trình.
Trò chơi trắc nghiệm
Nhiệm vụ 1
Câu 4. Bộ dữ liệu kiểm thử (test) có những tính chất gì?
A. Tính chất phát hiện lỗi của
chương trình.
B. Cần có càng nhiều càng tốt.
C. Cần được sinh ngẫu nhiên và
phủ kín các trường hợp biến
của dữ liệu đầu vào bài toán.
D. Không cần có tính chất gì.
Nhiệm vụ 1
Trò chơi trắc nghiệm
Câu 5. Công cụ Debug dùng để:
A. Chạy chương trình.
B. Lưu chương trình.
C. Mở chương trình.
D. Gỡ lỗi.
Nhiệm vụ 2
Trả lời câu hỏi phần Luyện tập SGK tr. 98
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.
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.
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?
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.
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?
Hướng dẫn trả lời:
Bài tập 1.
• 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.
Hướng dẫn trả lời:
Bài tập 2. Trình tự để phát hiện, gỡ lỗi chương trình: A → C → B → E → D.
Bài tập 3. Đáp án C.
Bài tập 4. 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.
THỰC HÀNH
Bài tập 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.
THỰC HÀNH
Bài tập 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.
THỰC HÀNH
Bài tập 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.
Gợi ý sản phẩm tham khảo
Bài tập 1.
• 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.
Chương trình gợi ý:
Gợi ý sản phẩm tham khảo
Bài tập 2. a) Chương trình:
c) 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.
Gợi ý sản phẩm tham khảo
Bài tập 3. Tự thực hiện tạo
Gỡ lỗi: Chuyển lệnh gán giá trị ban
chương trình như sau và tiến hành
đầu S = 0 ra khỏi điều kiện lặp.
kiểm thử.
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.
HƯỚNG DẪN VỀ NHÀ
01
Ôn lại kiến thức đã học.
02
Làm bài tập trong Sách bài tập Tin học 8.
03
Đọc và tìm hiểu trước Bài 16: Tin học và nghề nghiệp.
HƯỚNG DẪN VỀ NHÀ
04
Làm việc theo nhóm, sưu tầm tài liệu, tranh ảnh, thông
tin,... và hoàn thành nhiệm vụ sau:
• Tại sao bình đẳng giới là mục tiêu phấn đấu của các quốc gia trên thế
giới trong đó có Việt Nam?
• Em hãy chứng tỏ: Quan điểm sai lầm làm hạn chế cơ hội nữ giới sử
dụng máy tính, ứng dụng tin học.
• Lí do cần có sự bình đẳng giới trong sử dụng máy tính ứng dụng tin học?
• Có những hoạt động nào thúc đẩy bình đẳng giới trong lĩnh vực tin học?
Hình thức: trình bày trên powerpoint/ giấy A0/ tiểu phẩm,…
BÀI HỌC KẾT THÚC,
TẠM BIỆT VÀ HẸN GẶP LẠI!
CÁC EM ĐẾN VỚI BÀI HỌC MỚI
KHỞI ĐỘNG
Đọc yêu cầu phần Khởi động SGK tr. 95 và trả lời câu hỏi:
1. Tại sao chương trình ở Hình 1 không hoạt động?
2. 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)?
KHỞI ĐỘNG
• 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ÀI 15: GỠ LỖI
CHƯƠNG TRÌNH
NỘI DUNG BÀI HỌC
01
02
Phát hiện và phân loại lỗi
Gỡ lỗi
01
Phát hiện và phân loại lỗi
Hoạt động 1: Đọc (và quan sát)
Hoạt động nhóm và tìm hiểu về Phát hiện và phân loại lỗi theo kĩ
thuật khăn trải bàn dựa trên các câu hỏi sau:
Chương trình ở Hình 4 trong SGK thực hiện
Chương
công việc gì?
Hình 4 trong SGK có
trình
ở
lỗi cú pháp không
Đối với phương trình ax - b = 0, điều kiện của
(có
chạy
được
hệ số a là gì? Nêu các trường hợp về nghiệm
không)?
số của phương trình? Bộ dữ liệu thử tương
trình sẽ cho kết quả
ứng với các tình huống này là gì?
sai với bộ dữ liệu
Chương
Hoạt động 1: Đọc (và quan sát)
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ể phân thành hai loại: Lỗi cú pháp và lỗi logic.
Hoạt động 1: Đọc (và quan sát)
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.
•
Hầu hết các ngôn ngữ lập trình cung cấp công cụ phát hiện lỗi cú pháp.
•
Ngôn ngữ lập trình trực quan như Scratch giúp hạn chế những tình
huống gây ra lỗi cú pháp.
Hoạt động 1: Đọc (và quan sát)
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.
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.
Hoạt động 1: Đọc (và quan sát)
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, 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.
Hoạt động 1: Đọc (và quan sát)
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 0; 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 2: Làm
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?
Hoạt động 2: 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 3: Ghi nhớ SGK tr. 96
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.
02
Gỡ lỗi
Hoạt động 1: Đọc (và quan sát)
Đọ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ụ.
Hoạt động 1: Đọc (và quan sát)
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).
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.
Hoạt động 1: Đọc (và quan sát)
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.
Hoạt động 1: Đọc (và quan sát)
Chưa tính đến
a) Tìm lỗi
trường hợp
a=b
Lưu ý khi xác định vị trí, nguyên nhân gây lỗi:
•
Cần tập trung xem xét câu lệnh trực tiếp tạo ra lỗi
hoặc 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.
•
Phân tích, suy luận để xác định nguyên nhân gây lỗi.
Hoạt động 1: Đọc (và quan sát)
a) Tìm lỗi
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.
Hoạt động 1: Đọc (và quan sát)
Đọ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
và trong đoạn chương trình ở
Hình 5 so với đoạn chương trình
tương ứng ở Hình 2.
Hoạt động 1: Đọc (và quan sát)
Để 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).
Hoạt động 1: Đọc (và quan sát)
Để 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 2: Làm
Làm việc theo cặp đôi, hoàn thành các bài tập trong mục
Hoạt động Làm SGK tr.97:
Câu 1. Hình 6 là kết quả kiểm thử chương
trình ở Hình 4. 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ì?
Hoạt động 2: Làm
Làm việc theo cặp đôi, hoàn thành các bài tập trong mục
Hoạt động Làm SGK tr.97:
Câu 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.
Hoạt động 2: Làm
Câu 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: lỗi logic vì phép chia cho 0 là không xác định.
Hoạt động 2: Làm
Câu 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.
Hoạt động 3: Ghi nhớ SGK tr. 96
Khi phát hiện lỗi, cần xác định 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 cho
chương trình.
LUYỆN TẬP
Nhiệm vụ 1
Trò chơi trắc nghiệm
Câu 1. Đâu là lỗi cú pháp?
A. Khi các câu lệnh trong chương trình được viết đúng cú pháp nhưng thực hiện
không đúng kịch bản.
B. Các lệnh viết bằng ngôn ngữ lập trình chỉ dẫn máy tính thực hiện các bước của
thuật toán.
C. Lệnh viết sai so với ngôn ngữ lập trình, làm cho chương trình không hoạt động.
D. Cả 3 đáp án trên.
Nhiệm vụ 1
Trò chơi trắc nghiệm
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à cần sửa lỗi như thế nào? Chọn phương án đúng nhất.
A. Đây là lỗi không thể sửa được.
B. Đây là lỗi chia cho 0, em cần xóa lệnh này khỏi chương trình.
C. Đây là lỗi chia cho 0, em cần thay thế phép toán khác để không xảy ra lỗi này
nữa.
D. Đây là lỗi chia cho 0, em cần tìm hiểu nguyên nhân vì sao lại xuất hiện 0 khi
chia, có thể bổ sung lệnh kiểm tra trước khi thực hiện phép chia.
Trò chơi trắc nghiệm
Nhiệm vụ 1
Câu 3. Muốn truy vết để tìm lỗi ta nên:
A. Sử dụng công cụ gỡ lỗi của chương trình lập trình hoặc đưa thêm các
câu lệnh xuất ra kết quả trung gian của quá trình tính toán.
B. Sử dụng thêm câu lệnh nhập.
C. Lưu lại chương trình.
D. Gõ lại chương trình.
Trò chơi trắc nghiệm
Nhiệm vụ 1
Câu 4. Bộ dữ liệu kiểm thử (test) có những tính chất gì?
A. Tính chất phát hiện lỗi của
chương trình.
B. Cần có càng nhiều càng tốt.
C. Cần được sinh ngẫu nhiên và
phủ kín các trường hợp biến
của dữ liệu đầu vào bài toán.
D. Không cần có tính chất gì.
Nhiệm vụ 1
Trò chơi trắc nghiệm
Câu 5. Công cụ Debug dùng để:
A. Chạy chương trình.
B. Lưu chương trình.
C. Mở chương trình.
D. Gỡ lỗi.
Nhiệm vụ 2
Trả lời câu hỏi phần Luyện tập SGK tr. 98
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.
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.
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?
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.
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?
Hướng dẫn trả lời:
Bài tập 1.
• 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.
Hướng dẫn trả lời:
Bài tập 2. Trình tự để phát hiện, gỡ lỗi chương trình: A → C → B → E → D.
Bài tập 3. Đáp án C.
Bài tập 4. 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.
THỰC HÀNH
Bài tập 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.
THỰC HÀNH
Bài tập 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.
THỰC HÀNH
Bài tập 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.
Gợi ý sản phẩm tham khảo
Bài tập 1.
• 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.
Chương trình gợi ý:
Gợi ý sản phẩm tham khảo
Bài tập 2. a) Chương trình:
c) 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.
Gợi ý sản phẩm tham khảo
Bài tập 3. Tự thực hiện tạo
Gỡ lỗi: Chuyển lệnh gán giá trị ban
chương trình như sau và tiến hành
đầu S = 0 ra khỏi điều kiện lặp.
kiểm thử.
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.
HƯỚNG DẪN VỀ NHÀ
01
Ôn lại kiến thức đã học.
02
Làm bài tập trong Sách bài tập Tin học 8.
03
Đọc và tìm hiểu trước Bài 16: Tin học và nghề nghiệp.
HƯỚNG DẪN VỀ NHÀ
04
Làm việc theo nhóm, sưu tầm tài liệu, tranh ảnh, thông
tin,... và hoàn thành nhiệm vụ sau:
• Tại sao bình đẳng giới là mục tiêu phấn đấu của các quốc gia trên thế
giới trong đó có Việt Nam?
• Em hãy chứng tỏ: Quan điểm sai lầm làm hạn chế cơ hội nữ giới sử
dụng máy tính, ứng dụng tin học.
• Lí do cần có sự bình đẳng giới trong sử dụng máy tính ứng dụng tin học?
• Có những hoạt động nào thúc đẩy bình đẳng giới trong lĩnh vực tin học?
Hình thức: trình bày trên powerpoint/ giấy A0/ tiểu phẩm,…
BÀI HỌC KẾT THÚC,
TẠM BIỆT VÀ HẸN GẶP LẠI!
 







Các ý kiến mới nhất