Giải SBT Tin học 10 trang 47 Cánh diều

Với Giải SBT Tin học 10 trang 47 trong Bài 16: Kiểm thử và gỡ lỗi chương trình sách Tin học lớp 10 Cánh diều hay nhất, chi tiết sẽ giúp học sinh dễ dàng trả lời các câu hỏi & làm bài tập Tin học 10 trang 47.

1 252 19/12/2022


Giải SBT Tin học 10 trang 47 Cánh diều

Câu F81 trang 47 SBT Tin 10Lỗi trong chương trình

Có mấy loại lỗi khi lập trình? Hệ thống hỗ trợ gì cho người lập trình trong việc tìm và khắc phục lỗi?

Trả lời:

Khi người lập trình thường gặp ba loại lỗi:

- Lỗi cú pháp là lỗi câu lệnh viết không theo đúng quy định của ngôn ngữ lập trình.

- Lỗi ngoại lệ (Exceptions Error) còn gọi là lỗi Runtime, là lỗi xảy ra khi chương trình đang chạy, một lệnh nào đó không thể thực hiện được. Lỗi này sẽ được thông báo ngay trên màn hình.

- Lỗi ngữ nghĩa (còn gọi là lỗi logic) là lỗi mặc dù các câu lệnh viết đúng quy định của ngôn ngữ nhưng sai trong thao tác xử lí nào đó.

Hệ thống sẽ báo lỗi cú pháp và lỗi ngoại lệ. Để phát hiện lỗi ngữ nghĩa, người lập trình cần kiểm thử, hệ thống cung cấp công cụ Debug để người lập trình quan sát được kết quả trung gian trong quả trình chạy chương trình.

Câu F82 trang 47 SBT Tin 10Kiểm thử

Kiểm thử là gì? Tại sao cần kiểm thử khi mà chương trình chạy đưa ra kết quả đúng với ví dụ đã cho?

Trả lời:

Môi trường do ngôn ngữ lập trình cung cấp không phát hiện được lỗi ngữ nghĩa, do vậy người lập trình phải kiểm thử sau khi viết chương trình. Khi kiểm thử, cần xây dựng các bộ dữ liệu đầu vào để chạy thử nhằm phát hiện lỗi của chương trình. Một chương trình nếu có lỗi ngữ nghĩa thì có thể đưa ra kết quả đúng đối với một số bộ dữ liệu vào nhưng vẫn đưa ra kết quả sai đối với một số bộ dữ liệu khác. Việc kiểm thử cũng chỉ làm tăng tính đáng tin cậy của chương trình chứ không chứng minh được chương trình chạy đúng với mọi bộ dữ liệu vào. Tuy nhiên chất lượng của việc kiểm thử phụ thuộc vào việc đưa ra các bộ dữ liệu vào để kiểm thử và đem lại mức đáng tin cậy của chương trình.

Câu F83 trang 47 SBT Tin 10Tìm lỗi

Chương trình sau thực hiện nhập từ thiết bị vào chuẩn hai dòng:

- Dòng thứ nhất chứa hai số nguyên p và q ghi cách nhau một dấu cách.

- Dòng thứ hai là danh sách số nguyên A = (a1, a2,…, an), các số ghi trên một dòng cách nhau một dấu cách. Dữ liệu vào đảm bảo 1 ≤ p ≤ q ≤ n. Tính và đưa ra thiết bị ra chuẩn hai số nguyên trên một dòng:

min{ai, i = p, p+1, q} và max{ai, i = p, p+1, q}.

Chương trình thỉnh thoảng cho kết quả sai với một số bộ dữ liệu p, q và nào đó. Em hãy tìm và sửa lỗi để được chương trình cho kết quả đúng với mọi bộ dữ liệu vào p, q và A.

Trả lời:

Cần bỏ câu lệnh q = q - 1 để đảm bảo phần tử cuối trong khoảng yêu cầu tham gia vào việc tìm min và max. Tham khảo chương trình sau:

1 252 19/12/2022


Xem thêm các chương trình khác: