Задана произвольная случайным образом заполненная квадратная матрица размером 17x17. Расположить элементы матрицы "улиткой"
Категория: Delphi/Pascal
2012-02-26 20:54:38
"Улитка" - расположение элементов массива в следующем порядке - меньший порядковый номер означает меньшее значение элемента. Пример для матрицы 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.
Поделиться: