Đây nè:
Code:uses crt;
type arr=array[1..10,1..10] of integer;
var a:arr;
i,j,x,y,n:integer;
dem,bd,kt:integer;
begin
textmode(c80);
clrscr;
n:=5;
dem:=0; bd:=1; kt:=n;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=(i-1)*n+j;
while bd<kt do
begin
for x:=bd to kt-1 do write(a[bd,x]:3);
for y:=bd to kt-1 do write(a[y,kt]:3);
for x:=kt downto bd+1 do write(a[kt,x]:3);
for y:=kt downto bd+1 do write(a[y,bd]:3);
inc(bd); dec(kt);
end;
readln;
end.