Записать условие, которое является истинным, когда точка с координатами (x, y) попадает в заштрихованные участки

введите сюда описание изображения

Записать условие, которое является истинным, когда точка с координатами (x, y) попадает в заштрихованные участки. Вот мои попытки кода но работает он не корректно,скорее всего ошибка в строке if (((x <= 1) && (y <= 1))||((x>=-1)&&(y>=-1))) но не понимаю что не так

#include <iostream>
#include <Windows.h>
using namespace std;

int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int x, y;
    cout << "Введіть х" << endl;
    cin >> x;

    cout << "Введіть y" << endl;
    cin >> y;
    if (((x <= 1) && (y <= 1))||((x>=-1)&&(y>=-1))) {
        cout << "умова істина" << endl;
    }
    else {
        cout << "умова хибна" << endl;
    }

 

    system("pause");
    return 0;
}

Ответы (1 шт):

Автор решения: wololo

Учитывая размеры заштрихованных областей, можно предположить, что входные данные являются числами с плавающей точкой. Поэтому необходимо объявить переменные x и y с соответствующим типом. Например, double:

double x, y;

Проверяем принадлежность точки (x, y) квадрату:

bool in_square = (-1 <= x && x <= 0) && (-1 <= y && y <= 0);

Проверяем принадлежность точки (x, y) треугольнику:

bool in_triangle = x >= 0 && y >= 0 && y <= 1 - x;

Проверяем, находится ли точка в закрашенной области:

bool result = in_square || in_triangle;
→ Ссылка