Двумерная матрица: найти минимальную сумму из чисел стоящих на диагоналях параллельных побочной - Pascal
Формулировка задачи:
Дано A(6.6) Двумерная матрица из этой матрицы надо найти минимальную сумму параллельным побочной диагонали.
вот так нашел параллельную побочный диагонал дальше надо найти мин сумму
примерно вот так но надо параллельным побочной диагонали. а тут просто диагонал
for i:=-6+1 to 6-1 do zum[i]:=0; for i:=1 to 6 do for j:=1 to 6 do z[i-j]:=z[i-j]+x[i,j]; for i:=-6+1 to 6-1 do write(z[i]);
program gazya; const n=5; m=6; var a:array[1..6,1..6] of integer; min,i,j,s:integer; begin randomize; for i:=1 to 6 do begin for j:=1 to 6 do begin a[i,j]:=random(10); write(a[i,j]:2); end; writeln; end; for i:=1 to 6 do s:=s+a[i,i]+a[i,6-i+1]; writeln(s); min:=a[i-m+1,m]; for i:=i-m+1 to m do for j:=i-m+1 to m do if (j=i-i+1)and(a[i,j]<min) then min:=a[i,j]; writeln('min: ', min); end.
что не кто не может помочь?
Решение задачи: «Двумерная матрица: найти минимальную сумму из чисел стоящих на диагоналях параллельных побочной»
textual
Листинг программы
uses crt; const n=6; var a:array[1..n,1..n] of integer; i,j,k,z,sm,mn:integer; begin randomize; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(20); write(a[i,j]:3); end; writeln; end; for z:=n-1 downto -n+1 do//все диагонали, удаленные от побочной на z begin sm:=0; for j:=1 to n do if (j-z>0) and (j-z<=n) then sm:=sm+a[j-z,n-j+1]; writeln('Сумма ',n-z,' = ',sm); if j-z=1 then mn:=sm else if sm<mn then mn:=sm; end; writeln('Минимальная сумма на диагоналях, параллельных побочной=',mn) end.
Объяснение кода листинга программы
- Импортируется модуль crt для работы с консолью.
- Объявляется константа
n
со значением 6 для определения размера матрицы. - Объявляется двумерный массив
a
размером n x n для хранения целых чисел. - Объявляются переменные
i
,j
,k
,z
,sm
,mn
типа integer для использования в циклах и вычислениях. - Используется функция randomize для инициализации генератора случайных чисел.
- Для каждого элемента в матрице a[i, j] от 1 до n происходит следующее:
- Присваивается случайное целое число от 0 до 19 элементу a[i, j].
- Выводится значение элемента a[i, j] на экран с отступом в 3 символа.
- После заполнения матрицы выводится каждая строка для формирования двумерной матрицы.
- Выполняется цикл для каждой диагонали, параллельной главной диагонали матрицы:
- Инициализируется переменная sm для хранения суммы значений на текущей диагонали.
- Для каждого элемента j в диапазоне от 1 до n выполняется проверка:
- Если (j-z) больше 0 и (j-z) меньше или равен n, выполняется следующее:
- К сумме sm добавляется значение элемента a[j-z, n-j+1].
- Если (j-z) больше 0 и (j-z) меньше или равен n, выполняется следующее:
- Выводится сумма значений текущей диагонали на экран.
- Проверяется сумма на минимальное значение и обновляется переменная mn при необходимости.
- Выводится сообщение о минимальной сумме на диагоналях, параллельных побочной диагонали матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д