Chương trình sau có chức năng sắp xếp một dãy số cho trước. Hãy kiểm tra xem chương trình có lỗi không? Nếu có thì tìm và sửa lỗi
Trả lời vận dụng 1 trang 148 Tin học 10 sách Kết nối tri thức hay nhất, chi tiết sẽ giúp học sinh dễ dàng làm bài tập Tin học 10
Giải Tin học 10 Kết nối tri thức Bài 30: Kiểm thử và gỡ lỗi chương trình
Vận dụng 1 trang 148 Tin học 10: Chương trình sau có chức năng sắp xếp một dãy số cho trước. Hãy kiểm tra xem chương trình có lỗi không? Nếu có thì tìm và sửa lỗi.
A = [10,1,5,2,8,0,4]
for i in range (len(A)-1):
j = i
while j > 1 and A[j] < A[j-1]:
A[j], A[j-1] = A[j-1], A[j]
j = j – 1
print (A)
Lời giải:
Chương trình không thông báo lỗi nhưng kết quả đưa ra không đúng.
Vị trí lỗi:
1) range(len(A)-1): Khoảng này không duyệt hết được các phần tử của A
2) while j>1: Do i chạy từ 0 nên j phải lớn hơn 0, nếu j>1 sẽ bỏ sót phần tử đầu tiên (A[0])
Chương trình viết lại như sau:
A=[10,1,5,2,8,0,4]
for i in range(len(A)):
j=i
while j>0 and A[j]<A[j-1]:
A[j],A[j-1]=A[j-1],A[j]
j=j-1
print(A)
Bài viết liên quan
- Chương trình của em khi chạy phát sinh lỗi ngoại lệ ZeroDivisionError. Đó là lỗi gì và em xử lí lỗi này như thế nào
- Chương trình sau có lỗi không? Nếu có thì tìm và sửa lỗi
- Để kiểm thử một chương trình, nếu chỉ bằng việc kiểm tra thông qua các bộ dữ liệu test thì có bảo đảm tìm ra hết lỗi của chương trình hay không? Vì sao
- Viết chương trình yêu cầu nhập số thực dương a. Chương trình cần kiểm tra dữ liệu nhập như sau
- Viết chương trình in bảng cửu chương ra màn hình như sau