Môn Tin họcQuản lý học tập Tin học

Gỡ lỗi chương trình xếp hạng điểm thi của lớp

Lớp 10Lập trìnhpythonGiải quyết vấn đề với máy tínhVận dụng cao

Thang điểm 10 · 6 test case chấm tự động · 4 tiêu chí chấm

Để lập bảng xếp hạng, giáo viên cần sắp xếp danh sách điểm thi của học sinh theo thứ tự tăng dần. Một bạn học sinh đã viết đoạn chương trình chèn (insertion sort) như sau, nhưng khi chạy thử với điểm thi [10, 1, 5, 2, 8, 0, 4] thì kết quả in ra không được sắp xếp đúng hoàn toàn:

  • 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

Áp dụng kĩ thuật in giá trị trung gian (hoặc truy vết bằng tay) đã học trong bài, em hãy tìm ra các lỗi điều kiện biên trong đoạn chương trình trên (liên quan tới điều kiện dừng của vòng lặp while và phạm vi của vòng lặp for), sửa lại cho đúng, rồi viết một chương trình hoàn chỉnh: đọc số lượng học sinh n và danh sách n điểm thi (là các số nguyên) từ bàn phím, sắp xếp tăng dần và in ra danh sách điểm đã sắp xếp (các số cách nhau bởi dấu cách).

Input: dòng 1 là số nguyên n; dòng 2 gồm n số nguyên là điểm thi, cách nhau bởi dấu cách.

Output: một dòng gồm n số nguyên đã sắp xếp tăng dần, cách nhau bởi dấu cách.

InputOutput
7 10 1 5 2 8 0 40 1 2 4 5 8 10
1 77
4 9 9 9 99 9 9 9
#gỡ lỗi#điều kiện biên vòng lặp#sắp xếp chèn#truy vết giá trị trung gian#category:danh_gia#difficulty:analyzing

Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.

Giáo viên đăng nhập để giao bài