Я не совсем понял, зачем тебе тут randomize timer, но не суть. Сделал все в точности по коду.
42 = 32+8+2
то есть состоит оно из 2в пятой степени + 2 в третьей + 2 в первой
значит единицы надо ставить во второй (первая степень двоек), четвертый (третья степень двоек) и шестой (пятая степень двоек) разряды
Это писаться будет так:
101010
Ура!)
function IsOrtho(a: array[,] of integer): boolean;
begin
var n := a.RowCount - 1;
for var row1 := 0 to n do
for var row2 := 0 to n do
begin
var s := 0;
for var col := 0 to n do
s += a[row1, col] * a[row2, col];
if (row1 = row2) and (s <> 1) then
begin
IsOrtho := False;
Exit
end;
if (row1 <> row2) and (s <> 0) then
begin
IsOrtho := False;
Exit
end
end;
IsOrtho := True
end;
begin
var n := 5;
var a := ReadMatrInteger(n, n);
if IsOrtho(a) then
Println('Ортонормированная')
else
Println('Не ортонормированная')
end.
На pascalabc.net