Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) принадлежит закрашенной области, и false — в противном случае
Для данных областей составить линейную программу, которая печатает true, если точка с координатами (х, у) принадлежит закрашенной области, и false — в противном случае
Ответ(ы) на вопрос:
Гость
В таких задачах присутствует математическая часть значительного объема. В данном случае нужно "снять" с рисунка координаты вершин треугольника и построить по ним уравнения прямых, представляющих собой стороны треугольника. Затем составляется логическое выражение, описывающее область внутри треугольника (о границах ничего не сказано, поээтому далее считаем, что они в закрашенную область не входят, а если они нужны, неравенства надо сделать нестрогими).
1. Получаем координаты вершин треугольника
A(-5;-3), B(1;4), C(5;-4)
2. Составляем уравнения прямых AB, BC и CA
Общий вид уравнения, проходящего через две точки P и Q:
[latex]\displaystyle \frac{x-x_p}{x_q-x_p}= \frac{y-y_p}{y_q-y_p} [/latex]
Получаем три уравнения прямых:
[latex]AB: \quad \displaystyle \frac{x-5}{1+5}= \frac{y+3}{4+3} \to y= \frac{1}{6}(7x+17) \\ BC: \quad \displaystyle \frac{x-1}{5-1}= \frac{y-4}{-4-4} \to y= 6-2x \\ CA: \quad \displaystyle \frac{x-5}{-5-5}= \frac{y+4}{-3+4} \to y= -0.1x-3.5[/latex]
3. Составляем программу. В данном случае выбран язык системы PascalABC.Net
var
x,y:real;
begin
Write('Введите через пробел координаты точки x и y: ');
Read(x,y);
Writeln((y<(7*x+17)/6) and (y<6-2*x) and (y>-0.1*x-3.5))
end.
Тестовое решение:
Введите через пробел координаты точки x и y: 2 1.9
True
Не нашли ответ?
Похожие вопросы