Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
127
Task/Statistics-Basic/Action-/statistics-basic.action
Normal file
127
Task/Statistics-Basic/Action-/statistics-basic.action
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
INCLUDE "H6:REALMATH.ACT"
|
||||
|
||||
DEFINE SIZE="10000"
|
||||
DEFINE HIST_SIZE="10"
|
||||
BYTE ARRAY data(SIZE)
|
||||
CARD ARRAY hist(HIST_SIZE)
|
||||
|
||||
PROC Generate()
|
||||
INT i
|
||||
|
||||
FOR i=0 TO SIZE-1
|
||||
DO
|
||||
data(i)=Rand(0)
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC CalcMean(INT count REAL POINTER mean)
|
||||
REAL tmp1,tmp2,r255
|
||||
INT i
|
||||
|
||||
IntToReal(0,mean)
|
||||
IntToReal(255,r255)
|
||||
FOR i=0 TO count-1
|
||||
DO
|
||||
IntToReal(data(i),tmp1)
|
||||
RealDiv(tmp1,r255,tmp2)
|
||||
RealAdd(mean,tmp2,tmp1)
|
||||
RealAssign(tmp1,mean)
|
||||
OD
|
||||
IntToReal(count,tmp1)
|
||||
RealDiv(mean,tmp1,tmp2)
|
||||
RealAssign(tmp2,mean)
|
||||
RETURN
|
||||
|
||||
PROC CalcStdDev(INT count REAL POINTER mean,sdev)
|
||||
REAL tmp1,tmp2,r255
|
||||
INT i
|
||||
|
||||
IntToReal(0,sdev)
|
||||
IntToReal(255,r255)
|
||||
FOR i=0 TO count-1
|
||||
DO
|
||||
IntToReal(data(i),tmp1)
|
||||
RealDiv(tmp1,r255,tmp2)
|
||||
RealSub(tmp2,mean,tmp1)
|
||||
RealMult(tmp1,tmp1,tmp2)
|
||||
RealAdd(sdev,tmp2,tmp1)
|
||||
RealAssign(tmp1,sdev)
|
||||
OD
|
||||
IntToReal(count,tmp1)
|
||||
RealDiv(sdev,tmp1,tmp2)
|
||||
Sqrt(tmp2,sdev)
|
||||
RETURN
|
||||
|
||||
PROC ClearHistogram()
|
||||
BYTE i
|
||||
|
||||
FOR i=0 TO HIST_SIZE-1
|
||||
DO
|
||||
hist(i)=0
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC CalcHistogram(INT count)
|
||||
INT i,index
|
||||
|
||||
ClearHistogram()
|
||||
FOR i=0 TO count-1
|
||||
DO
|
||||
index=data(i)*10/256
|
||||
hist(index)==+1
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC PrintHistogram()
|
||||
BYTE i,j,n
|
||||
INT max
|
||||
REAL tmp1,tmp2,rmax,rlen
|
||||
|
||||
max=0
|
||||
FOR i=0 TO HIST_SIZE-1
|
||||
DO
|
||||
IF hist(i)>max THEN
|
||||
max=hist(i)
|
||||
FI
|
||||
OD
|
||||
IntToReal(max,rmax)
|
||||
IntToReal(25,rlen)
|
||||
|
||||
FOR i=0 TO HIST_SIZE-1
|
||||
DO
|
||||
PrintF("0.%Bx: ",i)
|
||||
IntToReal(hist(i),tmp1)
|
||||
RealMult(tmp1,rlen,tmp2)
|
||||
RealDiv(tmp2,rmax,tmp1)
|
||||
n=RealToInt(tmp1)
|
||||
FOR j=0 TO n
|
||||
DO
|
||||
Put('*)
|
||||
OD
|
||||
PrintF(" %U",hist(i))
|
||||
IF i<HIST_SIZE-1 THEN
|
||||
PutE()
|
||||
FI
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC Test(INT count)
|
||||
REAL mean,sdev
|
||||
|
||||
PrintI(count)
|
||||
CalcMean(count,mean)
|
||||
Print(": m=") PrintR(mean)
|
||||
CalcStdDev(count,mean,sdev)
|
||||
Print(" sd=") PrintRE(sdev)
|
||||
CalcHistogram(count)
|
||||
PrintHistogram()
|
||||
RETURN
|
||||
|
||||
PROC Main()
|
||||
Put(125) PutE() ;clear screen
|
||||
MathInit()
|
||||
Generate()
|
||||
Test(100)
|
||||
PutE() PutE()
|
||||
Test(10000)
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue