Заполнение матрицы по спирали
procedure TForm1.Button1Click(Sender: TObject);
var value,
i, j, k: integer;
begin i:=0; k:=0; value:=1;
{ генерация спирали }
while i < 100 do begin
inc(k);
{проходи по горизонтали "слева-направо"}
for j:=k to m-k+1 do begin
inc(i);
mas[k,j]:=value; inc(value)
end;
{проходи по вертикали "сверху-вниз"}
for j:=k+1 to n-k+1 do begin
inc(i);
mas[j,m-k+1]:=value; inc(value)
end;
{проходи по горизонтали "справа-налево"}
for j:=m-k downto k do begin
inc(i);
mas[n-k+1,j]:=value; inc(value)
end;
{проходи по вертикали "снизу-вверх"}
for j:=n-k downto k+1 do begin
inc(i);
mas[j,k]:=value; inc(value)
end
end;
{ вывод результатов генерации спирали }
for i := 1 to 10 do begin
for j := 1 to 10 do
label1.Caption:=label1.Caption+inttostr(mas[i,j])+' ';
label1.Caption:=label1.Caption+#13#10;
end;
end; |