Mif 17.5

Условие

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

рисунок 17.5

Входные данные

Координаты точки [latex]\left(x,y\right)[/latex] на плоскости.

Выходные данные

Если точка принадлежит фигуре, вывести «Принадлежит» (без кавычек), в противном случае — «Не принадлежит».

Задача взята отсюда.

Тесты

x y Вывод
1 1 -1 Принадлежит
2 0 0 Принадлежит
3 0 4 Принадлежит
4 5 0 Принадлежит
5 0 4.00001 Не принадлежит
6 -3 5 Не принадлежит
7 2 3 Принадлежит

Решение

Фигура в задаче представлена в виде двух четвертей окружностей, лежащих в I и IV четвертях с радиусами [latex] R1 [/latex] и [latex] R2 [/latex] , которые равны соответственно [latex] 4 [/latex] и [latex] 5 [/latex]. Центры окружностей находятся в начале координатных осей. Сразу после ввода координат точки выполняем проверку принадлежности фигуре, а именно: координата [latex]X\ge0[/latex] ? В случае отрицательного ответа программа выведет сообщение «Не принадлежит». Одновременно со знаком [latex]X[/latex] выполняется проверка с помощью формулы, полученной из уравнения окружности: [latex]{\left(x-{X}_{c}\right)}^{2}+{\left(y-{Y}_{c}\right)}^{2}\le{R}^{2}[/latex], где [latex]X_{c}[/latex] и [latex]Y_{c}[/latex] — координаты центра окружности. Если координаты точки проходят данную проверку для соответствующего радиуса, который зависит от знака [latex]Y[/latex], то точка принадлежит фигуре, в противном случае выведется сообщение «Не принадлежит».

Код

Код на сайте ideone.com находится здесь.

 

 

Related Images:

2 thoughts on “Mif 17.5

  1. — Не нужно два раза писать один и тот же код про «не принадлежит» 3 раза и 2 раза про «принадлежит». Нужно сформулировать одно условие в одном условном операторе с помощью логических операций «и» и «или».
    — Я бы сказал «поправьте отступы», но этот код Вам не понадобится.
    — По SVG. Вам нужно было написать код двух окружностей и одного прямоугольника (или модифицировать path, что короче, но не понятнее). Как Вам удалось вычислить, что радиус именно 79.999992? И прямоугольник у Вас начинается в x=»0.416812″ y=»-0.875109″. И координаты из образца Вы подкорректировали. Например вместо 20 поставили 19.791502, а вместо 320 сделали 319.750004. Я конечно не готов спорить, может так даже лучше. Но объясните, что Вы имели в виду? Вы же не запустили графический редактор, который там всё «тупо закосячил»?

    • Сформулировал всё в одном условии с помощью логических «и» и «или».
      Отступы поправил в коде. Так как условие довольно громоздкое, для удобства чтения использовал две строки.
      SVG исправил.
      Игорь Евгеньевич! Сегодня у меня целый день проблема с работой ideone. На одних и тех же тестах подряд выдаёт различные результаты. Также были неправильные результаты при использовании координат с большими значениями. Иногда (но не всегда) спасало обновление страницы. Подскажите, пожалуйста, это ошибка в моём коде или же проблема вышеупомянутого ресурса?

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