Скачиваний:
46
Добавлен:
10.02.2014
Размер:
23.04 Кб
Скачать

var

direction: Boolean; //направление движения по диагонали (вверх или вниз)

i,j,k: integer; //счетчики i и j – номера ячеек заполняемого массива, k – вставляемая в массив цифра (растет вверх)

a : array[1..8,1..8] of integer; //сам массив-матрица

begin

direction := true;//труе значит идем вверх. Ложь – значит идем вниз.

i:=1; //начальные параметры

j:=1;

for k:=1 to 36 do //до 36, а остальное (от 37 до 64) заполняется синхронно с от 1 до //29. Главная диагональ (29-36 заполняется два раза одинаковыми значениями – //издержка алгоритма)

begin

a[i,j]:=k; //заполняем верхнюю половину

a[9-i,9-j]:=65-k; //и одновременно нижнюю

if direction then //если дирекшион=правда, то идем вверх

begin

inc(i); //то же самое, что и:=и+1

dec(j); //то же самое, что жи:жи-1

end

else

begin//если дирекшион=ложь, идем вниз

dec(i);

inc(j);

end;

if j=0 then//если вышли за матрицу, возвращаемся в ее пределы и меняем направление

begin

j:=1; direction:=not(direction); end;

if i=0 then

begin

i:=1; direction:=not(direction); end;

end;

WriteLn;//выводим массив на экран. Построчно (а иначе как еще?)

for j:=1 to 8 do

begin

for i:=1 to 8 do Write(a[i,j]:4);

WriteLn; end;

ReadLn; end.