
Anonymous
0
0
Chương trình sau có chức năng sắp xếp một dãy số cho trước
- asked 6 months agoVotes
0Answers
0Views
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)
Trả lờ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-1print(A)