1  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
2  REM
3  REM          STAT: STATISTICAL ANALYSIS OF LAB DATA
4  REM
5  REM          36344  (A720)  REV A -- 10/71
6  REM
7  REM ****  CONTRIBUTED PROGRAM  *************************************
10  REM H. DORFMAN, PIB, 8/1/69
20  REM STATISTICAL ANALYSIS OF LABORATORY DATA
30  REM STAT - COPYRIGHT 1971, POLYTECHNIC INSTITUTE OF BROOKLYN
100  GOTO 1750
101  DATA 0
160  DIM A[50],R[50],Y[51],W[50]
170  DIM Q[50]
175  LET O=0
180  LET Y[51]=0
190  FOR I=1 TO 50
200  LET A[I]=0
210  LET R[I]=0
220  LET Y[I]=0
230  LET W[I]=0
240  LET Q[I]=0
250  NEXT I
260  LET A9=0
270  LET A8=0
280  LET P=0
290  LET V=0
300  LET C=0
310  PRINT "WHAT IS THE TOTAL NO. OF STUDENTS AND THE CALC. VALUE";
320  INPUT B,K
330  PRINT 
340  FOR I=1 TO B
350  READ R[I],A[I]
360  NEXT I
370  PRINT "DATA LISTED BY STUDENT NUMBER"
380  PRINT "---- ------ -- ------- ------"
390  PRINT 
400  PRINT " STUDENT NO.","VALUE","ERROR","PERCENT ERROR"
410  PRINT 
420  FOR I=1 TO B
430  LET Z=A[I]-K
440  LET A8=A8+ABS(Z)/B
450  LET P=P+A[I]/B
460  LET W[I]=(ABS(Z/K))*100
470  LET A9=A9+W[I]/B
480  PRINT R[I],A[I],Z,W[I]
490  NEXT I
500  PRINT 
510  PRINT "THE ARITHMETIC MEAN (AVERAGE) IS   ";P
520  PRINT "THE AVERAGE ERROR (ABSOLUTE) IS    ";A8
530  PRINT "THE AVERAGE PERCENT ERROR IS       ";A9
540  PRINT 
550  PRINT 
560  PRINT " DO YOU DESIRE ADDITIONAL INFORMATION ? IF SO, TYPE"
570  PRINT " IN THE NUMBER OF YOUR CHOICE.";
580  INPUT N
590  IF N=2 THEN 1010
600  IF N=3 THEN 1200
610  IF N=4 THEN 1490
620  IF N=6 THEN 1730
630  PRINT 
640  PRINT "FOR THE DISTRIBUTION, WHAT LOWER LIMIT, UPPER LIMIT,"
650  PRINT "AND STEP DO YOU DESIRE ";
660  INPUT E,F,G
670  PRINT 
680  PRINT 
690  PRINT "EXPERIMENTAL VALUE DISTRIBUTION"
700  PRINT "------------ ----- ------------"
710  PRINT 
720  FOR I=1 TO B
730  LET M=0
740  IF A[I] >= F THEN 850
750  IF A[I] >= E THEN 770
760  LET Y[51]=Y[51]+1
770  FOR J=E TO (F-G) STEP G
780  LET M=M+1
790  IF A[I] >= J THEN 810
800  GOTO 830
810  IF A[I] >= (J+G) THEN 830
820  LET Y[M]=Y[M]+1
830  NEXT J
840  GOTO 860
850  LET Y[25]=Y[25]+1
860  NEXT I
870  LET M=1
880  PRINT "FROM","TO LESS THAN"," NO."," BAR GRAPH"
881  PRINT 
882  PRINT O,E,Y[51],
890  LET A5=Y[51]
900  GOSUB 1996
910  FOR J=E TO (F-G) STEP G
920  PRINT J,J+G,Y[M],
930  LET A5=Y[M]
940  GOSUB 1996
950  LET M=M+1
960  NEXT J
970  PRINT F,"INFINITY",Y[25],
980  LET A5=Y[25]
990  GOSUB 1996
1000  IF N=1 THEN 540
1010  PRINT 
1020  PRINT 
1030  PRINT "RANKING BY PERCENT ERROR"
1040  PRINT "------- -- ------- -----"
1050  PRINT 
1060  PRINT "RANK","STUDENT NO.","PERCENT ERROR"
1070  PRINT 
1080  FOR S=1 TO B
1090  LET T=1.E+25
1100  FOR I=1 TO B
1110  IF W[I] >= T THEN 1140
1120  LET T=W[I]
1130  LET V=I
1140  NEXT I
1150  PRINT S,V,W[V]
1160  LET W[V]=1.E+25
1170  NEXT S
1180  PRINT 
1190  IF N=2 THEN 540
1200  PRINT 
1210  PRINT 
1220  PRINT 
1230  PRINT "RANKING BY EXPERIMENTAL VALUE"
1240  PRINT "------- -- ------------ -----"
1250  PRINT 
1260  PRINT " RANK","STUDENT NO.","EXPER. VALUE"
1261  PRINT 
1270  FOR S=1 TO B
1280  LET T=1.E+25
1290  FOR I=1 TO B
1300  IF A[I] >= T THEN 1330
1310  LET T=A[I]
1320  LET V=I
1330  NEXT I
1340  PRINT S,V,A[V]
1350  LET Q[S]=A[V]
1360  LET A[V]=1.E+25
1370  NEXT S
1380  LET F=0
1390  LET G7=B/2
1400  FOR I=1 TO 31
1410  IF G7=I THEN 1470
1420  NEXT I
1430  LET Z2=INT(G7)
1440  LET Z4=INT(G7+1)
1450  LET F=(Q[Z2]+Q[Z4])/2
1460  GOTO 1540
1470  LET F=(Q[G7])
1480  IF N=3 THEN 540
1490  PRINT 
1500  PRINT 
1510  PRINT "OTHER INFORMATION"
1520  PRINT "----- -----------"
1530  PRINT 
1540  PRINT "THE MEDIAN VALUE IS  ";F
1550  PRINT "THE LOWEST VALUE IS  ";Q[1]
1560  PRINT "THE HIGHEST VALUE IS ";Q[B]
1570  LET M=0
1580  LET P9=F
1590  FOR I=1 TO B
1600  LET P3=Q[I]-P9
1610  LET M=M+P3
1620  NEXT I
1630  LET M7=M/B
1640  PRINT "THE MEAN DEVIATION (AVERAGE DEVIATION) IS"M7
1650  LET M=0
1660  FOR I=1 TO B
1670  LET P3=(Q[I]-P9)^2
1680  LET M=M+P3
1690  NEXT I
1700  LET M7=SQR(M/B)
1710  PRINT "THE STANDARD DEVIATION IS"M7
1720  IF N=4 THEN 540
1730  PRINT " THIS CONCLUDES THE RUN."
1740  STOP 
1750  PRINT " THIS PROGRAM WILL DO THE FOLLOWING:"
1760  PRINT "     1. PRINT OUT A TABLE OF EXPERIMENTAL VALUES, ERRORS,"
1770  PRINT "        AND PERCENT ERRORS INCLUDING AVERAGES FOR ALL."
1780  PRINT "     2. GIVE YOU A CHOICE OF ALL OF THE FOLLOWING:"
1790  PRINT "            CHOICE 1 - EXPERIMENTAL VALUE DISTRIBUTION"
1791  PRINT "                       INCLUDING A BAR GRAPH"
1800  PRINT "            CHOICE 2 - RANKING BY PERCENT ERROR"
1810  PRINT "            CHOICE 3 - RANKING BY EXPERIMENTAL VALUE"
1820  PRINT "            CHOICE 4 - OTHER INFORMATION"
1830  PRINT "            CHOICE 5 - ALL OF THE ABOVE CHOICES"
1840  PRINT "            CHOICE 6 - ENDS PROGRAM"
1850  PRINT "                  INSTRUCTIONS"
1860  PRINT " 1. LINES 100 TO 159 HAVE BEEN RESERVED FOR DATA."
1870  PRINT " 2. NOTE: THE FIRST DATA LINE MUST ALWAYS BE N0. 100"
1871  PRINT "          AND LINE 101 MUST ALWAYS BE USED."
1880  PRINT " 3. THERE IS ROOM FOR DATA FOR A MAXIMUM OF 50 STUDENTS."
1890  PRINT " 4. INPUT SHOULD BE IN THE FORM:"
1900  PRINT "    100 DATA STUDENT NO., VALUE, STUDENT NO., VALUE, ETC.,"
1910  PRINT " 5. STUDENT NUMBERS MUST RANGE FROM 1-50."
1920  PRINT " 6. OLD DATA IS ERASED BY INPUTING NEW DATA WITH THE SAME"
1930  PRINT "    LINE NUMBERS DURING SUBSEQUENT RUNS."
1940  PRINT " 7. IF THE FIRST RUN REQUIRES DATA LINES 100-110 AND THE"
1950  PRINT "    SECOND RUN REQUIRES LINES 100-109, LINE 110 IS TYPED"
1960  PRINT "    IN TO ERASE OLD DATA IN THAT LINE."
1970  PRINT " 8. NEVER TYPE SAVE DURING THE RUN OF ANY PART OF THIS"
1980  PRINT "    PROGRAM."
1990  PRINT 
1995  STOP 
1996  FOR I=1 TO A5
1997  PRINT "*";
1998  NEXT I
1999  PRINT 
2000  RETURN 
2001  END 
