FILLARRAY function
Purpose: FILLARRAY will fill an INTEGER, SINGLE or DOUBLE data type array with values from a comma separated string.
Syntax: RetVal% = FILLARRAY(InputStr$, vt_ArrayType%, MaxCnt%, Array) Parameters:
|
Example:
DIM in$, i, j, k, y, f#
DIM d#[20,20]
'Create a test file(normally this file would be created by some other program)
OPEN "test.data" FOR OUTPUT AS FP1
PRINT #FP1,"1.1,3.3,5.5,7.7,9.9,11.11"
PRINT #FP1,"1.2,4.3,6.5,8.6,9.9,11.11"
PRINT #FP1,"5.2,4.4,6.4,3.7,2.9,12.11"
PRINT #FP1,"3.2,1.4,4.6,3.8,3.9,12.13"
PRINT #FP1,"4.2,2.4,6.4,3.5,2.9,10.11"
PRINT #FP1,"2.6,1.2,4.5,9.1,7.9,10.01"
CLOSE FP1
OPEN "test.data" FOR INPUT AS FP1
j = 20
i = 0
WHILE NOT
EOF(FP1)
LINE INPUT FP1, in$
y = FILLARRAY(in$, vt_DOUBLE, j, &(d#[i,0]))
i++
WEND
CLOSE FP1
PRINT "Input Matrix"
FOR i = 0 TO 5
FOR j = 0 TO 5
PRINT USING$("###.### " ,d#[i,j]);
NEXT
PRINT
NEXT
FOR i = 0 TO 4
IF d#[i,i] = 0 THEN
FOR k = i+1 TO 5
IF d#[k,i] <> 0. THEN
EXIT FOR
END IF
NEXT
IF k > 5 THEN
EXIT FOR
END IF
FOR j = 0 TO 5
SWAP d#[i,j], d#[k,j]
NEXT
END IF
FOR j = i+1 TO 5
f# = -d#[j,i]/d#[i,i]
FOR k = i TO 5
d#[j,k] = d#[j,k] + f# * d#[i,k]
IF ABS(d#[j,k]) < .00000001 THEN d#[j,k] = 0.
NEXT
NEXT
NEXT
PRINT
PRINT "Transformed Matrix"
FOR k = 0 TO 5
FOR j = 0 TO 5
PRINT USING$("####.### ", d#[k, j]);
NEXT
PRINT
NEXT
f# = 1.
FOR i = 0 TO 5
f# = f# * d#[i,i]
NEXT
PRINT
PRINT "Determinate = ";USING$("#####.#####", f#)
BCX Console Sample Programs using FILLARRAY function.