Найти минимум среди сумм элементов диагоналей, параллельных главной диагонали [Двумерный динамический массив] [Pascal]
Есть динамический массив
var a: array[,] of integer;
Вот так я задою его размерность
write('Задайте размерность матрицы: ');
read(n);
SetLength(a, n, n);
Дальше заполняю
writeln('Задайте элементы матрицы: ');
for i := 0 to n - 1 do
for k := 0 to n - 1 do
begin
write('a[', i, ' ', k, '] = ');
read(a[i, k]);
a[i, k] := a[i, k];
end;
Вопрос, как мне "Найти минимум среди сумм элементов диагоналей, параллельных главной диагонали ?" были примеры с обычными двумерными массивами где индекс начинается с 1-ы, пытался поправить под себя везде n-1 ставил, но что-то не помогло.
Ответы (1 шт):
Автор решения: RAlex
→ Ссылка
begin
var n := ReadInteger('n =');
var a := MatrRandom(n, n, -99, 99);
a.Println(5);
var smin := MaxInt;
// верхняя треугольноая матрица
for var k := 1 to n - 2 do
begin
var s := 0;
for var i := 0 to n - 1 - k do
s += a[i, i + k];
if s < smin then smin := s
end;
// нижняя треугольная матрица
for var k := 1 to n - 2 do
begin
var s := 0;
for var i := k to n - 1 do
s += a[i, i - k];
if s < smin then smin := s
end;
smin.Print
end.
