31 lines
894 B
Plaintext
31 lines
894 B
Plaintext
DIM A(9)
|
|
A() = 90.0, 47.0, 58.0, 29.0, 22.0, 32.0, 55.0, 5.0, 55.0, 73.0
|
|
PRINT "Original array: " FNshowarray(A())
|
|
PROCforward_difference(1, A(), B())
|
|
PRINT "Forward diff 1: " FNshowarray(B())
|
|
PROCforward_difference(2, A(), C())
|
|
PRINT "Forward diff 2: " FNshowarray(C())
|
|
PROCforward_difference(9, A(), D())
|
|
PRINT "Forward diff 9: " FNshowarray(D())
|
|
END
|
|
|
|
DEF PROCforward_difference(n%, a(), RETURN b())
|
|
LOCAL c%, i%, j%
|
|
DIM b(DIM(a(),1) - n%)
|
|
FOR i% = 0 TO DIM(b(),1)
|
|
b(i%) = a(i% + n%)
|
|
c% = 1
|
|
FOR j% = 1 TO n%
|
|
c% = -INT(c% * (n% - j% + 1) / j% + 0.5)
|
|
b(i%) += c% * a(i% + n% - j%)
|
|
NEXT
|
|
NEXT
|
|
ENDPROC
|
|
|
|
DEF FNshowarray(a())
|
|
LOCAL i%, a$
|
|
FOR i% = 0 TO DIM(a(),1)
|
|
a$ += STR$(a(i%)) + ", "
|
|
NEXT
|
|
= LEFT$(LEFT$(a$))
|