1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.3 Упр.20 Задание 1 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 3.3 Упр.20 Задание 1 ГДЗ Семакин 10 класс (Информатика)

Задача

Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 20. Дана точка А(х, у). Определить, принадлежит ли она прямоугольнику с вершинами в точках (х1, у1), (x2, у2), (x3, y3), (x4, y4). *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-3/zad1/20 98

Подробный ответ

Прямоугольник задаётся четырьмя вершинами, поэтому достаточно проверить, лежит ли точка $$A(x,y)$$ внутри его границ. В приведённом решении сначала вводятся координаты четырёх вершин, затем координаты точки.

Далее для каждой стороны проверяется, находится ли точка по вертикали между соответствующими значениями $$y$$, и вычисляется абсцисса точки на стороне по формуле прямой:

$$x = \frac{(x_j-x_i)(y-y_i)}{y_j-y_i}+x_i$$

Если точка лежит между двумя соседними вершинами по оси $$y$$ и её $$x$$ не выходит за границу соответствующей стороны, то точка принадлежит прямоугольнику.

var n:=4;
var xp:=new real[n];
var yp:=new real[n];
Writeln(‘Введите парами координаты четырех вершин’);
for var i:=0 to n-1 do Read(xp[i],yp[i]);
var (x,y):=ReadReal2(‘Введите координаты точки:’);
var (i,j,c):=(0,n-1,False);
while i<n do begin
  if ((yp[i]<=y) and (y<yp[j]) or (yp[j]<=y) and (y<yp[i])) and
    (x<((xp[j]-xp[i])*(y-yp[i]))/(yp[j]-yp[i])+xp[i]) then c:=not c;
  j:=i; i:=i+1;
end;
if c then Writeln(‘принадлежит’)
else Writeln(‘Не принадлежит’)

Алгоритм использует проверку пересечения луча с границами многоугольника: если число пересечений нечётное, точка внутри фигуры, если чётное — снаружи. Для прямоугольника это даёт правильный результат.

Ответ: программа определяет, принадлежит ли точка прямоугольнику, и выводит «принадлежит» или «Не принадлежит».



Общая оценка
4.1 / 5
Другие учебники
Другие предметы