profile
Опубликовано 6 лет назад по предмету Информатика от tyuirty09

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

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

    Дана система:
     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 <iostream>

    // определяем коды, которые покажут нам результат работы функции.
    #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; //выводим на экран код обработчика.
        
    }


    Удачи ;)




    1. Ответ
      Ответ дан Аккаунт удален
      Так-же есть icq, skype, palrigno, raidcall
    2. Ответ
      Ответ дан tyuirty09
      отправил))
    3. Ответ
      Ответ дан tyuirty09
      11-вариант
    4. Ответ
      Ответ дан Аккаунт удален
      В оформлении задания вы, уважаемый, забыли указать квадрат для суммы >(
Самые новые вопросы