Cứu giúp! Kỳ thi toán của tôi sắp diễn ra và tôi đã không học! 1 Một phần của bài kiểm tra là phân loại một hình tứ giác với tọa độ đỉnh của nó, điều mà tôi, thật không may, không biết làm thế nào. 2
Vì vậy, thách thức của bạn là viết một chương trình để làm điều này cho tôi để tôi không thất bại!
Thử thách
Cho bốn đỉnh sao cho không có ba trong số chúng là colinear, hãy xác định phân loại cụ thể nhất của tứ giác được hình thành bởi bốn đỉnh đó.
Ý tôi là "phân loại cụ thể nhất" là mặc dù tất cả các hình vuông đều là hình chữ nhật, nếu hình dạng là hình vuông, bạn nên chỉ ra rằng đó là hình vuông và không chỉ ra rằng đó là hình chữ nhật.
Đầu vào
Đầu vào sẽ được cung cấp dưới dạng bốn tọa độ (x, y). Bạn có thể lấy chúng làm danh sách có độ dài 4 danh sách / bộ dữ liệu có độ dài 2. Ngoài ra, bạn có thể lấy đầu vào làm danh sách tọa độ x và danh sách tọa độ y tương ứng.
Ví dụ, nếu hình dạng của tôi có đỉnh tại các điểm (0, 0)
, (5, 0)
, (6, 1)
, và (1, 1)
, bạn có thể chọn để có đầu vào bằng một trong các định dạng sau hoặc một cái gì đó tương tự:
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
Bạn có thể giả sử rằng tứ giác không tự giao nhau và các điểm được cho theo đúng thứ tự (nghĩa là hai điểm liên tiếp trong đầu vào sẽ được kết nối bởi một đoạn thẳng trong tứ giác).
Đầu ra
Bạn sẽ cần một đầu ra duy nhất cho mỗi lớp tứ giác sau:
- Quảng trường
- Hình chữ nhật
- Hình thoi
- Hình bình hành
- Hình thang / hình thang
- cánh diều
- Tứ giác
Đây có thể là tên chính xác, một ký tự, một số nguyên, v.v.
Quy tắc
- Áp dụng sơ hở tiêu chuẩn
- Nếu ngôn ngữ lập trình của bạn có tích hợp sẵn sẽ thực hiện nhiệm vụ chính xác này, thì tích hợp đó không được phép.
- Được xây dựng để tìm khoảng cách giữa hai điểm được cho phép.
- Được xây dựng để tìm góc giữa hai dòng được cho phép.
Tại thời điểm này, nếu bạn biết tất cả các điều khoản, bạn đã sẵn sàng để bắt đầu lập trình! (Các trường hợp thử nghiệm ở cuối)
Thuật ngữ
Phần này dành cho bất cứ ai cần làm rõ về các định nghĩa của các hình dạng khác nhau.
Quảng trường
Một hình tứ giác là một hình vuông nếu và chỉ khi cả 4 cạnh của nó có độ dài bằng nhau và mọi cặp cạnh kề đều vuông góc (nghĩa là nó vừa là hình chữ nhật vừa là hình thoi).
Hình chữ nhật
Một hình tứ giác là một hình chữ nhật khi và chỉ khi mọi cặp cạnh kề đều vuông góc.
Hình thoi
Một hình tứ giác là một hình thoi khi và chỉ khi cả 4 cạnh của nó bằng nhau.
Hình bình hành
Một hình tứ giác là hình bình hành khi và chỉ khi mỗi cặp cạnh đối diện song song và mỗi cặp góc đối diện bằng nhau. Cả hai điều kiện này ngụ ý lẫn nhau vì vậy bạn chỉ cần kiểm tra một trong số chúng.
Hình thang / hình thang
Một hình tứ giác là hình thang / hình thang khi và chỉ khi nó có ít nhất một cặp cạnh song song.
cánh diều
Một hình tứ giác là một con diều nếu hai cặp cạnh kề nhau có chiều dài bằng nhau; nghĩa là, hai cạnh kề của nó bằng nhau và hai mặt kia cũng bằng nhau.
Các trường hợp thử nghiệm
input as (x, y) * 4 -> full name
[(0, 0), (1, 0), (1, 1), (0, 1)] -> square
[(0, 0), (1, 1), (-1, 3), (-2, 2)] -> rectangle
[(0, 0), (5, 0), (8, 4), (3, 4)] -> rhombus
[(0, 0), (5, 0), (6, 1), (1, 1)] -> parallelogram
[(0, 0), (4, 0), (3, 1), (1, 1)] -> trapezoid/trapezium
[(0, 0), (1, 1), (0, 3), (-1, 1)] -> kite
[(0, 0), (2, 0), (4, 4), (0, 1)] -> quadrilateral
Liên kết (Máy tính đồ họa Desmos)
Dưới đây là các liên kết đến trực quan hóa của từng trường hợp thử nghiệm.
Vuông
Rectangle
Rhombus
bình hành
hình thang / hình thang
Kite
tứ giác
Tiêu chí chiến thắng
Rõ ràng tôi không thể mang máy tính vào bài kiểm tra, vì vậy tôi cần bạn viết mã ngắn nhất có thể để tôi có thể ghi nhớ nó. Tôi cần phải viết nó vào lề và chạy nó bằng cách sử dụng TryIt Offerline TM để phù hợp với lề vào chương trình của bạn cần phải nhỏ nhất có thể!
1 Tất nhiên tôi thực sự đã làm: P
2 Tất nhiên tôi thực sự làm: P