Дан следующий программный код. Следует указать, какую функцию здесь выполняет каждая переменная (var), за что она отвечает. Хотя бы кратко.

const
n=3;n1=4;n2=6;n3=7;
type
matr=array[1..n,1..n1] of real;
matr1=array[1..n,1..n2] of real;
stolb=array[1..n2] of real;
matr2=array[1..n2,1..n2] of real;
{Объявление констант и переменных}
const
a1:matr1=((-1,0,0,1,1,0),(0,-1,0,-1,0,1),(0,0,-1,0,-1,-1));
q:stolb=(-120,40,30,0,0,0);
r:matr2=((0.25,0,0,0,0,0),(0,0.5,0,0,0,0),(0,0,0.333,0,0,0),(0,0,0,0.142,0,0),(0,0,0,0,0.25,0),(0,0,0,0,0,0.166));
var
a:matr;
b,c1:matr1;
c:matr2;
x:stolb;
maxabs,v:real;
O:array[1..n2,1..n3] of real;
i,j,k,l,h:integer;
begin
{«Прямой ход»}
{Формирование матрицы А 3 х 4, в 4-ом столбце находятся свободные члены системы}
for i:=1 to n do
for j:=1 to n2 do
write('a[',i,'][',j,']=',a1[i,j]);
writeln;
for h:=1 to n do
begin
for i:=1 to n do
begin
for j:=1 to n do
a[i,j]:=a1[i,j];
if i=h then a[i,n1]:=1 else a[i,n1]:=0;
end;

for i:=1 to n do
begin
maxabs:=abs(a[i][i]);k:=i;
for l:=i+1 to n do
if abs(a[l][i])>maxabs then begin
maxabs:=abs(a[l][i]);
k:=l;
end;
if k<>i then for j:=i to n1 do
begin
v:=a[i][j];a[i][j]:=a[k][j];a[k][j]:=v; {Выбор рабочей строки матрицы}
end;

{Этап исключения хi из l-го уравнения с го}
v:=a[i][i];
for j:=i to n1 do a[i][j]:=a[i][j]/v;
for l:=i+1 to n do
begin
v:=a[l][i];
for j:=i+1 to n1 do
a[l][j]:=a[l][j]-a[i][j]*v;
end;
end;

{«Обратный ход», матрица R}
x[n]:=a[n][n1];
for i:=n-1 downto 1 do
begin
x[i]:=a[i][n1];
for j:=i+1 to n do x[i]:=x[i]-a[i][j]*x[j];
b[i,h]:=-x[i];
end;
end;

{Сформированная матрица В}
for i:=1 to n do
begin
for j:=n+1 to n2 do
b[i,j]:=-a1[i,j-n];
end;

for i:=1 to n do
for j:=1 to n2 do
begin
{S:=0;} c1[i,j]:=0;
for l:=1 to n2 do
c1[i,j]:=c1[i,j]+b[i,l]*r[l,j];
end;

{Матрица C}
for i:=1 to n do
for j:=1 to n2 do
c[i,j]:=a1[i,j];

for i:=n+1 to n2 do
for j:=1 to n2 do
c[i,j]:=c1[i-n,j];

{Матрица O}
for i:=1 to n2 do
begin
for j:=1 to n2 do
O[i,j]:=c[i,j];
O[i,n3]:=q[i];
end;

{«Прямой ход»}
for i:=1 to n2 do
begin
maxabs:=abs(O[i][i]);k:=i;
for l:=i+1 to n2 do
if abs(O[l][i])>maxabs then begin
maxabs:=abs(O[l][i]);
k:=l;
end;
if k<>i then for j:=i to n3 do
begin
v:=O[i][j];O[i][j]:=O[k][j];O[k][j]:=v; {Выбор рабочей строки матрицы}
end;
{Этап исключения хi из l-го уравнения с го}
v:=O[i][i];
for j:=i to n3 do O[i][j]:=O[i][j]/v;
for l:=i+1 to n2 do
begin
v:=O[l][i];
for j:=i+1 to n3 do
O[l][j]:=O[l][j]-O[i][j]*v;
end;
end;

{«Обратный ход»}
x[n]:=O[n2][n3];
for i:=n-1 downto 1 do
begin
x[i]:=O[i][n3];
for j:=i+1 to n2 do x[i]:=x[i]-O[i][j]*x[j];
end;

{Вывод полученного решения системы уравнений}
writeln;
for i:=1 to n2 do
write(x[i],' ');
writeln;
end.

ElenaAristova1501 ElenaAristova1501    1   17.03.2020 08:53    1

Другие вопросы по теме Информатика