По спіралі...

//http://www.cyberforum.ru/turbo-pascal/thread677819.html

//Заполните двухмерный массив Т[1..n,1..n] последовательными целыми числами

//от 1 до n2, расположенными по спирали, начиная с левого верхнего угла

//и продвигаясь по часовой стрелке:

// 1 2 3 4 5 6

//20 21 22 23 24 7

//19 32 33 34 25 8

//18 31 36 35 26 9

//17 30 29 28 27 10

//16 15 14 13 12 11

uses crt;

const nmax=20;

var a:array[1..nmax,1..nmax] of integer;

n,i,j,k,r : integer;

begin

clrscr;

repeat

write('Розмір матриці від 2 до ',nmax,' n=');

readln(n);

until n in [2..20];

r:=0;//расстояние от края до строки(столбца)

k:=0;//значение в ячейке 1...n*n

repeat

inc(r);

for i:=r to n-r+1 do begin inc(k,1);a[r,i]:=k end; //вправо

for i:=r+1 to n-r+1 do begin inc(k,1);a[i,n-r+1]:=k end; //вниз

for i:=n-r downto r do begin inc(k,1);a[n-r+1,i]:=k end;//влево

for i:=n-r downto r+1 do begin inc(k,1);a[i,r]:=k end;//вверх

until k=n*n;//дошли до центра

for i:=1 to n do

begin

for j:=1 to n do

write(a[i,j]:4);

writeln;

end;

readln

end.