Составить программу для определения, принадлежит ли точка с координатами (X Y) области ограниченной неравенством { x²+(y-1)≤4   y≥x/2    находится на границе области или находится вне ее области 

Составить программу для определения, принадлежит ли точка с координатами (X Y) области ограниченной неравенством { x²+(y-1)≤4   y≥x/2    находится на границе области или находится вне ее области 
Гость
Ответ(ы) на вопрос:
Гость
Доброго времени суток! Для начала немного поработаем над системой неравенств. Дана система: [latex] \left \{ {{x^2+y-1 \leq 4} \atop {y \geq \frac{x}{2}}} \right. [/latex] произведем несколько манипуляций с числами чтобы выявить абсолютные величины: [latex] \left \{ {{y \leq 5-x^2} \atop {x \leq 2y}} \right. [/latex] опираясь на абсолютные величины мы смело можем сказать что справедливы все "y" и "x" значения которые удовлетворяют двум неравенствам (отсюдого она и система). Можно канечно пошаманить и решить систему до конца указав области значений обоих переменных, но мы этого делать не будем, иначе для чего нам компьютер с потенциально огромной вычислительной мощностью? Правильно! Поэтому мы заставим его решать нашу систему неравенств ;) программа будет написана на языке C++! #include // определяем коды, которые покажут нам результат работы функции. #define CODE_INCASE 1 #define CODE_ONLINE 2 #define CODE_OUTRANGE 0 #define CODE_ERROR -1 struct vector2 {     int x,y; }; unsigned char check_point(vector2 & point) {     if ((point.x < 2*point.y) && (point.y < 5-point.x^2)) //определяем принадлежность     {           return CODE_INCASE; // является исключительно вложенным и не пересекает границы     }     else if( ((point.x = 2*point.y) && (point.y <= 5-point.x^2))  || ((point.x <= 2*point.y) && (point.y = 5-point.x^2)) )     {         return CODE_ONLINE; // пересекает границы частично или полностью     }     else     {        return CODE_OUTRANGE; // не принадлежит     }     return CODE_ERROR; // код ошибки (в случае взбоя алгоритма определения значений) } void main() {     vector2 point1 = {-8, 12}; //тут мы задаем координату в виде простой линейной структуры.     std::cout << "{" << point1.x << "," << point1.y << "}, code " << check_point(point1) << std::endl; //выводим на экран код обработчика.      } Удачи ;)
Не нашли ответ?
Ответить на вопрос
Похожие вопросы