profile picture

Anonymous

upvote

0

downvote

0

star

Bài toán sắp xếp: Cho trước một dãy số A, viết chương trình sắp xếp dãy số này theo thứ tự tăng dần

clock icon

- asked 6 months agoVotes

message

0Answers

eye

0Views

Giải SBT Tin học 10 Kết nối tri thứcBài 31: Thực hành: Viết chương trình đơn giản

Câu 31.2 trang 63 SBT Tin học 10

Với mỗi phần tử A[k], việc chèn vào vị trí đúng trong dãy con phía trước được thực hiện bằng một vòng lặp như sau:

j = k – 1

while j > 0 and A[j] > A[j+1]:

A[j], A[j+1] = A[j+1],A[j]

j = j – 1

Để tìm lỗi chương trình trên chúng ta áp dụng công cụ printine, in các giá trị trung gian. Với mỗi vòng lặp chính (vòng lặp for k in range(1,n)), chúng ta sẽ in ra các giá trị sau: k, A[k] và kết quả dãy A.

Chương trình được viết như sau, sau khi bổ sung các lệnh in phần tử trung gian.

dayA = [5,1,8,4,2]# Dãy gốc cần sắp xếp

def sap_xep (A):

n = len(A)

for k in range(1,n):

print("vòng" ,k, "số đang xét:", A[k], end = " ")

j = k - 1

while j > 0 and A[j] > A[j+1]:

A[j], A[j+1] = A[j+1], A[j]

j = j - 1

print(A)

print("Dãy gốc:",dayA)

A = dayA. copy()

sap_xep (A)

print("Dãy đích:",A) 

Em hãy viết lại chương trình trên và tiến hành kiểm thử xem chương trình có lỗi không? Nếu có thì tìm ra lỗi và sửa lại cho chương trình chạy đúng.

Trả lời:

Các em tự viết lại chương trình trên:

Sách bài tập Tin học 10 Bài 31 (Kết nối tri thức): Thực hành: Viết chương trình đơn giản (ảnh 1)

Kết quả chạy chương trình có thể như sau:

Sách bài tập Tin học 10 Bài 31 (Kết nối tri thức): Thực hành: Viết chương trình đơn giản (ảnh 1)

while j > 0 and A[j] > A[j+1]:

Cần sửa lại như sau:

while j >= 0 and A[j] > A[j+1]:

Chương trình đã tìm ra lỗi nhờ công cụ kiểm thử printine. Chương trình chính thức sau khi sửa như sau.

sap_xep.py

dayA = [5,1,8,4,2]# Dãy gốc cần sắp xếp

def sap_xep(A):

n = len(A)

for k in range (1,n):

j = k – 1

while j >= 0 and A[j] > A[j+1]:

A[j], A[j+1] = A[j+1], A[j]

j = j – 1

A = dayA. copy()

sap_xep (A)

print("Dãy đích:", A)

Bài tập liên quan

Write your answer here

© 2025 Pitomath. All rights reserved.