Как вычислить, принадлежат ли точки коориднат заданному графику?

154
03 сентября 2021, 03:50

Всем привет! Дали такое задание:вычислить, принадлежат ли веденные координаты с клавиатуры данному графику. Вот мой график:

То есть точка с координатами (-2,1) принадлежит данному графику, а точка (0,5) не принадлежит, точка (1,1) так же не принадлежит.

У меня уже есть почти готовый код, но не получается задать такие условия, чтоб точки на отрезки [(-1,2),(3,2)] не принадлежали графику, как это сделать? То есть точка принадлежит графику, если она находится в закрашенной области.

Вот мой код:

#include <iostream>
using namespace std;
int main(){
    float x,y,k,z;
    bool bl;
    bl = true;
    int i;
    i=1;
    while(bl){
        cout << i<<")"<<"Enter x=";
        cin >> x;
        cout <<i<<")"<<"Enter y=";
        cin >> y;
        if(x>=-4 && x<=4 && y<=2 && y>=-1 && y<=(10+3*x)/2 && y<=11-3*x){
            if(y>=(2-2*x)/2 && y<-1+x){
                cout << "Наши точки: "<<"("<<x<<","<<y<<")"<<endl;
            }
        }
        else{
            cout << "Точки не принадлежат графику"<<endl;
        }
        i++;
    }
    return 0;
}
Answer 1

Ешьте слона по кусочку :) - будет понятнее и проще, типа:

bool in(double x, double y)
{
    if (y < -1 || x < -4 || x > 13./3. || y > 2) return false;
    if (x < -2 && y < 5+1.5*x) return true;
    if (x < -1 && y < 2) return true;
    if (x < 3 && y < (x-1)*(x-1)/2) return true;
    if (x < 13./3. && y < 9-x*2) return true;
    return false;
}

(не компилировал, так, просто набросал для понимания).

READ ALSO
В чём смысл std::forward при передаче параметров?

В чём смысл std::forward при передаче параметров?

В чём разница между следующими двумя способами передачи параметров?

164
Время на растягивание объекта ризинка

Время на растягивание объекта ризинка

Не совсем правильно растягивается, как сделать более плавно и что нужно поправить или добавить?

185
Замена иконки окна из внешней DLL

Замена иконки окна из внешней DLL

Есть консольное приложение, которое вызывает метод в сторонней DLLМетод открывает новое окно с дефолтной иконкой Windows

161