Chủ đề 5. Bài 29. Nhận biết lỗi chương trình

Bài 29 Nhận biết lỗi chương trình trang 141 sách giáo khoa Tin Học lớp 10NXB Kết Nối Tri Thức Với Cuộc Sống, mời các em tham khảo cùng Bumbii.

Chủ đề 5. Giải quyết vấn đề với sự trợ giúp của máy tính. Bài 29. Nhận biết lỗi chương trình.

NHẬN BIẾT LỖI CHƯƠNG TRÌNH

Hoạt động 1. Nhận biết và phân biệt một số loại lỗi chương trình

Quan sát các trường hợp chương trình gặp lỗi như sau, từ đó nhận biết và phân biệt một số loại lỗi của chương trình.

Trường hợp 1. Người lập trình viết sai cú pháp lệnh, chương trình lập tức dừng lại và thông báo lỗi cú pháp.

Trường hợp 2. Người dùng nhập dữ liệu sai, chương trình thông báo lỗi nhập dữ liệu không đúng khuôn dạng.

Trường hợp 3. Chương trình thông báo lỗi chỉ số vượt quá giới hạn cho phép.

Khi chạy chương trình sẽ báo lỗi:

Trường hợp 4. Chương trình thực hiện bình thường nhưng kết quả không đúng với yêu cầu của bài toán. Đây là lỗi lôgic bên trong chương trình.

Chương trình cho kết quả là 3 mà kết quả đúng là 1 + 2 + 3 = 6. Lí do là hàm range(3) trả lại vùng giá trị là 0, 1, 2 chứ không phải là 1, 2, 3.

Câu hỏi

1. Khi gõ sai cú pháp một lệnh, chương trình sẽ dừng lại và báo lỗi, đó là lỗi loại gì?

Đáp án: Đây là lỗi cú pháp.

2. Bài toán yêu cầu sắp xếp dãy số ban đầu thành dãy tăng dần. Giả sử dãy số ban đầu là [3, 1, 8, 10, 0]. Kết quả thu được dãy [1, 3, 8, 10, 0]. Chương trình có lỗi không? Nếu có thì lỗi đó thuộc loại gì?

Đáp án: Đây là lỗi lôgic nội tại, không phải lỗi ngoại lệ.

MỘT SỐ LỖI NGOẠI LỆ THƯỜNG GẶP

Hoạt động 2. Nhận biết một số lỗi ngoại lệ thường gặp

Đọc, thảo luận để nhận biết một số lỗi ngoại lệ thường gặp trong chương trình Python.

Câu hỏi. Hãy nêu mã lỗi ngoại lệ của mỗi lệnh sau nếu xảy ra lỗi.

a) A[1.5]

b) int(“abc”)

C) “10”*3.5

d) 12 + x(10)

Đáp án:

a) Lỗi kiểu dữ liệu: TypeError.

b) Lỗi giá trị dữ liệu: ValueError.

c) Lỗi kiểu dữ liệu: TypeError.

d) Nếu có lỗi xảy ra thì có thể là các loại lỗi sau đây:

TypeError nếu dữ liệu (số 10) truyền vào đối số của hàm x() bị sai kiểu

NameError nếu hàm x() chưa được định nghĩa trước đó

TypeError nếu giá trị trả lại của hàm x(10) không cùng kiểu để có thể thực hiện phép toán 12 + x(10)

LUYỆN TẬP

Câu 1. Các lệnh sau có sinh lỗi chương trình không? Nếu có thì mã lỗi là gì?

Đáp án: Bài 29 Nhận biết lỗi chương trình

Nhóm lệnh 1 có lỗi chỉ số.

Nhóm lệnh 2 có lỗi kiểu dữ liệu.

Câu 2. Để tính giá trị trung bình của một danh sách số A, người lập trình đã dùng lệnh sau để tính:

gttb = sum(A)/len(A)

lệnh này có thể sinh lỗi ngoại lệ không? Nếu có thì là những lỗi gì?

Đáp án:

Lỗi có thể phát sinh là lỗi chia cho 0 nếu dãy A rỗng.

VẬN DỤNG

Câu 1. Giả sử em được yêu cầu viết một chương trình nhập số tự nhiên n từ bàn phím, kết quả đưa ra là danh sách các ước số thực sự của n, tính cả 1 và không tính n. Hãy viết chương trình và kiểm tra các khả năng sinh lỗi khi thực hiện chương trình.

Đáp án: Bài 29 Nhận biết lỗi chương trình

Chương trình trên có thể sinh lỗi ngoại lệ như sau:

– Dữ liệu đã nhập không phải số tự nhiên, ví dụ nhập số thập phân hoặc xâu kí tự.

– Không nhập gì mà nhấn phím Enter ngay sau dòng yêu cầu nhập liệu.

Câu 2. Em hãy viết một chương trình nhỏ để khi chạy sẽ sinh mã lỗi NameError.

Đáp án: Bài 29 Nhận biết lỗi chương trình

Nếu chương trình có lệnh gọi đến một biến chưa được gán hay hàm chưa được xác định nghĩa là sẽ phát sinh lỗi NameError.

__________***__________

Xem các bài giải khác tại Giải bài tập SGK tin học lớp 10 – NXB Kết nối tri thức với cuộc sống

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x