Регистрация
Войти
Стать экспертом Правила
Информатика

Составить программу, которая печатает true, если точка с координатами (х, у) принадлежит заштрихованной области, и false в противномМожно,пожалуйста,подробно

ОТВЕТЫ

На первой картинке мы имеем 3 прямые, образующие треугольник. По точкам определим их функции.

Вершины треугольника: (1; 4), (5; -4), (-5; -3).

Функция прямой по двум точкам:

Подставляем точки и получаем три функции:

Точка находится в области, если y > l2(x0) И y < l1(x) И y < l3(x).

Наэто выглядит так. (Выводить функции не надо, это делается автоматически)

def get_line_by_two_points(x0: float, y0: float, x1: float, y1: float):

   def line_y(x: float):

       return (x - x0)/(x1 - x0) * (y1 - y0) + y0

   return line_y

l1 = get_line_by_two_points(1, 4, 5, -4)

l2 = get_line_by_two_points(-5, -3, 5, -4)

l3 = get_line_by_two_points(1, 4, -5, -3)

x = int(input("Enter an X value: "))

y = int(input("Enter a Y value: "))

if y < l1(x) and y > l2(x) and y < l3(x):

   print("Point is in the space!")

else:

   print("Point is NOT in the space!")

Теперь у нас 4 прямые.

Мы имеем трапецию. Две прямые видны сразу:

Оставшиеся две найдем по двум точкам автоматически.

Код на :

def get_line_by_two_points(x0: float, y0: float, x1: float, y1: float):

   def line_y(x: float):

       return (x - x0)/(x1 - x0) * (y1 - y0) + y0

   return line_y

l1 = get_line_by_two_points(-3, 7, -6, 1)  # Левая наклонная

l2 = get_line_by_two_points(7, 1, 4, 7)  # Правая наклонная

x = int(input("Enter an X value: "))

y = int(input("Enter a Y value: "))

if 1 < y < 7 and y < l1(x) and y < l2(x):

   print("Point is in the space!")

else:

   print("Point is NOT in the space!")

===============================

Ваши оценки и отзывы помогаютоценить качество решения.

Если удовлетворил, не забудь выбрать его как "".

Успехов в учёбе!

831
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам