dim SD.storage$( 100) ' can call up to 100 versions, using ID to identify.. arrays are global. ' holds (space-separated) number of data items so far, current sum.of.values and current sum.of.squares for i =1 to 8 read x print "New data "; x; " so S.D. now = "; using( "###.######", standard.deviation( 1, x)) next i end function standard.deviation( ID, in) if SD.storage$( ID) ="" then SD.storage$( ID) ="0 0 0" num.so.far =val( word$( SD.storage$( ID), 1)) sum.vals =val( word$( SD.storage$( ID), 2)) sum.sqs =val( word$( SD.storage$( ID), 3)) num.so.far =num.so.far +1 sum.vals =sum.vals +in sum.sqs =sum.sqs +in^2 ' standard deviation = square root of (the average of the squares less the square of the average) standard.deviation =( ( sum.sqs /num.so.far) - ( sum.vals /num.so.far)^2)^0.5 SD.storage$( ID) =str$( num.so.far) +" " +str$( sum.vals) +" " +str$( sum.sqs) end function Data 2, 4, 4, 4, 5, 5, 7, 9