Const n=5; var a:array[1..n,1..n] of integer; i,j,d,k,l,m:integer; begin k:=1; i:=1; j:=1; a[i,j]:=1; d:=n-1; for l:=1 to d do begin k:=k+1; j:=j+1; a[i,j]:=k; end; for m:=1 to n div 2 do begin for l:=1 to d do begin k:=k+1; i:=i+1; a[i,j]:=k; end; for l:=1 to d do begin k:=k+1; j:=j-1; a[i,j]:=k; end; d:=d-1; for l:=1 to d do begin k:=k+1; i:=i-1; a[i,j]:=k; end; for l:=1 to d do begin k:=k+1; j:=j+1; a[i,j]:=k; end; d:=d-1; end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end.
У вас есть число 137 если вам надо перевести его в какую-нибудь систему счисления, то нужно делить это число на номер системы, так если нужно перевести число 137 в ДВОичную ,то делим на 2 до тех пор, пока остатотк от деления не равен 1.(если в ТРОичную то на 3 и т.д.). начнём: 137 / 2 = 68 выписываем остаток (1) 68 / 2 = 34 выписываем остаток (0) 34 / 2 = 17 выписываем остаток (0) 17 / 2 = 8 выписываем остаток (1) 8 / 2 = 4 выписываем остаток (0) 4 / 2 = 2 выписываем остаток (0) 2 / 2 = 1 <== на этой единице заканчиваем деление, далее снизу вверх выписываем получившееся число : 001001; ответ: 001001
var a:array[1..n,1..n] of integer;
i,j,d,k,l,m:integer;
begin
k:=1;
i:=1; j:=1;
a[i,j]:=1;
d:=n-1;
for l:=1 to d do
begin k:=k+1; j:=j+1; a[i,j]:=k; end;
for m:=1 to n div 2 do
begin
for l:=1 to d do
begin k:=k+1; i:=i+1; a[i,j]:=k; end;
for l:=1 to d do
begin k:=k+1; j:=j-1; a[i,j]:=k; end;
d:=d-1;
for l:=1 to d do
begin k:=k+1; i:=i-1; a[i,j]:=k; end;
for l:=1 to d do
begin k:=k+1; j:=j+1; a[i,j]:=k; end;
d:=d-1;
end;
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end.
Результат:
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