Информатика, вопрос задал styles23 , 6 лет назад

Питон

Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.
Входные данные
Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала x -координата, затем – y -координата).

Выходные данные
Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.

Примеры
входные данные
-0.5 0
выходные данные
NO
входные данные
0.5 0.
выходные данные
YES

Приложения:

AJamshed: from math import atan2, degrees

def solve(x, y):
if x < -1 or x > 1:
return "NO"
if y < -1 or y > 1:
return "NO"

angle = degrees(atan2(y, x))

if angle > 135 and angle < 225:
return "NO"

return "YES"

x, y = map(float, input().split())

print(solve(x, y))
AJamshed: Если я правильно понял заштрихованная область это места закрашенные серым на картинке.
styles23: Синтаксическая ошибка(ы)
Sorry: IndentationError: expected an indented block (__tester__.python3, line 4)
AJamshed: Это ошибка табуляции. Чтобы исправить замени все пробелы в началах строк в таб.

Ответы на вопрос

Ответил NightCATBusya
0
x = float(input())
y = float(input())
if x ** 2 + y ** 2 >= 1:
print('NO')
elif -x ** 2 - y ** 2 >= -1:
print('NO')
else:
print('YES')
Графики не очень хорошо знаю, но думаю, что так.

styles23: Я не понимаю почему, но он выдает ошибку в 4 линии
Ответил AJamshed
0

Ответ:

from math import atan2, degrees

def solve(x, y):

if x < -1 or x > 1:

return "NO"

if y < -1 or y > 1:

return "NO"

angle = degrees(atan2(y, x))

if angle > 135 and angle < 225:

return "NO"

return "YES"

x, y = map(float, input().split())

print(solve(x, y))

Новые вопросы