# / y1. Однако так

/ y1. Однако так поступать нельзя, так как x1 или y1 могут оказаться равными 0. Вместо этого мы проверяем равенство x1 * y2 = x2 * y1. Мы приведем пример функции на Pascal'е для решения этой задачи, введя, для удобства записи, тип point. type point = record x, y: integer; end; function isStraightLine (A, B, C: point) : boolean; begin isStraightLine := ((B.x - A.x) * (C.y - A.y) -C.x - A.x) * (B.y - A.y) = 0); end; Проблема, не имеющая прямого отношения к программированию: если мы возьмем векторы AB и BC, то получится ли другая функция, отвечающая на тот же вопрос? Оказывается, что выражение, которое вычислялось в предыдущем упражнении, позволяет ответить еще на один важный (как будет ясно позже) вопрос. Объяснение этого факта мы оставим любителям математики. Пример #2. Даны 3 точки A, B и C, не лежащие на одной прямой. Определить, является обход A®B®C обходом по часовой стрелке или против часовой стрелки. Решение function isClockWise (A, B,

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа
Смотри самые лучшие лайфхаки на нашем сайте.