Giải SBT Tin 10 KNTT Bài 31. Thực hành: Viết chương trình đơn giản có đáp án

53 người thi tuần này 4.6 546 lượt thi 10 câu hỏi

🔥 Đề thi HOT:

1408 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 23 có đáp án

7.5 K lượt thi 15 câu hỏi
812 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 20 có đáp án

6.5 K lượt thi 15 câu hỏi
795 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 26 có đáp án

5.6 K lượt thi 15 câu hỏi
762 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 22 có đáp án

6.8 K lượt thi 15 câu hỏi
703 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 24 có đáp án

5.9 K lượt thi 15 câu hỏi
679 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 21 có đáp án

6.2 K lượt thi 15 câu hỏi
485 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 25 có đáp án

4.8 K lượt thi 15 câu hỏi
443 người thi tuần này

15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 27 có đáp án

4.6 K lượt thi 15 câu hỏi

Nội dung liên quan:

Danh sách câu hỏi:

Câu 2:

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.

Giả sử chúng ta sẽ áp dụng thuật toán sắp xếp chèn để cài đặt cho chương trình này. Ý tưởng của thuật toán này như sau: Sẽ duyệt từng phần tử của dãy A, tính từ vị trí thứ 2 trở đi. Với mỗi phần tử (giả sử A[k]), sẽ tìm cách chèn phần tử này vào đúng vị trí của dãy con phía trước A[0], [1], ..., A[k-1] sao cho dãy con này được sắp xếp đúng. Sau khi duyệt xong các phần tử của dãy thì dãy gốc đã được sắp xếp xong.

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.


4.6

109 Đánh giá

50%

40%

0%

0%

0%