Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
736
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

для которых длина перпендикуляра, опущенного из точки на прямую, меньше r и больше r, должны быть окрашены в разные цвета.

863. Пусть дана система линейных неравенств

a1 x + b1 y + c1 ≥ 0 a2 x + b2 y + c2 ≥ 0

. . . . . . .

am x + bm y + cm ≥ 0.

Каждое из неравенств этой системы определяет в координатной плоскости некоторую полуплоскость. Если какиелибо числа х и у удовлетворяют всем неравенствам системы, то точка (х, у) принадлежит пересечению указанных полуплоскостей. Граница этого пересечения может состоять из отрезков, полупрямых и целых прямых. В том случае, когда граница состоит только из отрезков, пересечение полуплоскостей является выпуклым многоугольником (мы здесь называем многоугольником не только границу, но и все множество

точек, охваченное границей). Обратно, любой выпуклый многоугольник, принадлежащий координатной плоскости, может быть описан системой линейных неравенств. Пусть A1,...,An -

последовательные вершины выпуклого многоугольника, из которых никакие три не лежат на одной прямой. Можно выписать уравнение a1x + b1 y + c1 = 0 прямой, проходящей через точки A1,A2 . Так как многоугольник выпуклый, то все A1, A2 , A3 ,...,An лежат в одной полуплоскости относительно этой прямой. Поэтому в качестве первого неравенства можно взять

a1x + b1 y + c1 0 или a1x b1 y c1 0

в зависимости от того, является или нет положительным числом результат подстановки в a1x + b1 y + c1 координат какой-либо из точек

A3 , A4 ,..., An . Аналогичным образом следует поступать с уравнениями

прямых, проходящих через точки A2 , A3 и т. д. (последние две точки -

An , A1 ).

Даны натуральные числа n, a0 ,..., a2n -1. Пары чисел ai , ai+ 1 (i

кратно 2) являются координатами точек. Рассматривается граница l выпуклого многоугольника с вершинами в точках (36, 30), (30, 27), (24, 30), (З0, 39). Построить l, а также точки, заданные последовательностью a0 ,..., a2n -1:

а) лежащие вне многоугольника;

б) лежащие внутри многоугольника, но не на l;

в) принадлежащие l (точки выделить цветом, отличным от цвета

l).

г) лежащие где-либо на плоскости; те точки, которые лежат внутри многоугольника, на его границе и вне его, должны иметь разные цвета, ни один из которых не совпадает с цветом границы.

864. Пусть две точки заданы своими координатами (x1, y1) и

(x2 , y2 ) . Прямая, проходящая через эти две точки может быть описана следующими параметрическими уравнениями:

x = x1 + (x2 x1 )t, y = y1 + ( y2 y1 )t .

При 0 < t < 1 точка (x, y) лежит внутри отрезка и делит его в отношении t /(1 - t); при t = 0 достигается конец отрезка (x1, y1) , при t

= 1 - конец (x2 , y2 ) . При t > 1 точка (x, y) лежит на прямой вне отрезка с той же стороны от (x1, y1) , что и (x2 , y2 ) ; при t < 0 - с противоположной стороны.

Даны натуральные числа x1, y1, x2 , y2 , действительное число

(0 ≤ < 1) . Построить отрезок с координатами концов (x1, y1) , (x2 , y2 )

и точку, делящую отрезок в отношении (1) .

865. Начертить узор, показанный на рис. 76. Узор образован 20 вложенными квадратами. Стороны первого квадрата параллельны осям

координат экрана и равны 60. Вершины каждого последующего квадрата - это точки на сторонах предыдущего квадрата, делящие эти стороны в отношении = 0.08 (см. предыдущую задачу).

Рис. 76 866. Начертить узор, повторяющий узор, описанный в

предыдущей задаче, но составленный из а) треугольников; б) пятиугольников;

в) шестиугольников.

867. Построить узор, показанный на рис. 77, используя алгоритм описанный в задаче 864.

Рис. 77

868. Даны натуральные числа x1, y1, x2, y2. Начертить штриховые линии между точками (x1, y1) и (x2, y2) так, как показано на рис. 78.

Способ определения координат точки, лежащей на отрезке с концами (x1, y1) и (x2, y2) и делящей отрезок в заданном отношении, см. в задаче 864.

Рис. 78

Рис. 79

869. Даны натуральные числа х1, у1, х2, у2, х3, у3, х4, у4. Построить две прямые, одна из которых проходит через точки с координатами (x1, y1) и (x2, y2) а другая - через точки с координатами (x1, y1) и (x2, y2).

Построить точку пересечения этих прямых, если она существует, и

определить, лежит ли точка пересечения внутри отрезков с концами

(x1, y1), (x2, y2) и (x3, y3), (x4, y4) или вне их (см. задачу 864).

870. Даны целые числа t1, t2, ..., t31. Последовательность значений t1, t2, ..., t31 задает график температур за март месяц, подобный показанному на рис. 79. Построить график температур. Отрезки прямых, лежащие выше горизонтальной прямой, соответствующей нулевой температуре, и лежащие ниже этой прямой, должны быть окрашены в разные цвета.

871. Даны натуральные числа х1, у1, х2, у2, х3, у3 . Построить отрезок с координатами концов (x1, y1) и (x2, y2), а также отрезок, параллельный и равный по длине первому отрезку; один конец отрезка должен иметь координаты (x3, y3), второй следует расположить:

а) по ту же сторону от (x3, y3), что и (x2, y2) от (x1, y1); б) с противоположной стороны.

Воспользоваться тем, что параметрические уравнения прямой, проходящей через точку (x3, y3) и параллельной прямой, проходящей через точки (x1, y1) и (x2, y2), могут иметь вид

x = x3+ (x2 - x1) t, y = y3+ (y2 - y1) t.

Координаты конца искомого отрезка вычисляются подстановкой значений t= 1 и t= -1. При t= 1 конец отрезка будет расположен на прямой с той же стороны от (x3, y3), что и точка (x2, y2) от точки (x1, y1); при t= -1 с противоположной.

872. Даны натуральные числа х1, у1, х2, у2, х3, у3. Построить отрезок с координатами концов (x1, y1) и (x2, y2).Через точку (x3, y3) провести отрезок, параллельный и равный по длине первому отрезку, таким образом, чтобы точка (x3, y3) делила искомый отрезок пополам (см. предыдущую задачу и задачу 864).

873. Даны натуральные числа xc, yc, h, w, x, y. Построить прямоугольник с центром в точке (xc , уc), высотой h и шириной w, а

также отрезок прямой с координатами концов (xc , уc) и (x, y). Отметить точку пересечения отрезка со стороной прямоугольника (рис. 80).

(x, y)

(xc , yc )

Рис. 80

874. Даны натуральные числа xc, yc, h, w, x, y. Построить прямоугольник с центром в точке (xc , уc), высотой h и шириной w, а также определить координаты хp, yp точки пересечения с прямоугольником невидимой прямой, проходящей через точки (xc , уc) и (x, y) (см. предыдущую задачу). Кроме того, построить:

а) отрезок прямой с координатами концов (xc , уc) и (xp , уp) (рис.

81, а);

б) отрезок прямой с координатами концов (x, у) и (xp , уp) (рис.

81, б).