По спіралі...
//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.