Mif 17.10

Задача

Принадлежит ли точка [latex]\left( x;y \right)[/latex] фигуре на рисунке?

2

 

Тесты

[latex]\left( x;y \right)[/latex] Ответ
1. (1;6) нет
2. (-5;3) нет
3. (0;0) нет
4. (3.5;1.7) да
5. (2;4) да

Код программы

ideone.com

Решение

Рисунок находится в I четверти, следовательно только точка с положительными [latex]x[/latex] и [latex]y[/latex] может принадлежать этому рисунку. Далее необходимо воспользоваться уравнением окружности [latex]\left(x-a \right)^2+\left(y-b \right)^2=R^2[/latex], т.к. центр окружности(сегмент которой изображен на рисунке) находится в начале координат формула имеет такой вид: [latex]x^2+y^2=R^2[/latex]. Также рисунок ограничен прямой [latex]y=3-x[/latex]. Если [latex]x>0[/latex] и [latex]y>0[/latex] ,  [latex]R\leq6[/latex] , [latex]y\geq3-x[/latex], то точка принадлежит фигуре на рисунке.

4 thoughts on “Mif 17.10

  1. — Зачем Вы проверяете x< =6 && y<=6? Разве фигура ограничена такими линиями?
    — Зачем вы используете модуль y>=abs(x-3)? Вы только что проверили, что х>=0, тогда зачем модуль?
    Вы пишите » Сегмент окружности ограничен хордой». Какая же это хорда? Хорда соединяет две точки на окружности. У Вас вульгарнейшая прямая [latex]y = 3 -x[/latex] без малейшей экзотики.
    — Не нужно дважды говорить «NO». Просто сделайте одно условие, со всеми Вашими четырьмя границами и скажите «нет» если нет, «да» если да, а остальное от лукавого (Мф, 5, 37).

    Кстати! Самое главное забыл. Молодец! Программа работает абсолютно правильно. Так что у нас просто рефакторинг и оптимизация кода.

  2. Хорошо. Зачтено.

    Но у меня всё ещё осталось замечание по этой проверке — sqrt(x*x+y*y)<=6. Очень неудачно сформулировано условие - придётся каждый раз долго и с погрешностями вычислять значение корня квадратного. А зачем? Разве в неравенстве для задания круга есть какой-то корень?

Добавить комментарий