Ю2.18

Задача.

Заданы координаты вершин тругольника [latex] ABC [/latex] на плоскости. Вывести их в порядке обхода по часовой стрелке (для проверки достаточно рассмотреть знаки внутренних углов).

Задача взята из задачника по программированию Юркина.

Тесты

Координаты вершин

[latex] x, y [/latex]   [latex] a, b [/latex]   [latex] c, d [/latex]

Вывод по часовой стрелке

[latex] x, y [/latex]   [latex] a, b [/latex]   [latex] c, d [/latex]

 -2 -2     4 1     -1 4   ( 4 1)     (-2 -2 )    ( -1 4)
-2 -2     -1 4      4 1   ( 4 1)     (-2 -2 )    ( -1 4)
 4 1      -2 -2   -1 4   ( 4 1)     (-2 -2 )    ( -1 4)
 4 1     -1 4     -2 -2   ( 4 1)     (-2 -2 )    ( -1 4)
-1 4     -2 -2     4 1   ( 4 1)     (-2 -2 )    ( -1 4)
-1 4      4 1      -2 -2   ( 4 1)     (-2 -2 )    ( -1 4)

Код

Решение

В задаче не указано, с какой вершины следует выводить координаты, так что за точку отсчета берется крайняя правая. Для этого находим большее из  [latex] x, c, d [/latex]. Из оставшихся двух точек находим нижнюю, находя меньшее значение по оси ординат. Поскольку значения по оси ординат могут совпадать, проверяем также значение по оси абсцисс и выбираем меньшее из двух.

Так как точек три и у каждой есть два варианта расположения относительно двух других, в программе используется 6 if-ов.

Решение на ideone.

Related Images:

One thought on “Ю2.18

Добавить комментарий