Pers.narod.ru. Алгоритмы. Элементы матрицы, все соседи которых больше их

В заданной матрице A[n,n] вывести те её элементы, все соседи которых больше данного элемента. Соседство учитывается только по горизонтали и вертикали.

Мне было лень обрабатывать с помощью условий особые случаи "соседства" элементов по краям матрицы (для первых и последних строки и столбца), я сделал так, как часто и поступают ленивые программисты на практике - просто описал матрицу с индексами строки и столбца 0..n+1 вместо 1..n и заполнил образовавшуюся "кайму" значениями MAXINT (максимальное целое, все целые будут меньше этого значения). Теперь "соседство" описывается элементарно одним условием.

const n=3;
var a:array [0..n+1,0..n+1] of integer;
 i,j,t:integer;

begin
 writeln ('Matrix:');
 for i:=1 to n do
 for j:=1 to n do read (a[i,j]);
 for j:=1 to n do begin
  a[0,j]:=MAXINT; a[n+1,j]:=MAXINT;
  a[j,0]:=MAXINT; a[j,n+1]:=MAXINT;
 end;
 writeln ('Items');
 for i:=1 to n do
 for j:=1 to n do begin
  t:=a[i,j];
  if (a[i-1,j]>t) and (a[i+1,j]>t) and (a[i,j-1]>t) and (a[i,j+1]>t)
  then write (t,' ');
 end;
 reset (input); readln;
end.

Рейтинг@Mail.ru

вверх гостевая; E-mail
Hosted by uCoz