Основной код программы:
Program pr1;
Uses Crt, Dos, SLAE;
Const
nn=4;
Type
Matrix = array[1..nn,1..nn] of real; {матрица}
Vector = array[1..nn] of real; {столбец-вектор}
Var
a : matrix; {исходная матрица}
b,x : vector; {свободные члены, решения СЛАУ}
Eps : double; {точность вычислений}
{Использование матрицы-константы}
Procedure UseConstMatrix(var a:matrix);
Begin
a[1,1]:=7.5; a[1,2]:=1.8; a[1,3]:=-2.1; a[1,4]:=-7.7; b[1]:=1.1;
a[2,1]:=-10; a[2,2]:=1.3; a[2,3]:=-20; a[2,4]:=-1.4; b[2]:=1.5;
a[3,1]:=2.8; a[3,2]:=-1.7; a[3,3]:=3.9; a[3,4]:=4.8; b[3]:=1.2;
a[4,1]:=10; a[4,2]:=31.4; a[4,3]:=-2.1; a[4,4]:=-10; b[4]:=1.1;
End;
{Вывод исходной матрицы на экран}
Procedure PrintMatrix(n: integer; var a: matrix; var b: vector);
Var
i,j,r: integer;
Begin
clrscr;
writeln(' Исходная матрица: ');
writeln;
r:=WhereY;
gotoXY(2,r);
for i:=1 to n do
begin
gotoXY(i*6+5,r);
write(i);
gotoXY(1,r+i+1);
write(i:2);
end;
gotoXY((n+1)*6+6,r);
write('b');
for i:=1 to n do
begin
for j:=1 to n do
begin
gotoXY(j*6+1,r+i+1);
write(a[i,j]:7:2);
end;
gotoXY((n+1)*6+2,r+i+1);
write(b[i]:7:2);
end;
End;
{Вывод результатов}
Procedure PrintSolutions(n: integer; var x: vector);
Var
i,j,r: integer;
Begin
writeln(' Решение матрицы: ');
for i:=1 to n do
begin
writeln(' x',i,'= ', x[i]: 4 : 6);
end;
End;
{Введение точности вычислений с клавиатуры}
Procedure EnterAcc;
Begin
writeln;
writeln;
writeln(' Введите точность: ');
repeat
write(' >');
read(Eps);
until (Eps>0) and (Eps<1);
writeln;
End;
{Основная программа}
Begin
clrscr;
{Вывод исходной матрицы на экран}
UseConstMatrix(a);
PrintMatrix(nn,a,b);
readkey;
{Решение СЛАУ методом Гаусса}
EnterAcc;
Gauss(nn,a,b,Eps,x);
{Вывод результата}
PrintSolutions(nn,x);
readkey;
End.
Прикрепляю также сделанный модуль...
Сообщение отредактировано: Relrin -