XS-01 · Tính điểm học phần

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Đây là phần đầu tiên của bài toán xuyên suốt "Điểm học phần": mỗi chương từ 2 đến 9 thêm một phần, đến Chương 10 thành một chương trình quản lý điểm hoàn chỉnh.

Đọc điểm quá trình và điểm cuối kỳ của một sinh viên, in điểm học phần theo công thức

$$\text{điểm học phần} = 0{,}4 \times \text{điểm quá trình} + 0{,}6 \times \text{điểm cuối kỳ},$$

lấy 1 chữ số thập phân.

Kiến thức dùng (Chương 2): biến, float(), biểu thức số học, đọc hai giá trị trên một dòng bằng a, b = input().split(), in số thực bằng f-string :.1f.

Dữ liệu vào

Một dòng gồm hai số thực diem_qt diem_ck — điểm quá trình và điểm cuối kỳ — cách nhau một dấu cách.

Kết quả

Một dòng: điểm học phần, viết với đúng 1 chữ số thập phân (ví dụ 7.8, 10.0, 0.0), dùng dấu chấm thập phân, không in nhãn hay lời nhắc.

Ràng buộc

  • ~0 \le~ diem_qt, diem_ck ~\le 10~.
  • Mỗi điểm viết dạng số nguyên (7, 10) hoặc có đúng một chữ số thập phân (7.5, 10.0), dùng dấu chấm.
  • Vì vậy điểm học phần chưa làm tròn luôn là bội của ~0{,}02~: không bao giờ có đuôi kiểu ~x{,}x5~, nên "lấy 1 chữ số thập phân" không có trường hợp mơ hồ.

Ví dụ

Dữ liệu vào:

7.5 8.0

Kết quả:

7.8

Giải thích ví dụ

~0{,}4 \times 7{,}5 + 0{,}6 \times 8{,}0 = 3{,}0 + 4{,}8 = 7{,}8~, in với một chữ số thập phân là 7.8.

Hai ca khác nên tự chạy thử trước khi nộp (lấy từ bộ sinh viên mẫu của sách):

Dữ liệu vào Kết quả Vì sao đáng thử
6.5 7.0 6.8 trong máy, ~2{,}6 + 4{,}2~ cho 6.800000000000001; phải in bằng :.1f
8.0 8.8 8.5 ~8{,}48~ lấy 1 chữ số thập phân là 8.5 (làm tròn, không cắt)
10 10 10.0 điểm viết dạng số nguyên vẫn đọc bằng float(), kết quả vẫn in một chữ số thập phân

Lưu ý khi nộp

  • Dùng input() không lời nhắc; input("Nhap diem: ") in thêm chữ nên bị Wrong Answer.
  • int("7.5") báo lỗi (Runtime Error) — điểm có thể lẻ, phải đọc bằng float().
  • Hai điểm nằm trên cùng một dòng: đọc bằng input().split(), không phải hai lần input().
  • Bộ test gồm 5 nhóm: ví dụ của sách, ngẫu nhiên, giá trị biên (0 và 10), trường hợp đặc biệt và các "bẫy" nhắm vào lỗi hay gặp (in thô số thực, cắt bỏ thay cho làm tròn, đảo trọng số…).

Nguồn trong sách: Bài XS-01, mục 2.7, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: XS (bài toán xuyên suốt, phần 1/8)


Đang tải...