C5-02 · Đổi độ F sang độ C

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

Đề

Viết hàm do_c(do_f) trả về nhiệt độ độ C ứng với nhiệt độ độ F, đã làm tròn 1 chữ số thập phân:

$$C = \frac{(F - 32) \times 5}{9}$$

Chương trình chính đọc T bộ test; với mỗi bộ gọi hàm và in kết quả. Bài này là C2-02 viết lại bằng hàm, theo dạng "dòng đầu là T, T bộ test" (mục 4.3, mục 5.5.2).

Dữ liệu vào

  • Dòng đầu: số nguyên ~T~ là số bộ test.
  • ~T~ dòng tiếp theo, mỗi dòng một nhiệt độ ~F~ (số thực, có thể viết dạng 32, 32.0 hay 98.6).

Kết quả

~T~ dòng; dòng thứ ~i~ là nhiệt độ độ C của bộ thứ ~i~, in đúng 1 chữ số thập phân (kể cả khi là số nguyên: 100.0, 0.0).

Ràng buộc

  • ~1 \le T \le 1000~.
  • ~32 \le F \le 10\,000~; ~F~ có tối đa 2 chữ số thập phân.
  • Không có test nào mà giá trị đúng của C nằm đúng giữa hai số làm tròn (như …,x5 chính xác), nên mọi cách tính hợp lý đều cho cùng kết quả.

Ví dụ

Dữ liệu vào:

2
98.6
32

Kết quả:

37.0
0.0

Giải thích ví dụ

  • ~T = 2~: có hai bộ test, phải in đúng hai dòng.
  • ~F = 98{,}6~: ~(98{,}6 - 32) \times 5 / 9 = 66{,}6 \times 5 / 9 = 37~. Nếu tính theo cách viết khác, ~(F - 32) / 1{,}8~, máy cho 36.99999999999999 do sai số số thực (mục 2.2.1); làm tròn 1 chữ số thì vẫn là 37.0. Vì vậy phải làm tròn, không được cắt bỏ phần lẻ.
  • ~F = 32~ (điểm đông đặc của nước): ~C = 0~, in 0.0 chứ không in 0.

Ghi chú

  • Hàm phải trả về giá trị (return), không print; chương trình chính in bằng f"{...:.1f}" (mục 2.5.2). Hàm in ra rồi trả về None thì f"{None:.1f}" dừng với TypeError — đúng lỗi của bài C5-13.
  • Nhiệt độ là số thực: đọc bằng float(input()), không phải int(input()).
  • Làm tròn khác cắt bỏ: 100 °F là 37,777… °C, in 37.8 chứ không phải 37.7.
  • Hệ thống chỉ so kết quả in ra; yêu cầu "viết hàm do_c, có ít nhất ba assert" là phần giảng viên kiểm khi chấm tay.

Nguồn trong sách: Bài C5-02, mục 5.10, giáo trình "Lập trình cơ sở với Python" — TS. Nguyễn Quốc Long · Mức: (*)


Đang tải...