Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
04.06.2015
Размер:
2.2 Кб
Скачать
program Z2V2;
uses crt;
type
mas = array[1..10] of real;
mat = array[1..10] of mas;
var
A,C: mat;
b,x,b1: mas;
d,s: real;
i,n,j,k: integer;
f: boolean;

procedure vvod(var n: integer; var b: mas; var A: mat);
var i,j: integer;
begin
write('‚ўҐ¤ЁвҐ а §¬Ґа­®бвм n='); readln(n);
writeln;
writeln('‚ў®¤ ¬ ваЁжл A:');
for i:=1 to n do
for j:=1 to n do
begin
write('A[',i,',',j,']='); readln(A[i,j]);
end;
writeln;
writeln('‚ў®¤ ўҐЄв®а  b:');
for i:=1 to n do
begin write('b[',i,']='); readln(b[i]); end;
writeln;
writeln('‚лў®¤ Ёб室­ле ¤ ­­ле:');
writeln('Њ ваЁж  A:');
for i:=1 to n do
begin
for j:=1 to n do
write(A[i,j]:8:3);
writeln;
end;
writeln('‚ҐЄв®а B:');
for i:=1 to n do
write(b[i]:8:3);
writeln;
readln;
end;

procedure vyvod(n: integer; x: mas);
var i,j: integer;
r: mas;
begin
writeln;
writeln('‚лў®¤ ўҐЄв®а  x:');
for i:=1 to n do
write(x[i]:8:3);
writeln;
for i:=1 to n do
begin
r[i]:=0;
for j:=1 to n do
r[i]:=r[i]+A[i,j]*x[j];
end;
for i:=1 to n do
r[i]:=r[i]-b[i];
writeln;
writeln('‚лў®¤ ўҐЄв®а -­Ґўп§ЄЁ r:');
for i:=1 to n do
write(r[i]:8:3);
writeln;
readln;
end;

begin
clrscr;
vvod(n,b,A);
f:=true; k:=1; C:=A; b1:=b;
while f do
begin
d:=A[k,k];
for i:=k to n do
begin
for j:=k to n do
A[i,j]:=A[i,j]/d;
b[i]:=b[i]/d;
end;
for i:=1 to n do
if i<>k then
begin
d:=-A[i,k];
for j:=1 to n do
A[i,j]:=A[i,j]+d*A[k,j];
b[i]:=b[i]+d*b[k];
end;
k:=k+1; f:=false;
for j:=1 to n do
f:=f or (A[k,j]<>0)
end;
for i:=n downto 1 do
begin
s:=0;
for j:=i+1 to n do
s:=s+x[j]*A[i,j];
x[i]:=(b[i]-s)/A[i,i];
end;
A:=C; b:=b1;
vyvod(n,x);
end.