В прямоугольной матрице выявить все квадратные подматрицы, у которых суммы элементов обеих диагоналей равны. - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Задание: "В прямоугольной матрице выявить все квадратные подматрицы, у которых суммы элементов обеих диагоналей одинаковы."
В программе пошагово от самого 1 элемента берется подматрица(с 2 на 2 и так до d на d) и в ней считаются суммы диагоналей, но проблема в том, что с элементов ближе к правой и нижней стенки матрицы, подматрицы выходят за пределы самой матрицы и элементы за границей берутся соответственно за 0. Собственно помощь нужна с тем, как это дело ограничить. (Извиняюсь за изложение, не смог придумать как более доходчиво объяснить.)

Решение задачи: «В прямоугольной матрице выявить все квадратные подматрицы, у которых суммы элементов обеих диагоналей равны.»

textual
Листинг программы
//все элементы матрицы кроме последних строки и столбца
for i:=1 to n-1 do
for j:=1 to m-1 do
//все подматрицы, их нижние правые углы
for ii:=i+1 to n do
for jj:=j+1 to m do
if (ii-i in [2..d])and(ii-i=jj-j) then//входят в диапазон [2..d]
 begin

Объяснение кода листинга программы

  1. n - размер матрицы по первому измерению (количество строк)
  2. m - размер матрицы по второму измерению (количество столбцов)
  3. d - размерность матрицы (общая размерность матрицы, т.е. m*n)
  4. i - номер текущей строки
  5. j - номер текущего столбца
  6. ii - номер внутренней строки
  7. jj - номер внутреннего столбца
  8. [2..d] - диапазон чисел от 2 до d (включительно)
  9. if (ii-i in [2..d])and(ii-i=jj-j) then - проверка условия для каждой подматрицы
  10. (ii-i in [2..d]) - проверка, входит ли номер строки ii в диапазон [2..d]
  11. (ii-i=jj-j) - проверка, равны ли номера строк ii и jj, а также номера столбцов ii и j
  12. end if - завершение проверки условия для каждой подматрицы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы