![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Bard |
![]()
Сообщение
#1
|
![]() Учиться, учиться еще раз учиться ![]() ![]() ![]() Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: ![]() ![]() ![]() |
У меня тут одна задачка появилась , никак не могу решить
![]() ![]() ![]() ![]() Ну в задаче, если коротко описать, нужно определить можно ли поместить второй треугольник в первый. Длина сторон каждого заданы. Мой алгоритм не очень уж и трудный. Я сначала нахожу сторону с макс. длиной и беру его как за основание(это действие выполняю для обоих). Потом сраниваю основания и вершины(по основанию) и выдаю ответ. Вот и мой код: var Я даже знаю где у меня ошибка но не знаю как ее исправить. Ошибка у меня при том случае если основание и высота первого больше но второй треугольник не входит(у меня выдает что входит). Недаюь сможете помочь. Заранее спасибо... ![]() -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
![]() ![]() |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Ну ок, давай попробуем.
А = тот треугольник, ВНУТРЬ которого вставляем, В - ТОТ, который вставляем. ВВВ = Верхняя Вершина треугольника В Смотри. Ты их поставил на основание, знаешь высоты. Пробуешь ставить В впритык слева (т.е. совмещаешь левые концы оснований А и В). Проверяешь, попала ли ВВВ внутрь А. Если попала - это уже решение. Если не попала - то она либо слева от левой боковой стороны А, либо справа от правой. Если справа от правой - мы ничего не можем сделать, левее двигать В (а значит и ВВВ) уже некуда. Если слева от левой - нужно попытаться подвинуть В вправо так, чтобы ВВВ попала внутрь А. Понятно, что если это вообще возможно, то впервые это случится в момент, когда ВВВ попадет на левую боковую сторону А (она не может попасть внутрь, обойдя стороны, т.к. мы двигаем В право *непрерывно*). Получается, нужно найти на левой боковой стороне А точку Х с нужной нам ординатой (с ординатой ВВВ), и попробовать поставить В там (совместить ВВВ с Х). Если теперь мы вылезли за пределы А справа (основание В вылезло вправо от основания А) - решения точно нет. Если не вылезли - решение найдено. Bard, если ты действительно хочешь сдать эту задачу, я бы советовал тебе сначала порешать другую геометрию на тимусе. Можешь искать ее по ключевым словам "coordinate", "vertex", "circle", "intersect" и т. п. Например: По запросу coordinate|circle|intersect|triangle +site:acm.timus.ru |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 21:17 |