Составить программу для определения, принадлежит ли точка с координатами (X Y) области...

0 голосов
19 просмотров

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


Информатика (12 баллов) | 19 просмотров
0

помогите пожалуйста!!

Дан 1 ответ
0 голосов

Доброго времени суток!
Для начала немного поработаем над системой неравенств.

Дана система:
\left \{ {{x^2+y-1 \leq 4} \atop {y \geq \frac{x}{2}}} \right.
произведем несколько манипуляций с числами чтобы выявить абсолютные величины:
\left \{ {{y \leq 5-x^2} \atop {x \leq 2y}} \right.

опираясь на абсолютные величины мы смело можем сказать что справедливы все "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)) )<br>    {
        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; //выводим на экран код обработчика.<br>    
}


Удачи ;)




0

скинул )

0

Не пришло!

0

У вас есть почта или сидите в контакте?

0
[email protected] - моя почта :D
0

а извините сейчас))

0

Так-же есть icq, skype, palrigno, raidcall

0

отправил))

0

11-вариант

0

В оформлении задания вы, уважаемый, забыли указать квадрат для суммы >(

0

извиняюсь ))