Определить,попадает ли точка с координатами (x,y) в заштрихованную область.

delphi 7

alex2132 alex2132    3   17.08.2019 13:28    3

Ответы
МилаКу МилаКу  05.10.2020 00:48

Объяснение:

Немного математики:

Вся заштрихованная область представляет собой решение некоторой системы уравнений. Например, I четверть координатной плоскости задается x > 0, y > 0. Этот случай относится к тому, что область принадлежит той самой I четверти.

Теперь у нас есть два варианта решения: проверить принадлежности x к отрезку (0; 7), а затем разбить на два условия: если точка принадлежит отрезку (0;5], то координата y должна принадлежать (0;5). Иначе если координата икс в отрезке [5;7), то координата y должна быть меньше некоторой линейной функции, проходящей через точки (5;5) и (7;0)

Второй вариант (он будет оптимальнее): сначала проверить принадлежность координаты y в отрезке (0;5). Если это так, то проверить выполнение условия 0 < x < f(y), где f(y) - это некоторая линейная функция.

Давайте найдем эту линейную функцию.

Если линейная функция задается уравнением y = kx + b, то справедлива система:

\left \{ {{5k +b =5} \atop {7k + b=0}} \right.

От второго отнимаем первое уравнение, получаем 2k = -5, или k = -2.5, а b будет при этом равно 17,5

Теперь найдем обратную функцию (решать будем по второму варианту)

y = -2.5x + 17.5\\2y = -5x + 35\\35 - 2y = 5x\\x = 7 - 0.4y

Теперь, точка считается внутри фигуры, если выполняется:

0 < y < 5

0 < x < 7 - 0.4y

Сама программа:

program task;

var x, y: real;

begin

writeln('Введите координаты точки х и y: ');

readln(x, y);

if ((y > 0) and (y < 5)) then begin

if ((x > 0) and (x < 7 - 0.4*y)) then writeln('Попадает')

else writeln('Не попадает')

end;

end.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика