Построение новой матрицы из сумм значений соседей - PascalABC.NET
Формулировка задачи:
Дана целочисленная прямоугльная матрица размера mxn, заполненная случайными числами. Для каждого внутреннего элемента матрицы (то есть кроме крайних строк и столбцов) найти сумму значений его соседей, вывести эти суммы в виде матрицы.
Решение задачи: «Построение новой матрицы из сумм значений соседей»
textual
Листинг программы
var a,b:array[,] of integer; m,n,m1,n1,i,j,i1,j1,k,p:integer; begin repeat write('Количество строк m>3 m='); readln(m); until m>3; repeat write('Количество столбцов n>3 n='); readln(n); until n>3; setlength(a,m,n); m1:=m-2; n1:=n-2; setlength(b,m1,n1); randomize; writeln('Исходная матрица'); for i:=0 to m-1 do begin for j:=0 to n-1 do begin a[i,j]:=random(20); write(a[i,j]:3); end; writeln; end; i1:=-1; for i:=1 to m-2 do begin inc(i1); j1:=-1; for j:=1 to n-2 do begin inc(j1); b[i1,j1]:=0; for k:=i-1 to i+1 do for p:=j-1 to j+1 do b[i1,j1]:=b[i1,j1]+a[k,p]; b[i1,j1]:=b[i1,j1]-a[i,j]; end; end; writeln('Матрица сумм соседей'); for i:=0 to m1-1 do begin for j:=0 to n1-1 do write(b[i,j]:4); writeln; end; end.
Объяснение кода листинга программы
- Объявлены массивы a и b для хранения исходной и результирующей матриц соответственно.
- Задаются размеры исходной матрицы с помощью переменных m и n.
- Инициализируются размеры результирующей матрицы m1 и n1.
- Заполняется исходная матрица случайными значениями с помощью цикла и функции random.
- Задается начальное значение для индексов результирующей матрицы i1 и j1.
- Циклы перебирают все строки и столбцы результирующей матрицы.
- Для каждой ячейки результирующей матрицы вычисляется сумма значений ее соседей в исходной матрице.
- Результирующая матрица выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д