Площа об’єднання двох прямокутників
Обчисліть площу об’єднання двох осьових прямокутників зі строго зростаючими цілими межами.
def union_area(first, second):
if any(type(v) not in (list, tuple) or len(v) != 4 for v in (first, second)):
raise ValueError("rectangle.container")
first, second = tuple(first), tuple(second)
for rectangle in (first, second):
if len(rectangle) != 4 or any(type(v) is not int for v in rectangle):
raise ValueError("rectangle.integer")
x0, y0, x1, y1 = rectangle
if x0 >= x1 or y0 >= y1:
raise ValueError("rectangle.bounds")
a, b, c, d = first
e, f, g, h = second
overlap = max(0, min(c, g) - max(a, e)) * max(0, min(d, h) - max(b, f))
return (c - a) * (d - b) + (g - e) * (h - f) - overlapМоделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Проєкт
Перевірте перетин, вкладеність і дотик, відхиляючи нульову площу та зворотні межі до обчислень і зберігаючи вхідні дані.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
def union_area(first, second):
if any(type(v) not in (list, tuple) or len(v) != 4 for v in (first, second)):
raise ValueError("rectangle.container")
first, second = tuple(first), tuple(second)
for rectangle in (first, second):
if len(rectangle) != 4 or any(type(v) is not int for v in rectangle):
raise ValueError("rectangle.integer")
x0, y0, x1, y1 = rectangle
if x0 >= x1 or y0 >= y1:
raise ValueError("rectangle.bounds")
a, b, c, d = first
e, f, g, h = second
overlap = max(0, min(c, g) - max(a, e)) * max(0, min(d, h) - max(b, f))
return (c - a) * (d - b) + (g - e) * (h - f) - overlapПов’яжіть геометричний код із даними, які він отримує
RectDelta надає середовище програмування у Windows для обговорення геометричного коду як частини застосунку, включно з межами вхідних даних навколо обчислення. Відкрийте проєкт і опишіть походження координат та використання результату. Попросіть підключеного помічника перевірити ці зв’язки перед пропозицією іншої реалізації арифметики.
Для завдання об’єднання прямокутників визначте порядок координат, допустимий числовий тип і обробку фігур, які лише торкаються. Надайте як приклади вкладені прямокутники та прямокутники з перекриттям, потім обговоріть повідомлення про неправильні межі. Ці рішення дають перевірці коду конкретну мету, не перетворюючи приклад обчислення на твердження про вбудований геометричний рушій.
Перевіряйте валідацію й арифметику разом та запускайте перевірки проєкту зі звичайними й відхиленими фігурами. Переконайтеся, що код виклику отримує задуманий результат, а дані залишаються незмінними для подальшої роботи. RectDelta підключається до підтримуваних сервісів, сумісних з OpenAI, або Anthropic, з обліковими даними за потреби. Модель без обмежень можна обрати, якщо її пропонує налаштована кінцева точка; правила постачальника й можливості сервера все одно визначають підключення. Залишайте приклади приймання в розмові, щоб кожну правку оцінювати за тією самою вимогою застосунку.
Геометричні контракти перед змінами реалізації
Що зазначити про вхідний прямокутник?
Укажіть порядок координат, допустимі числові типи й те, чи обидва виміри мають бути додатними. Додайте спосіб відмови для неправильних контейнерів. Тоді помічник перевірить усю межу даних, а не припускатиме, що будь-які чотири значення описують прийнятну фігуру.
Навіщо включати до тестів прямокутники, що торкаються?
Вони відрізняють спільні межі від перекриття з додатною площею. Укажіть очікуваний результат об’єднання та перевірте його безпосередньо разом із розділеними й вкладеними випадками, щоб виправлення відображало геометричне правило решти застосунку.
Чи може валідація змінитися під час спрощення арифметики?
Може змінитися випадково, тому обидві потребують перевірки. Порівняйте прийняті й відхилені дані перед збереженням виправлення. Коротше обчислення не повинно мовчки допускати обернені межі або числові типи, виключені початковим контрактом.
Як перевірити збереження вхідних даних?
Збережіть копії початкових контейнерів координат і порівняйте їх після виклику. Якщо подальші кроки застосунку використовують їх повторно, самої правильної площі недостатньо для підтвердження дотримання всього контракту.
RectDelta · Оновлено 2026-10-25