Задана произвольная случайным образом заполненная квадратная матрица размером 17x17. Расположить элементы матрицы "улиткой"

"Улитка" - расположение элементов массива в следующем порядке - меньший порядковый номер означает меньшее значение элемента. Пример для матрицы 5x5: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9

code: #pascal
Program fail1;
var i,j,a,max:integer;    m:array[1..20,1..20] of integer;
                          v:array[1..290] of integer;
begin
randomize;
{a:=random(30)+1; }
 
 
 max:=5;
for i:=1 to 17 do
for j:=1 to 17 do begin inc(a);  m[i,j]:=a;           end;
 
a:= 0;     {zapisi   }
for i:=1 to 17 do
for j:=1 to 17 do begin inc(a); v[a]:=m[i,j];   end;
 
a:= 0;
for j:=1     to 17 do begin inc(a); m[1,j]:=v[a]; end;
for i:=2     to 17 do begin inc(a); m[i,17]:=v[a]; end;
for j:=16 downto 1 do begin inc(a); m[17,j]:=v[a]; end;
for i:=16 downto 2 do begin inc(a); m[i,1]:=v[a]; end;
 
for j:=2     to 16 do begin inc(a); m[2,j] :=v[a]; end;
for i:=3     to 16 do begin inc(a); m[i,16]:=v[a]; end;
for j:=15 downto 2 do begin inc(a); m[16,j]:=v[a]; end;
for i:=15 downto 3 do begin inc(a); m[i,2] :=v[a]; end;
 
for j:=3     to 15 do begin inc(a); m[3,j] :=v[a]; end;
for i:=4     to 15 do begin inc(a); m[i,15]:=v[a]; end;
for j:=14 downto 3 do begin inc(a); m[15,j]:=v[a]; end;
for i:=14 downto 4 do begin inc(a); m[i,3] :=v[a]; end;
 
for j:=4     to 14 do begin inc(a); m[4,j] :=v[a]; end;
for i:=5     to 14 do begin inc(a); m[i,14]:=v[a]; end;
for j:=13 downto 4 do begin inc(a); m[14,j]:=v[a]; end;
for i:=13 downto 5 do begin inc(a); m[i,4] :=v[a]; end;
 
for j:=5     to 13 do begin inc(a); m[5,j] :=v[a]; end;
for i:=6     to 13 do begin inc(a); m[i,13]:=v[a]; end;
for j:=12 downto 5 do begin inc(a); m[13,j]:=v[a]; end;
for i:=12 downto 6 do begin inc(a); m[i,5] :=v[a]; end;
 
for j:=6     to 12 do begin inc(a); m[6,j] :=v[a]; end;
for i:=7     to 12 do begin inc(a); m[i,12]:=v[a]; end;
for j:=11 downto 6 do begin inc(a); m[12,j]:=v[a]; end;
for i:=11 downto 7 do begin inc(a); m[i,6] :=v[a]; end;
 
for j:=7     to 11 do begin inc(a); m[7,j] :=v[a]; end;
for i:=8     to 11 do begin inc(a); m[i,11]:=v[a]; end;
for j:=10 downto 7 do begin inc(a); m[11,j]:=v[a]; end;
for i:=10 downto 8 do begin inc(a); m[i,7] :=v[a]; end;
 
for j:=8     to 10 do begin inc(a); m[8,j] :=v[a]; end;
for i:=9     to 10 do begin inc(a); m[i,10]:=v[a]; end;
for j:=9  downto 8 do begin inc(a); m[10,j]:=v[a]; end;
for i:=9  downto 9 do begin inc(a); m[i,8] :=v[a]; end;
 
inc(a); m[9,9] :=v[a];
 
 
for i:=1 to 17 do begin writeln;
for j:=1 to 17 do write (m[i,j]:4); end;
writeln;   writeln;
 
readln;
end.      
Поделиться:

Похожие статьи: