PASCAL
const
n=4;
var
a:array[1..n,1..n] of integer;
i,j:integer;
begin
// заполнение
for j:=1 to n do
if j mod 2=0 then
for i:=n downto 1 do a[i,j]:=j*n-i+1
else
for i:=1 to n do a[i,j]:=n*(j-1)+i;
// вывод
for i:=1 to n do begin
for j:=1 to n do Write(a[i,j]:3);
Writeln
end
end.
Результат
1 8 9 16
2 7 10 15
3 6 11 14
4 5 12 13
Замечание: значение n можно менять.