June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,24 +1,18 @@
! MATRIX ARITHMETIC ;
BEGIN
INTEGER PROCEDURE LENGTH(A); REAL ARRAY A;
INTEGER PROCEDURE LENGTH(A); ARRAY A;
LENGTH := UPPERBOUND(A, 1) - LOWERBOUND(A, 1) + 1;
PROCEDURE MINOR(A, X, Y, MAT); REAL ARRAY A, MAT; INTEGER X, Y;
! Set MAT to the first minor of A dropping row X and column Y ;
PROCEDURE MINOR(A, X, Y, MAT); ARRAY A, MAT; INTEGER X, Y;
BEGIN
INTEGER I, J, M; M := LENGTH(A) - 1;
FOR I := 1 STEP 1 UNTIL M DO
INTEGER I, J, rowA, M; M := LENGTH(A) - 1; ! not a constant;
FOR I := 1 STEP 1 UNTIL M DO BEGIN
rowA := IF I < X THEN I ELSE I + 1;
FOR J := 1 STEP 1 UNTIL M DO
BEGIN
IF I < X AND J < Y THEN
MAT(I, J) := A(I, J)
ELSE IF I >= X AND J < Y THEN
MAT(I, J) := A(I + 1, J)
ELSE IF I < X AND J >= Y THEN
MAT(I, J) := A(I, J + 1)
ELSE ! I > X AND J > Y ;
MAT(I, J) := A(I + 1, J + 1)
END
MAT(I, J) := A(rowA, IF J < Y THEN J else J + 1);
END
END MINOR;
REAL PROCEDURE DET(A); REAL ARRAY A;
@ -68,18 +62,17 @@ BEGIN
REAL ARRAY A(1:SIZE, 1:SIZE);
INTEGER I, J;
FOR I := 1 STEP 1 UNTIL SIZE DO
FOR I := 1 STEP 1 UNTIL SIZE DO BEGIN
! may be need here: INIMAGE;
FOR J := 1 STEP 1 UNTIL SIZE DO
A(I, J) := INREAL;
A(I, J) := INREAL
END;
OUTTEXT("DETERMINANT ... : "); OUTREAL(DET (A), 10, 20); OUTIMAGE;
OUTTEXT("PERMANENT ..... : "); OUTREAL(PERM(A), 10, 20); OUTIMAGE;
END
! NOTE THAT THE FIRST INPUT IS THE SIZE OF THE MATRIX.
! FOR EXAMPLE:
COMMENT THE FIRST INPUT IS THE SIZE OF THE MATRIX, FOR EXAMPLE:
COMMENT
! 2
! 1 2
! 3 4