def max 1000 Class MovingAverage '================== indexbase 1 double average,invperiod,mdata[max] sys index,period method Setup(double a,p) sys i Period=p invPeriod=1/p index=0 average=a for i=1 to period mdata[i]=a next end method method Data(double v) as double sys i index++ if index>period then index=1 'recycle i=index+1 'for oldest data if i>period then i=1 'recycle mdata[index]=v average=average+invperiod*(v-mdata[i]) end method end class 'TEST '==== MovingAverage A A.Setup 100,10 'initial value and period A.data 50 '... print A.average 'reult 95