Составить программку, которая наполняет квадратную матрицу порядка п естественными числами 1,

Составить программку, которая наполняет квадратную матрицу порядка п естественными числами 1, 2, 3, ..., n2, записывая их в нее по спирали.
К примеру, для п = 5 получаем последующую матрицу:
1nbsp; nbsp; 2nbsp; nbsp; 3nbsp; nbsp; 4nbsp; nbsp; 5
16nbsp; nbsp; 17nbsp; nbsp; 18nbsp; nbsp; 19nbsp; nbsp; 6
15nbsp; nbsp; 24nbsp; nbsp; 25nbsp; nbsp; 20nbsp; nbsp; 7
14nbsp; nbsp; 23nbsp; nbsp; 22nbsp; nbsp; 21nbsp; nbsp; 8
14nbsp; nbsp; 12nbsp; nbsp; 11nbsp; nbsp; 10nbsp; nbsp; 9

Задать свой вопрос
1 ответ
const
nbsp;nbsp;nmax=20;
var
nbsp;nbsp;a: array[1..nmax,1..nmax] of byte;
nbsp;nbsp;n,i,j,c,k: byte;
begin
nbsp;nbsp;repeat
nbsp;nbsp;nbsp;nbsp;write(Введите размер матрицы n: );
nbsp;nbsp;nbsp;nbsp;readln(n);
nbsp;nbsp;until nlt;=20;
nbsp;
nbsp;nbsp;i:=1; j:=1; c:=0; k:=1;
nbsp;nbsp;repeat
nbsp;nbsp;nbsp;nbsp;//на право
nbsp;nbsp;nbsp;nbsp;while (klt;=n*n)and(jlt;=n-c) do
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;a[i,j]:=k;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;inc(j);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;inc(k);
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;//вниз
nbsp;nbsp;nbsp;nbsp;inc(i); dec(j);
nbsp;nbsp;nbsp;nbsp;while (klt;=n*n)and(ilt;=n-c) do
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;a[i,j]:=k;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;inc(i);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;inc(k);
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;//на лево
nbsp;nbsp;nbsp;nbsp;dec(j); dec(i);
nbsp;nbsp;nbsp;nbsp;while (klt;=n*n)and(jgt;=1+c) do
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;a[i,j]:=k;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dec(j);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;inc(k);
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;//ввысь
nbsp;nbsp;nbsp;nbsp;inc(c); inc(j); dec(i);
nbsp;nbsp;nbsp;nbsp;while (klt;=n*n)and(igt;=1+c) do
nbsp;nbsp;nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;a[i,j]:=k;
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;dec(i);
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;inc(k);
nbsp;nbsp;nbsp;nbsp;end;
nbsp;nbsp;nbsp;nbsp;inc(j); inc(i);
nbsp;nbsp;until kgt;n*n;
nbsp;
nbsp;nbsp;writeln(Матрица по спирали:);
nbsp;nbsp;for i:=1 to n do
nbsp;nbsp;begin
nbsp;nbsp;nbsp;nbsp;for j:=1 to n do
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;write(a[i,j]:4);
nbsp;nbsp;nbsp;nbsp;writeln;
nbsp;nbsp;end;
end.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт