Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.
uses crt;
const
nn = 10;
type
Matrix = array[1..NN,1..NN+1] of real;
(* построчный ввод матрицы *)Procedure ReadMatr(var A:Matrix; var n:word );
var
i, j, m: word;
beginrepeat
write('Введите количество линейных уравн. в системе: '); readln(N)
until (N>0) and (N<=NN);
m:=n+1;
For i:=1to n dobeginFor j:=1to m dobegin
write('A[',i,j,']= '); readln(A[i,j])
endendend;
(* построчный вывод матрицы *)Procedure PrintMatr(A:Matrix; n:word);
Var
i, j, m: word;
begin
m:=n+1;
For i:=1to n dobeginFor j:=1to m do write(A[i,j],' ');
writeln
endend;
procedure GaussM(a:matrix;n:word; var s:byte; var x:arrayof real);
var
i, k, j: byte;
m, t: real;
begin
i:=1;
s:=1;
repeat
j:=i+1;
k:=i;
m:=abs(a[i,i]);
repeatif m<abs(a[j,i]) thenbegin
m:=abs(a[j,i]);
k:=j;
end;
j:=j+1untilnot(j<=n);
if m<>0thenbegin
j:=i;
repeat
t:=a[i,j];
a[i,j]:=a[k,j];
a[k,j]:=t;
j:=j+1untilnot(j<=n+1);
k:=i+1;
repeat
t:=a[k,i]/a[i,i];
a[k,i]:=0;
j:=i+1;
repeat
a[k,j]:=a[k,j]-t*a[i,j];
j:=j+1untilnot(j<=n+1);
k:=k+1untilnot(k<=n);
endelsebegin
s:=0;
end;
i:=i+1untilnot((i<=n)and(s=1));
if s=1thenbegin
i:=n;
repeat
x[i]:=a[i,n+1];
j:=i+1;
while j<=n dobegin
x[i]:=x[i]-a[i,j]*x[j];
j:=j+1;
end;
x[i]:=x[i]/a[i,i];
i:=i-1untilnot(i>=1);
end;
end;
var
b: array[0..nn] of real;
a: Matrix;
n, j: word;
s: byte;
Begin
readmatr(a,n);
printmatr(a,n);
writeln('press any key'); readkey;
GaussM(a,n,s,b);
for j:=1to n do write (b[j],' ');
writeln('press any key for exit ...'); readkey
end.
--------------------
Помогая друг другу, мы справимся с любыми трудностями! "Не опускать крылья!" (С)