program Project1;
const
M = 7;
var
(*Исходный массив.*)
ArrSrc : array[1..M, 1..M] of Integer;
(*Массив, содержащий масимумы по диагоналям, параллельным гл. диагонали
и расположенным ниже её.*)
ArrRes : array[1..M - 1] of Integer;
(*i, j - индексы строк и столбцов в массиве ArrSrc.
k - индекс элементов массива ArrRes.*)
i, j, k : Integer;
(*Строка для организации цикла диалога с пользователем.*)
StrTmp : String;
begin
repeat
Writeln('Исходный массив:');
Randomize;
for i := 1 to M do begin
for j := 1 to M do begin
if j > 1 then Write(', ');
ArrSrc[i, j] := Random(10); (*0..9.*)
Write(ArrSrc[i, j]);
end;
Writeln;
end;
Writeln('Результирующий массив:');
for k := 1 to M - 1 do begin
ArrRes[k] := ArrSrc[1 + k, 1];
for i := 1 + k + 1 to M do begin
j := i - k;
if ArrSrc[i, j] > ArrRes[k] then ArrRes[k] := ArrSrc[i, j];
end;
if k > 1 then Write(', ');
Write(ArrRes[k]);
end;
Writeln;
Writeln('Повторить - Enter. Выход - любой символ + Enter.');
Readln(StrTmp);
until StrTmp <> '';
end.