Chương trình dưới đây thực hiện nhập từ thiết bị chuẩn hai dòng
Sách bài tập Tin học 11 Bài 6: Kiểm thử và sửa lỗi chương trình - Cánh diều
Câu Fcs23 trang 53 SBT Tin học 11: Chương trình dưới đây thực hiện nhập từ thiết bị chuẩn hai dòng:
• Dòng thứ nhất chứa danh sách 4 gồm các số nguyên.
• Dòng thứ hai chứa số nguyên x.
Chương trình sẽ kiểm tra xem giá trị x có xuất hiện trong danh sách A hay không.
Chương trình cho ra kết quả sai với nhiều bộ dữ liệu A và x. Hãy kiểm thử và sửa lỗi trong chương trình:
A = [int (v) for v in input ().split()]
X =
int (input())
for v in A:
if v == X:
print("Tìm thấy giá trị x trong A")
break
else:
print("Không tìm thấy giá trị x trong A")
break
Lời giải:
Chương trình cho ra kết quả sai trong trường hợp 4=[1, 2, 3, 4, 5] và x=2. Nguyên nhân: Chỉ duy nhất phần tử đầu tiên trong danh sách được kiểm tra. Sửa lại: Đưa kết luận “không tìm thấy” ra ngoài vòng lặp và thêm một biến boolean để đánh dấu sự xuất hiện của x.
Chương trình sửa lại như sau:
A= [int (v) for v in input().split()]
x = int(input())
found = False
for v in A:
if v == X:
print("Tìm thấy giá trị x trong A")
found = True
break
if not found: print("Không tìm thấy giá trị x trong A")
Lời giải SBT Tin 11 Bài 6: Kiểm thử và sửa lỗi chương trình hay khác: