Главная » Pascal, Исходники, Массивы » В двумерном массиве заменить все нулевые элементы суммой смежных
Дек
03

В двумерном массиве заменить все нулевые элементы суммой смежных

В массиве размерностью N*M заменить все ненулевые элементы заменить суммой смежных элементов ( по-вертикали, горизонтали и диагонали )

[sourcecode highlight=»60″ language=»css»]
uses
Crt;
const
n = 5;
m = 5;
var
A: Array[1..n, 1..m] of Integer;
i, j: Byte;

begin
ClrScr; Randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
A[i, j]:=Random(10);
Write(A[i, j]:4);
end;
Writeln;
end;

for i:=1 to n do
begin
Writeln;
for j:=1 to m do
begin
if A[i, j] = 0 then
begin
if ((i > 1 ) and (i < n)) and ((1 < j) and (j < m))
then A[i, j]:=A[i+1, j]+A[i-1, j]+A[i, j+1]+A[i, j-1]+A[i-1, j-1]+A[i-1, j+1]+A[i+1, j-1]+A[i+1, j+1]
else
if (i = 1) and ((j > 1) and (j < m))
then A[i, j]:=A[i, j-1]+A[i, j+1]+A[i+1, j-1]+A[i+1, j+1]+A[i+1, j]
else
if (i = n) and ((1 < j) and (j < m))
then A[i, j]:=A[i, j-1]+A[i, j+1]+A[i-1, j]+A[i-1, j-1]+A[i-1, j+1]
else
if (j = 1) and ((i > 1 ) and (i < n))
then A[i, j]:=A[i-1, j]+A[i+1, j]+A[i+1, j+1]+A[i-1, j+1]+A[i, j+1]
else
if (j = m) and ((i > 1 ) and (i < n))
then A[i,j]:=A[i-1, j]+A[i+1, j]+A[i-1, j-1]+A[i, j-1]+A[i+1 ,j-1]





else
if (j = 1) and (i = 1)
then A[i, j]:=A[i+1, j]+A[i, j+1]+A[i+1, j+1]
else
if (j = 1) and (i = n)
then A[i, j]:=A[i, j+1]+A[i-1, j]+A[i-1, j+1]
else
if (j = m) and (i = 1)
then A[i, j]:=A[i, j-1]+A[i+1, j]+A[i+1, j-1]
else
if (j = m) and (i = n)
then A[i, j]:=A[i-1, j]+A[i, j-1]+A[i-1, j-1];
end;
Write(A[i, j]:4);
end;
end;
end.
{ prepared special for www.kpeople.ru by AlexeyJava }
[/sourcecode]



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.