Сообщение от :
program pp;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=10;
m=10;
type
matrix = array[1..n,1..m] of integer;
var
T,X,final: matrix;
p,q : integer;
function max( a,b : integer) : integer;
begin
if (a>=b) then result:=a;
if (a<b) then result:=a;
end;
function BuildMatrix : matrix;
var
res : matrix;
i,j : integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
begin
res[1,1]:=t[1,1]; //(ïåðâûé ýëåìåíò)
res[1,j]:=res[1,j-1]+t[1,j];// (ïåðâàÿ ñòðîêà íà÷èíàÿ ñî âòîðîãî ýëåìåíòà)
res[i,1]:=res[i-1,1]+t[i,1] ;//(ïåðâûé ñòîëáåö íà÷èíàÿ ñî âòîðîãî ýëåìåíòà)
res[i,j]:=max(res[i-1,j],res[i,j-1])+t[i,j];// (âñå îñòàëüíûå ýëåìåíòû)
end;
end;
result:=res;
end;
procedure SwapRow(r1,r2:integer);
var
tmp : integer;
j : integer;
begin
for j:=1 to m do
begin
tmp:=t[r1,j];
t[r1,j]:=t[r2,j];
t[r2,j]:=tmp;
end;
end;
procedure PrintMAtrix(mat : matrix);
var
i,j : integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
begin
Write(mat[i,j],' ');
end;
Writeln;
end;
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
randomize;
Writeln('Start matrix T:');
for p:=1 to n do
begin
for q:=1 to m do
begin
t[p,q]:=random(10);
Write(t[p,q],' ');
end;
Writeln;
end;
x:=buildmatrix;
Writeln('Start matrix X:');
printmatrix(x);
final:=t;
for p:=1 to n do
begin
for q:=1 to m do
begin
swaprow(p,q);
if x[n,m]>buildmatrix[n,m] then
begin
final:=t;
x:=buildmatrix;
end;
end;
end;
writeln ('Final matrix T:');
printmatrix(final);
Writeln('FInal matrix X:');
printmatrix(x);
readln;
end.