Математика индексов матрицы
Общий код:
const
N = {size};
var
A: array [0..N - 1, 0..N - 1] of integer;
function Predicate(i, j: integer) := {predicate};
procedure Fill();
begin
for var i := 0 to N - 1 do
for var j := 0 to N - 1 do
if Predicate(i, j) then
A[i, j] := 1;
end;
procedure Print();
begin
for var i := 0 to N - 1 do
begin
for var j := 0 to N - 1 do
Write(A[i, j]:5);
Writeln();
end;
end;
begin
Fill();
Print();
end.
Диагональ | Формула предиката |
---|---|
главная | i = j
|
побочная | i = N - j - 1
|
диагональ, параллельная главной | i = j + D
|
диагональ, параллельная побочной | i = N - j - 1 + D
|
D - смещение вверх или вниз относительно диагонали (если D > 0, то смещение вниз, если меньше - вверх). Причина - ось Y направлена вниз.