program Project1;
const
//Количество строк и столбцов.
M = 7;
var
Arr : array[1..M, 1..M] of Integer;
i, j : Integer;
Min1, Min2 : Integer;
S : String;
begin
//Для побочной диагонали соотношение индексов удовлетворяет условию:
//i = M + 1 - j либо: j = M + 1 - i.
repeat
//Инициализируем генератор случайных чисел.
Randomize;
//Заполняем массив значениями и распечатываем его.
for i := 1 to M do begin
for j := 1 to M do begin
if i = M + 1 - j then begin
Arr[i, j] := 0; //Инициализируем нулями побочную диагональ.
end else begin
Arr[i, j] := 1 + Random(100); //Случайные числа из диапазона 1...100.
end;
if j > 1 then Write(', ');
Write(Arr[i, j]:3);
end;
Writeln;
end;
//Ищем наименьшее значение, расположенное выше побочной диагонали
//и наименьшее значение, расположенное ниже побочной диагонали.
Min1 := Arr[1, 1];
Min2 := Arr[M, M];
for i := 1 to M do begin
for j := 1 to M do begin
if i + j < M + 1 then begin
if Arr[i, j] < Min1 then Min1 := Arr[i, j]
end else if i + j > M + 1 then begin
if Arr[i, j] < Min2 then Min2 := Arr[i, j]
end;
end;
end;
//Показываем результат решения задачи.
Writeln('Минимальное значение выше побочной диагонали: ', Min1);
Writeln('Минимальное значение ниже побочной диагонали: ', Min2);
Writeln('Повторить - Enter, выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.
Следующий вариант
program Project1;
const
//Количество строк и столбцов.
M = 7;
var
Arr : array[1..M, 1..M] of Integer;
i, j : Integer;
Min1, Min2 : Integer;
S : String;
begin
//Для побочной диагонали соотношение индексов удовлетворяет условию:
//i = M + 1 - j либо: j = M + 1 - i.
repeat
//Инициализируем генератор случайных чисел.
Randomize;
//Заполняем массив значениями и распечатываем его.
for i := 1 to M do begin
for j := 1 to M do begin
if i = M + 1 - j then begin
Arr[i, j] := 0; //Инициализируем нулями побочную диагональ.
end else begin
Arr[i, j] := 1 + Random(100); //Случайные числа из диапазона 1...100.
end;
if j > 1 then Write(', ');
Write(Arr[i, j]:3);
end;
Writeln;
end;
//Ищем наименьшее значение, расположенное выше побочной диагонали.
Min1 := Arr[1, 1];
for i := 1 to M - 1 do
for j := 1 to (M + 1 - i) - 1 do
if Arr[i, j] < Min1 then
Min1 := Arr[i, j];
//Ищем наименьшее значение, расположенное ниже побочной диагонали.
Min2 := Arr[M, M];
for i := 1 + 1 to M do
for j := (M + 1 - i) + 1 to M do
if Arr[i, j] < Min2 then
Min2 := Arr[i, j]
;
//Показываем результат решения задачи.
Writeln('Минимальное значение выше побочной диагонали: ', Min1);
Writeln('Минимальное значение ниже побочной диагонали: ', Min2);
Writeln('Повторить - Enter, выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.