S. Автоматизация безопасности

Группа исследователей собирается высадиться на остров невероятно ровной формы, но разведка при помощи спутника выяснила, что на острове есть зона зыбучих песков.

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

Автоматизация безопасности

Напишите программу, которая по координатам исследователя, будет сообщать о безопасности в этой точке.

Формат ввода

Два рациональных числа — координаты исследователя.

Формат вывода:

Одно из сообщений:

  • Опасность! Покиньте зону как можно скорее!
  • Зона безопасна. Продолжайте работу.
  • Вы вышли в море и рискуете быть съеденным акулой!

Пример

Ввод

3.5
-3.2

Вывод

Опасность! Покиньте зону как можно скорее!

Ввод

-5.2
3.4

Вывод

Зона безопасна. Продолжайте работу.

Решение

Задача скорее на школьный курс математики, чем на программирование.

Первым делом нам надо убедиться, что мы находимся в зеленой зоне (проверка принадлежности координат кругу).

Далее решение разбивается на 3 части – по одной для каждого сектора координатной сетки в верхней половине и одна общая для нижней половины:

  1. x > 0 и y > 0
    проверка принадлежности точки окружности с радиусом 5
  2. x < 0 и y > 0
    два диапазона – проверка принадлежности точки квадрату с координатами (-4, 5) (0, 0) или прямоугольному треугольнику чей катет описан уравнением 5x – 3y == -35, примыкаюшему слева к квадрату
  3. проверка принадлежности точки зоне описаной параболой с формулой 0.25x2 + 0.5x – 9
Посмотреть код

Решение

Python
x = float(input())
y = float(input()) 

if (x ** 2 + y ** 2) ** 0.5 > 10:
    print('Вы вышли в море и рискуете быть съеденным акулой!')
elif x >= 0 and y >= 0 and (x ** 2 + y ** 2) ** 0.5 <= 5:
    print('Опасность! Покиньте зону как можно скорее!')
elif -4 <= x < 0 and 0 <= y <= 5:
    print('Опасность! Покиньте зону как можно скорее!')
elif -7 <= x < -4 and 0 <= y <= 5 and (5 * x - 3 * y) > -35:
    print('Опасность! Покиньте зону как можно скорее!')
elif (0.25 * x ** 2 + 0.5 * x - 9) <= y <= 0:
    print('Опасность! Покиньте зону как можно скорее!')
else:
    print('Зона безопасна. Продолжайте работу.')
Подписаться
Уведомить о
guest
4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Даниил
Даниил
24.06.2024 09:45

В последнем условии ошибка. коэффициентом с для параболы является -8,75. Это легко проверить подставив х = 0. Тогда y=c и он больше -9.

Последний раз редактировалось 6 месяцев назад Даниил ем
Айдар
Айдар
07.07.2024 12:01

Можете пожалуйста объяснить, как получилось такое уравнения для треугольника? Немного не ясно просто)