Это алгоритм построения магического квадрата нечетного порядка Магическая константа (сумма числе по строке, столбцу или диагоналям) может быть найдена по формуле Баше де Мезириака:
Ниже приведена программа на языке Pascal.ABC.
const k = 29;
var m, n, i, j: integer; a: array[1..k, 1..k] of integer;
procedure rule_f; begin if (i = 0) and (j = n + 1) then begin i := 2; j := n end else begin if i = 0 then i := n; if j = n + 1 then j := 1 end; if a[i, j] <> 0 then begin i := i + 2; j := j - 1; rule_f end else a[i, j] := m end;
procedure rule_b; begin i := i - 1; j := j + 1 end;
begin write('Введите целое нечетное число не меньше, чем 3: '); readln(n); if (n mod 2) = 0 then writeln('Ошибка: Вы ввели четное число.') else if n < 3 then writeln('Ошибка: число должно быть не меньше трех.') else begin for i := 1 to n do for j := 1 to n do a[j, j] := 0; i := 1; j := (n + 1) div 2; a[i, j] := 1; for m := 2 to sqr(n) do begin rule_b; rule_f end; writeln('Магический квадрат порядка ', n, ' с магической константой ', (n * (sqr(n) + 1)) div 2); for i := 1 to n do begin for j := 1 to n do write(a[i, j]:4); writeln end end end.
Тестовое решение:
Введите целое нечетное число не меньше, чем 3: 5 Магический квадрат порядка 5 с магической константой 65 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Если нужно сделать 1 или несколько альбомных листов в тексте, тогда нужно: Выделить мышкой текст на нужной странице (или на нескольких); Выполнить команду меню «Файл» -> «Параметры страницы»; На вкладке «Поля» выбрать альбомную ориентацию; В списке «Применить» выбрать «К выделенному тексту».
Ещё одним изменения ориентации одного или нескольких листов на альбомную в середине файла может стать создание новых разделов в нужных местах документа. Разделы создаются следующим образом: Необходимо установить курсор в самом конце страницы, после которой должен следовать альбомный лист; Выполнить команду меню «Вставка» -> «Разрыв»; В открывшемся окне выбрать новый раздел «Со следующей страницы» -> «ОК»; Дальше «Файл» -> «Параметры страницы» -> «Поля» -> ориентация «Альбомная».
Магическая константа (сумма числе по строке, столбцу или диагоналям) может быть найдена по формуле Баше де Мезириака:
Ниже приведена программа на языке Pascal.ABC.
const
k = 29;
var
m, n, i, j: integer;
a: array[1..k, 1..k] of integer;
procedure rule_f;
begin
if (i = 0) and (j = n + 1) then begin
i := 2;
j := n
end
else begin
if i = 0 then i := n;
if j = n + 1 then j := 1
end;
if a[i, j] <> 0 then
begin
i := i + 2;
j := j - 1;
rule_f
end
else
a[i, j] := m
end;
procedure rule_b;
begin
i := i - 1;
j := j + 1
end;
begin
write('Введите целое нечетное число не меньше, чем 3: ');
readln(n);
if (n mod 2) = 0 then writeln('Ошибка: Вы ввели четное число.')
else if n < 3 then writeln('Ошибка: число должно быть не меньше трех.')
else
begin
for i := 1 to n do
for j := 1 to n do
a[j, j] := 0;
i := 1;
j := (n + 1) div 2;
a[i, j] := 1;
for m := 2 to sqr(n) do
begin
rule_b;
rule_f
end;
writeln('Магический квадрат порядка ', n, ' с магической константой ',
(n * (sqr(n) + 1)) div 2);
for i := 1 to n do
begin
for j := 1 to n do write(a[i, j]:4);
writeln
end
end
end.
Тестовое решение:
Введите целое нечетное число не меньше, чем 3: 5
Магический квадрат порядка 5 с магической константой 65
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9