Даны действительные числа [latex]x, y[/latex]. Определить, принадлежит ли точка с координатами [latex]x, y[/latex] заштрихованной части плоскости.
Вычислил уравнения прямых по формуле :
[latex]\frac{x-x_{a}}{x_{b}-x_{a}}=\frac{y-y_{a}}{y_{a}-y_{b}}[/latex]Получил уравнения :
[latex]y=2x+3[/latex], [latex]y=-x[/latex], [latex]y=\frac{x-1}{3}[/latex]Плоскость разделил на верхнюю и нижнюю части осью ox([latex]y\geq 0[/latex], [latex]y\leq 0[/latex]), при помощи первых двух уравнений выделил заштрихованную область в верхней части, при помощи первого и третьего соответственно в нижней(изменив знак «=» на «≥» или «≤»(в зависимости от того где должна лежать точка для выполнения условия) ).
Тесты:
[latex]x[/latex] | [latex]y[/latex] | Результат: |
-2 | -1 | Точка входит в заштрихованную область. |
-2 | -1.001 | Точка не входит в заштрихованную область. |
-2 | -0.999 | Точка не входит в заштрихованную область. |
-1 | 1 | Точка входит в заштрихованную область. |
-1.001 | 1 | Точка не входит в заштрихованную область. |
-1 | 1.001 | Точка не входит в заштрихованную область. |
-1 | 0.999 | Точка входит в заштрихованную область. |
1 | 0 | Точка входит в заштрихованную область. |
1 | -0.001 | Точка не входит в заштрихованную область. |
Сам код:
1 2 3 4 5 6 7 8 9 10 11 |
using namespace std; int main() { double x, y; cin >> x >> y; if(y>=0 && y<=-x && x>=(y-3)/2 || y<=0 && x>=(y-3)/2 && y>=(x-1)/3) cout << "Точка входит в заштрихованную область."; else cout << "Точка не входит в заштрихованную область."; return 0; } |
Для отправки комментария необходимо войти на сайт.