Не могу разобраться, почему так странно выводится матрица в пакете
Lib После вывода первой матрицы пишется строчка второй... пытался копаться в исходниках, подозреваю что дело в буфере, но опыта не хватает, чтобы поправить, подскажите, пожалуйста.
Программа:
Код:
MODULE DiaTest;
IMPORT Out := StdLog, Mat := LibMatrices;
PROCEDURE Do* ();
VAR
n, i: INTEGER;
s: POINTER TO ARRAY OF REAL;
A: Mat.Matrix;
BEGIN
n := 10;
NEW(s, n);
A := Mat.NewRC(n, n);
FOR i := 0 TO n - 1 DO
A[i][i] := 1;
END;
FOR i := 0 TO n - 2 DO
A[i][i + 1] := - 1;
A[i + 1][i] := - 1;
END;
Out.String(" -- 1 ВЫВОД -- "); Out.Ln;
Mat.WrtL(A, 4, 1, 10);
Out.String(" -- 2 ВЫВОД -- "); Out.Ln;
Mat.WrtL(A, 4, 1, 10);
END Do;
END DiaTest.
DiaTest.Do
Код:
-- 1 ВЫВОД --
(-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. )
( 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. )
-- 2 ВЫВОД --
(-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. , 0. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. ,-1. )
( 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,-1. , 1. )