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

263


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

263