C1-03 · Đặc trưng thuật toá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

Đề

Trong sách đây là bài làm trên giấy; trên hệ thống, bài được chuyển thành dạng nộp chương trình — tinh thần đề giữ nguyên: nhận ra đặc trưng bị vi phạm (mục 1.1.2) và sửa lại thuật toán.

Mỗi dãy bước sau vi phạm đặc trưng nào của thuật toán (xác định, hữu hạn hay đúng đắn)?

  • (a) "Lấy số tiền cần chuyển, cộng thêm một ít phí, thông báo tổng."
  • (b) "Để tính diện tích hình tròn bán kính r, lấy r nhân 3,14."

Sau đó sửa dãy bước (b) cho đúng (lấy π ≈ 3,14) và dùng nó tính diện tích hình tròn với ~r = 2~ và ~r = 5~.

Dữ liệu vào

Không có. Chương trình không đọc dữ liệu: mọi giá trị đã viết sẵn trong mã nguồn (cách đọc dữ liệu từ bàn phím học ở mục 2.4).

Kết quả

Đúng 4 dòng:

  1. a rồi tên đặc trưng mà (a) vi phạm;
  2. b rồi tên đặc trưng mà (b) vi phạm;
  3. diện tích hình tròn bán kính 2 theo thuật toán đã sửa;
  4. diện tích hình tròn bán kính 5 theo thuật toán đã sửa.

Tên đặc trưng viết chữ thường, không dấu, là một trong: xac dinh, huu han, dung dan. Hai dòng diện tích in bằng biểu thức để máy tính, ví dụ dạng print(3.14 * ...), đúng như Python in ra.

Ràng buộc

  • π lấy đúng 3.14 (dấu chấm thập phân trong mã nguồn, mục 1.3.1).
  • Chỉ cần lệnh print() và phép tính + - * /.

Lưu ý khi nộp

  • Gợi ý của sách: thử ~r = 2~ với dãy bước (b) gốc rồi so với diện tích thật.
  • Vì sao hệ thống hỏi thêm ~r = 5~? Hãy tính chu vi ~2 \times 3{,}14 \times r~ với ~r = 2~ rồi so với diện tích — một ca thử duy nhất có thể đánh lừa ta (mục 1.1.2: "thử khớp vài lần chưa đủ để nói thuật toán đúng").

Giải thích ví dụ

Một dãy bước vi phạm xác định khi có bước hiểu được nhiều cách; vi phạm hữu hạn khi có thể chạy mãi không dừng; vi phạm đúng đắn khi chạy xong nhưng cho kết quả sai với một bộ dữ liệu hợp lệ nào đó (mục 1.1.2). Với mỗi dãy bước, hãy tự hỏi lần lượt ba câu ấy.

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


Đang tải...