btvn.vn
Tìm kiếm Đăng nhập

Đọc tệp điểm và sắp giảm bằng cách chọn

Lưu trên thiết bị này
Kĩ thuật lập trình — CS · Chọn bài khác

Bộ điểm giả và yêu cầu

Tạo tệp `diem_gia_b22.txt` trong thư mục thực hành, với bốn dòng: ```text 7.0 9.0 6.5 9.0 ``` Mỗi dòng là một điểm giả từ 0 đến 10. Lưu mã dưới tên `diem_b22.py` và chạy cùng thư mục. Chương trình cần in `[9.0, 9.0, 7.0, 6.5]`. Hai điểm 9.0 đều phải còn; tệp không có tên nên kết quả chỉ là dãy điểm, không là bảng xếp hạng người học.

Đọc điểm rồi chọn giá trị lớn nhất

```python def sap_chon_giam(a): n = len(a) for i in range(n - 1): i_lon_nhat = i for j in range(i + 1, n): if a[j] > a[i_lon_nhat]: i_lon_nhat = j if i_lon_nhat != i: a[i], a[i_lon_nhat] = a[i_lon_nhat], a[i] diem = [] with open("diem_gia_b22.txt", "r", encoding="utf-8") as f: for dong in f: gia_tri = float(dong) if not 0 <= gia_tri <= 10: raise ValueError("Điểm phải từ 0 đến 10") diem.append(gia_tri) sap_chon_giam(diem) print(diem) ``` Kết quả là `[9.0, 9.0, 7.0, 6.5]`. Mỗi lượt chọn số **lớn nhất** của đoạn còn lại; dấu `>` khác bản sắp chọn tăng ở L19. `float` giữ được điểm lẻ như 6.5. Dòng chữ không chuyển được thành số sẽ báo lỗi; 11 hoặc -1 bị từ chối theo quy ước bài. Nếu tệp rỗng, hàm in `[]`; khi cần bảng điểm thật phải kiểm dữ liệu nguồn và quyền sử dụng riêng.

Bài luyện

Sắp chọn giảm dãy điểm `[7.0,9.0,6.5,9.0]` cho kết quả gì?
Chọn một đáp án

Bài luyện

Muốn sắp chọn giảm, trong vòng tìm giá trị cần dùng điều kiện nào?
Chọn một đáp án

Bài luyện

Nếu tệp có dòng `6.5`, dùng `int(dong)` sẽ ra sao?
Chọn một đáp án

Đang học