Решить систему двух линейных уравнений с двумя неизвестными - Free Pascal
Формулировка задачи:
Решить систему двух линейных уравнений с двумя неизвестными x,y,
a,b,c,d,e,f-коэффициенты вводимые с клавиатуры:
{ax+by=c
{dx+ey=f
PS: сам пытался написать но запутался и не мало ошибок выдаёт
вот мой код если что:
Program SYSTEM;
procedure Korni(a,b,c1,d,e,c2:real;var x,y:real);
begin
if abs(a*e-d*b)<=0.0001 then write('Система не определена!')
else
begin
{приведение матрицы к треугольному виду}
{обнуляем коэффициент при х1 во 2 уравнении}
e:=b+e*(-a/d); c2:=c1+c2*(-a/d);
{ищем корни, начиная с последнего}
y:=c2/e;
x:=(c1-b*y)/a;
end;
end;
var a,b,h,d,e,f,x,y:real;
begin
writeln('Введите коэффициенты первого уравнения:');
readln(a,b,h);
writeln('Введите коэффициенты второго уравнения:');
readln(d,e,f);
Korni(a,b,h,d,e,f,x,y);
writeln('Корни системы:');
write('x=',x:0:2,' y=',y:0:2);
readln;
end.Решение задачи: «Решить систему двух линейных уравнений с двумя неизвестными»
textual
Листинг программы
var a1,b1,c1,a2,b2,c2,d,d1,d2,x,y:real;
begin
writeln('Введите коэффициенты первого уравнения:');
readln(a1,b1,c1);
writeln('Введите коэффициенты второго уравнения:');
readln(a2,b2,c2);
writeln('Система:');
write(a1:5:2,'x');
if b1<0 then writeln(b1:5:2,'y=',c1:5:2)
else writeln(' +',b1:5:2,'y=',c1:5:2);
write(a2:5:2,'x');
if b2<0 then writeln(b2:5:2,'y=',c2:5:2)
else writeln(' +',b2:5:2,'y=',c2:5:2);
writeln;
d:=a1*b2-a2*b1;
if d=0 then
begin
write('Решений нет');
readln;
exit
end;
d1:=c1*b2-c2*b1;
d2:=a1*c2-a2*c1;
x:=d1/d;
y:=d2/d;
writeln('x=',x:0:2);
writeln('y=',y:0:2);
end.
Объяснение кода листинга программы
- Ввод коэффициентов первого и второго уравнений.
- Вывод системы уравнений.
- Проверка наличия решений (определение значения det(A)).
- Вычисление значений x и y.
- Вывод значений x и y.