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
196
19/06/2023
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-1
print(A)
Xem thêm lời giải bài tập SGK Tin học 10 Kết nối tri thức hay, chi tiết khác:
Bài 28: Phạm vi của biến
Bài 29: Nhận biết lỗi chương trình
Bài 30: Kiểm thử và gỡ lỗi chương trình
Bài 31: Thực hành viết chương trình đơn giản
Bài 32: Ôn tập lập trình Python
Bài 33: Nghề thiết kế đồ họa máy tính