Довідка! Мій іспит з математики незабаром з'являється, і я не вчився! 1 Частина іспиту полягає у класифікації чотирикутника з урахуванням його вершинних координат, які я, на жаль, не знаю, як це зробити. 2
Отже, ваше завдання - написати програму, щоб зробити це для мене, щоб я не зазнав невдачі!
Виклик
Враховуючи чотири вершини, такі, що жодна з них не є лінійкою, визначте найбільш специфічну класифікацію чотирикутника, утвореного цими чотирма вершинами.
Що я маю на увазі під "найбільш специфічною класифікацією", це те, що, хоча всі квадрати є прямокутниками, якщо форма є квадратом, ви повинні вказати, що це квадрат, а не вказувати, що це прямокутник.
Вхідні дані
Вхід буде задано у вигляді чотирьох координат (x, y). Ви можете сприймати їх як список довжиною 4 списків / кортежів довжини 2. Як варіант, ви можете приймати введення як список x-координат та список відповідних y-координат.
Наприклад, якщо моя форма має вершини в точках (0, 0)
, (5, 0)
, (6, 1)
і (1, 1)
ви можете прийняти вхід в будь-якому з наступних форматів або що - щось подібне:
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
Можна припустити, що чотирикутник не є самопересічним і що точки задані у правильному порядку (тобто дві послідовні точки на вході будуть з'єднані відрізком лінії у чотирикутнику).
Вихідні дані
Вам знадобиться унікальний вихід для кожного з наступних класів чотирикутників:
- Майдан
- Прямокутник
- Ромб
- Паралелограма
- Трапеція / Трапеція
- Кайт
- Чотирикутник
Це може бути саме ім’я, символ, ціле число тощо.
Правила
- Застосовуються стандартні лазівки
- Якщо у вашій мові програмування є вбудований модуль, який буде виконувати це точне завдання, вбудований файл заборонений.
- Допускаються вбудовані для пошуку відстані між двома точками.
- Допускаються вбудовані для знаходження кута між двома лініями.
У цей момент, якщо ви знаєте всі умови, ви готові розпочати програмування! (Тестові випадки закінчуються)
Термінологія
Цей розділ призначений для тих, хто потребує роз'яснення щодо визначень різних форм.
Майдан
Чотирикутник - це квадрат тоді і тільки тоді, коли всі 4 його сторони рівні по довжині і кожна пара суміжних сторін перпендикулярна (тобто це і прямокутник, і ромб).
Прямокутник
Чотирикутник - це прямокутник тоді і тільки тоді, коли кожна пара суміжних сторін перпендикулярна.
Ромб
Чотирикутник - це ромб тоді і тільки тоді, коли всі 4 його сторони рівні.
Паралелограма
Чотирикутник - це паралелограм тоді і лише тоді, коли кожна пара протилежних сторін паралельна і кожна пара протилежних кутів дорівнює. Обидва ці умови мають на увазі одне одного, тому вам потрібно перевірити лише одну з них.
Трапеція / Трапеція
Чотирикутник - це трапеція / трапеція, якщо і лише тоді, коли вона має принаймні одну пару паралельних сторін.
Кайт
Чотирикутник - змій, якщо дві протилежні пари сусідніх сторін рівні по довжині; тобто дві його суміжні сторони рівні, а інші дві також рівні.
Випробування
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
Посилання (графічний калькулятор Desmos)
Ось посилання на візуалізацію кожного з тестових випадків.
Квадратний
прямокутник
Ромб
Паралелограма
Трапеція / Трапеція
змія
чотирикутник
Критерії виграшу
Я не можу піднести комп'ютер до іспиту, очевидно, тому мені потрібно, щоб ви написали найкоротший можливий код, щоб я міг запам'ятати його. Мені потрібно записати його в поля і запустити його за допомогою TryItOffline TM, щоб вписати його в поля, вашій програмі потрібно бути якомога менше!
1 Звичайно, я насправді: P
2 Звичайно, я насправді: P