home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Software / STATISTICS (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.8 KB  |  158 lines

  1. 80 POKE53280,1:POKE53281,1:PRINTCHR$(147)
  2. 90 DIMSA(300)
  3. 95 REM GENERAL INTRODUCTION
  4. 120 PRINT"[147]":POKE214,10:PRINT:POKE211,14:PRINT"STATISTICS[146]"
  5. 130 POKE214,12:PRINT:POKE211,17:PRINT"FOR[146]"
  6. 140 POKE214,12:PRINT:POKE211,10:PRINT"NON-STATISTICIANS[146]"
  7. 180 FORK=1TO2000:NEXT
  8. 200 PRINT"[147]":POKE214,4:PRINT:POKE211,14:PRINT"[159]THIS PROGRAM"
  9. 210 POKE214,5:PRINT:POKE211,13:PRINT"CALCULATES THE "
  10. 220 POKE214,6:PRINT:POKE211,12:PRINT"FOLLOWING VALUES:"
  11. 240 POKE214,10:PRINT:POKE211,15:PRINT"1. MEAN"
  12. 250 POKE214,12:PRINT:POKE211,15:PRINT"2. STANDARD"
  13. 260 POKE214,13:PRINT:POKE211,18:PRINT"DEVIATION"
  14. 290 POKE214,15:PRINT:POKE211,15:PRINT"3. MEDIAN"
  15. 300 POKE214,17:PRINT:POKE211,15:PRINT"4. RANGE"
  16. 310 POKE214,22:PRINT:POKE211,10:PRINT"PRESS 'C' TO CONTINUE"
  17. 320 GETZ$:IFZ$<>"C"THEN320
  18. 322 REM INSTRUCTIONS REQUEST
  19. 325 SUM=0:MEAN=0:DFF=0:SDDEV=0:RG=0
  20. 330 PRINT"[147]":POKE214,12:PRINT:POKE211,5:PRINT"DO YOU NEED INSTRUCTIONS (Y/N)?"
  21. 340 GOSUB7010
  22. 350 IFZ$="Y"THENGOSUB5010
  23. 355 REM DATA ENTRY
  24. 410 PRINT"[147]":POKE214,10:PRINT:POKE211,6:INPUT"ENTER SAMPLE SIZE";N
  25. 420 IFN>300ORN<=1THENFORI=1488TO1498:POKEI,32:NEXT:GOTO410
  26. 425 PRINT"[147]"
  27. 430 POKE214,2:PRINT:POKE211,1:PRINT"IF YOU MAKE AN ERROR,CONTINUE WITH"
  28. 440 POKE214,4:PRINT:POKE211,1:PRINT"DATA ENTRY. YOU CAN CORRECT LATER."
  29. 500 FORI=1TON
  30. 520 POKE214,9:PRINT:POKE211,10:PRINT"DATA ENTRY #    [157][157][157][157]";I;:INPUTR$
  31. 530 SA(I)=VAL(R$)
  32. 550 FORJ=1450TO1468:POKEJ,32:NEXTJ:NEXTI
  33. 555 REM ERROR CORRECTION REQUEST
  34. 560 PRINT"[147]":POKE214,12:PRINT:POKE211,2
  35. 561 PRINT"WISH TO MAKE ANY CORRECTIONS (Y/N)?"
  36. 570 GOSUB7010
  37. 580 IFZ$="Y"THENPRINT"[147]":GOTO6000
  38. 585 REM CALCULATION OF MEAN AND STD. DEVIATION
  39. 587 PRINT"[147]":POKE214,11:PRINT:POKE211,14:PRINT"PLEASE WAIT[146]"
  40. 588 POKE214,13:PRINT:POKE211,6:PRINT"STATISTICS BEING CALCULATED"
  41. 590 FORI=1TON
  42. 600 SUM=SUM+SA(I)
  43. 610 NEXTI
  44. 620 MEAN=SUM/N
  45. 630 FORI=1TON
  46. 640 DFF=DFF+(SA(I)-MEAN)^2
  47. 650 NEXTI
  48. 660 SDDEV=SQR(DFF/(N-1))
  49. 665 REM SORT OF DATA INTO NUMERIC ORDER
  50. 670 FL=0
  51. 680 FORI=1TON-1
  52. 690 IFSA(I)<=SA(I+1)THEN740
  53. 700 Q=SA(I)
  54. 710 SA(I)=SA(I+1)
  55. 720 SA(I+1)=Q
  56. 730 FL=1
  57. 740 NEXTI
  58. 750 IFFL=1THEN670
  59. 755 REM CALCULATION OF RANGE
  60. 760 RG=SA(N)-SA(1)
  61. 765 LR=SA(1)
  62. 767 HR=SA(N)
  63. 805 REM CALCULATION OF MEDIAN
  64. 810 IFN/2<>INT(N/2)THEN814
  65. 811 IFSA(N/2)=SA(N/2+1)THENMDD=SA(N/2)
  66. 812 IFSA(N/2)<>SA(N/2+1)THENMDD=(SA(N/2)+SA(N/2+1))/2
  67. 813 GOTO1310
  68. 814 MDD=SA(INT(N/2+1))
  69. 1290 REM PRINT RESULTS TO SCREEN
  70. 1310 PRINT"[147]":POKE214,3:PRINT:POKE211,10:PRINT"CALCULATION RESULTS"
  71. 1320 POKE214,4:PRINT:POKE211,9:PRINT"*********************"
  72. 1330 POKE214,6:PRINT:POKE211,7:PRINT"SAMPLE SIZE";SPC(10);N
  73. 1340 POKE214,8:PRINT:POKE211,7
  74. 1345 PRINT"MEAN(X BAR)";SPC(10);INT(MEAN*10000+.5)/10000
  75. 1350 POKE214,10:PRINT:POKE211,7
  76. 1355 PRINT"STD. DEVIATION";SPC(7);INT(SDDEV*10000+.5)/10000
  77. 1360 POKE214,12:PRINT:POKE211,7
  78. 1365 PRINT"MEDIAN";SPC(15);INT(MDD*10000+.5)/10000
  79. 1370 POKE214,14:PRINT:POKE211,7:PRINT"RANGE";SPC(16);RG
  80. 1375 POKE214,16:PRINT:POKE211,7:PRINT"LOWEST SAMPLE VALUE";SPC(2);LR
  81. 1377 POKE214,18:PRINT:POKE211,7:PRINT"HIGHEST SAMPLE VALUE";SPC(1);HR
  82. 1480 POKE214,22:PRINT:POKE211,13:PRINT"[158]   [146][159]"
  83. 1490 GETA$:IFA$=""THEN1490
  84. 1495 REM REQUEST TO CONTINUE OR END
  85. 1510 PRINT"[147]":POKE214,12:PRINT:POKE211,3
  86. 1520 PRINT"WISH TO PROCESS MORE DATA (Y/N)?"
  87. 1530 GOSUB7010
  88. 1535 IFZ$="N"THENPRINT"[147]":END
  89. 1540 FORI=1TON:SA(I)=0:NEXT:GOTO325
  90. 4900 REM INSTRUCTIONS SUBROUTINE
  91. 5010 PRINT"[147]"
  92. 5015 PRINT"THE MAXIMUM NUMBER OF ENTRIES YOU"
  93. 5020 PRINT"CAN MAKE IS 300. MINIMUM NUMBER IS 2."
  94. 5025 PRINT
  95. 5030 PRINT"THE MEAN IS THE ARITHMETIC AVERAGE"
  96. 5070 PRINT"OF THE NUMBERS YOU ENTER."
  97. 5075 PRINT
  98. 5100 PRINT"STANDARD DEVIATION IS A MEASURE OF"
  99. 5120 PRINT"HOW WIDELY YOUR NUMBERS SPREAD FROM"
  100. 5130 PRINT"THE AVERAGE."
  101. 5140 PRINTTAB(9);"PRESS ANY KEY FOR MORE[146][159]"
  102. 5150 GETA$:IFA$=""THEN5150
  103. 5155 PRINT"[147]"
  104. 5160 POKE214,1:PRINT:POKE211,6:PRINT"SINCE THE VALUES YOU ENTER TEND TO"
  105. 5180 POKE214,3:PRINT:POKE211,1:PRINT"FORM A BELL CURVE (NORMAL DIST.), THE"
  106. 5200 POKE214,5:PRINT:POKE211,1:PRINT"STD.DEVIATION IS A MEASURE OF THE AREA"
  107. 5220 POKE214,7:PRINT:POKE211,1:PRINT"UNDER THE BELL CURVE."
  108. 5230 POKE214,9:PRINT:POKE211,5:PRINT"NO.OF STD.DEV.";SPC(6);"% AREA"
  109. 5245 POKE214,10:PRINT:POKE211,5:PRINT"--------------";SPC(6);"------"
  110. 5250 PRINTTAB(10);"1";SPC(15);"68.3"
  111. 5260 PRINTTAB(10);"2";SPC(15);"95.5"
  112. 5270 PRINTTAB(10);"3";SPC(15);"99.7"
  113. 5280 PRINTTAB(10);"4";SPC(15);"99.9"
  114. 5290 PRINTTAB(9);"PRESS ANY KEY FOR MORE[146][159]"
  115. 5300 GETA$:IFA$=""THEN5300
  116. 5430 PRINT"[147]"
  117. 5435 POKE214,3:PRINT:POKE211,5:PRINT"THE MEDIAN IS THE VALUE AT THE"
  118. 5450 POKE214,5:PRINT:POKE211,1:PRINT"MID-POINT OF YOUR DATA."
  119. 5490 POKE214,9:PRINT:POKE211,5:PRINT"THE RANGE IS THE DIFFERENCE BETWEEN"
  120. 5510 POKE214,11:PRINT:POKE211,1:PRINT"YOUR LOWEST DATA VALUE AND THE HIGHEST."
  121. 5530 POKE214,13:PRINT:POKE211,1:PRINT"THE RANGE IS A QUICK-AND-DIRTY ESTIMATE"
  122. 5540 POKE214,15:PRINT:POKE211,1:PRINT"OF THE SPREAD. THE STD. DEVIATION IS"
  123. 5560 POKE214,17:PRINT:POKE211,1:PRINT"MORE RELIABLE."
  124. 5580 PRINTTAB(4);"PRESS 'S' TO START THE PROGRAM[146][159]"
  125. 5600 GETA$:IFA$=""OR(A$<>"S")THEN5600
  126. 5610 RETURN
  127. 5810 GETZ$:IFZ$=""OR(Z$<>"C"ANDZ$<>"N"ANDZ$<>"Q")THEN5810
  128. 5820 FL=0:IFZ$="N"THENFL=1:GOTO6130
  129. 5830 IFZ$="Q"THEN587
  130. 5840 PRINT"[147]"
  131. 5900 REM ERROR CORRECTION SUBROUTINE
  132. 6000 POKE214,12:PRINT:POKE211,3:PRINT"REMEMBER INCORRECT SAMPLE # (Y/N)?"
  133. 6010 GOSUB7010
  134. 6020 IFZ$="N"THEN6130
  135. 6030 PRINT"[147]":POKE214,6:PRINT:POKE211,6:INPUT"WHAT IS THE SAMPLE NUMBER";EN$
  136. 6040 EN=VAL(EN$):IFEN>NOREN<1OREN<>INT(EN)THEN6030
  137. 6070 POKE214,8:PRINT:POKE211,6:PRINT"SAMPLE";EN;SPC(5);"VALUE=";SA(EN)
  138. 6080 POKE211,14:PRINT:POKE211,6:INPUT"ENTER YOUR NEW VALUE";C
  139. 6090 SA(EN)=C
  140. 6096 POKE214,14:PRINT:POKE211,6:PRINT"ANY MORE CHANGES (Y/N)?"
  141. 6100 GOSUB7010
  142. 6110 IFZ$="Y"THENPRINT"[147]":GOTO6000
  143. 6120 GOTO587
  144. 6130 PRINT"[147]"
  145. 6132 POKE214,21:PRINT:POKE211,0
  146. 6134 PRINT"  C=CHANGE DATA  N=NEXT TABLE  Q=QUIT  [146]";
  147. 6137 POKE214,2:PRINT:POKE211,5
  148. 6140 IFFL=0THENPRINT"THESE ARE THE FIRST TEN VALUES."K=1:GOTO6150
  149. 6145 PRINT"THESE ARE THE NEXT TEN VALUES."
  150. 6150 POKE214,6:PRINT:POKE211,10:PRINT"ENTRY";SPC(12);"VALUE"
  151. 6160 FF=0:FORK=KTOK+9:FF=FF+1
  152. 6165 IFK>300THENK=K+9:NEXT:GOTO587
  153. 6170 POKE214,FF+7:PRINT:POKE211,10:PRINTK;TAB(27);SA(K)
  154. 6180 NEXTK
  155. 6190 GOTO5810
  156. 7010 GETZ$:IFZ$=""OR(Z$<>"Y"ANDZ$<>"N")THEN7010
  157. 7020 RETURN
  158.