RosettaCodeData/Task/Averages-Simple-moving-average/Sidef/averages-simple-moving-average-2.sidef

20 lines
414 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
class sma_generator(period, list=[], sum=0) {
method SMA(number) {
list.append(number)
sum += number
if (list.len > period) {
sum -= list.shift
}
(sum / list.len)
}
}
var ma3 = sma_generator(3)
var ma5 = sma_generator(5)
for num (1..5, flip(1..5)) {
printf("Next number = %d, SMA_3 = %.3f, SMA_5 = %.1f\n",
num, ma3.SMA(num), ma5.SMA(num))
}