РЕАЛЬНО ХЕЛП, САМА НИКАК НЕ МОГУ ОАОАОАОАО

MashaBelous MashaBelous    2   05.06.2020 19:27    0

Ответы
10012011 10012011  13.08.2020 11:54

Эти прямые, записанные как функции f(x):

f1(x) = ax + b

f2(x) = cx + d

В точке пересечения прямых значения функций равны. Поэтому, приравняем их друг другу и решим получившееся уравнение:

ax + b = cx + d

ax - cx = d - b

(a - c)*x = d - b

x = (d - b) / (a - c)

Так находится координата икс точки пересечения. Далее находится игрек простой подстановкой найденного значения икс в любую из двух исходных функций (пускай в первую функцию).

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

1) Если a = c но b ≠ d. Такие прямые параллельны друг другу, и не имеют точек пересечения. При попытке решения уравнения (см.выше) иксы сократятся, и получится всегда (при любом икс) неверное равенство вида 0 = b - d.

2)  Если a = c и b = d. То есть, были введены одинаковые уравнения прямых (задана дважды одна и та же прямая, т.е. все точки этих уравнений совпадают). При попытке решения уравнения (см.выше) иксы сократятся, и b, d -тоже, и получится всегда (при любом икс) верное равенство вида 0 = 0.

Сама программа (на Паскале):

var

x, y, a, b, c, d: real;

begin

Writeln('Ввод коэффициентов уравнений двух прямых:');

Write('a= ');

Read(a);

Write('b= ');

Read(b);

Write('c= ');

Read(c);

Write('d= ');

Read(d);

if a = c then

begin

if b = d then

Writeln('Задана дважды одна и та же прямая. Все точки совпадают.')

else

Writeln('Заданы параллельные прямые. Точек пересечения нет.');

exit

end;

x := (d - b) / (a - c);

y := a * x + b;

Writeln('Координаты точки пересечения прямых:');

Writeln('x= ', x);

Writeln('y= ', y);

end.

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