38 lines
767 B
Plaintext
38 lines
767 B
Plaintext
#DEFINE CTAB CHR(9)
|
|
LOCAL lcList As String, i As Integer, n As Integer
|
|
n = 10
|
|
LOCAL ARRAY aa[n]
|
|
CLEAR
|
|
lcList = "90,47,58,29,22,32,55,5,55,73"
|
|
FOR i = 1 TO n
|
|
aa[i] = VAL(GETWORDNUM(lcList, i, ","))
|
|
ENDFOR
|
|
ShowOutput("Original", @aa)
|
|
k = n - 1
|
|
FOR i = 1 TO n - 1
|
|
ForwardDiff(@aa)
|
|
ShowOutput("Difference " + TRANSFORM(i), @aa)
|
|
ENDFOR
|
|
|
|
PROCEDURE ForwardDiff(a)
|
|
LOCAL i As Integer, n As Integer
|
|
n = ALEN(a)
|
|
LOCAL ARRAY b[n-1]
|
|
FOR i = 1 TO n - 1
|
|
b[i] = a[i+1] - a[i]
|
|
ENDFOR
|
|
DIMENSION a[n-1]
|
|
ACOPY(b, a)
|
|
ENDPROC
|
|
|
|
PROCEDURE ShowOutput(lcLabel, zz)
|
|
LOCAL i As Integer, n As Integer, lcTxt As String
|
|
n = ALEN(zz)
|
|
lcTxt = lcLabel + ":" + CTAB
|
|
FOR i = 1 TO n
|
|
lcTxt = lcTxt + TRANSFORM(zz[i]) + CTAB
|
|
ENDFOR
|
|
lcTxt = LEFT(lcTxt, LEN(lcTxt) - 1)
|
|
? lcTxt
|
|
ENDPROC
|