Statistical Analysis

Date: 1983
Type: Program
Platform(s): TS 2068

This program performs statistical analysis on paired (x, y) datasets entered by the user or loaded from tape. It computes descriptive statistics including mean, standard deviation, coefficient of variation, standard error of the mean, and an F-test for comparing precision between the two datasets. Inferential statistics include linear regression, Pearson’s correlation coefficient, and a two-sample t-test. Additional features include a Shell sort (Shellsort) algorithm implemented in BASIC for ranking data to find medians, minima, and maxima, plus graphical output as a scatter plot with regression line or a 15-column histogram bar chart. User-defined graphics are loaded via POKEs to USR addresses at runtime using three 8-byte character definitions stored in DATA statements, and the program supports LPRINT for hard-copy data output as well as COPY for screen dumps.


Program Structure

The program is organized into clearly delineated functional blocks, each introduced by a REM statement with inverse-video labels. The top-level flow is:

  1. Lines 10–60: Title splash, optional instructions branch
  2. Lines 70–190: UDG setup, data input or tape load, array initialization
  3. Lines 200–595: Interactive data editing loop
  4. Lines 600–630: UDG DATA definitions
  5. Lines 650–690: Reusable print/copy subroutine
  6. Lines 700–840: Calculation dispatch and main menu
  7. Lines 900–1280: Descriptive statistics display (mean, SD, CV, SEM, F-test, sort, median)
  8. Lines 1300–1550: Inferential statistics display (regression, correlation, t-test)
  9. Lines 1600–3650: Graphical output (line graph, bar chart)
  10. Lines 6000–6080: Save/restart/exit handler
  11. Lines 7000–7190: Core calculation subroutine
  12. Lines 8000–8460: Full multi-page instruction set

Data Storage

Input data is stored in a two-column array X(A,2) where column 1 holds x values and column 2 holds y values. Two separate single-dimension arrays, B(A) and C(A), are copies of the x and y columns respectively and are used exclusively by the sort/median routine so that the original data in X() remains unmodified for subsequent analyses. Data can be saved to and loaded from tape using SAVE "S.A. Data" DATA X() / LOAD "S.A. Data" DATA X().

ON ERR Usage

Lines 180–190 use an inventive technique to determine the actual number of data rows stored in array X() after a tape load. A loop walks N from 1 to 999, reading X(N,1); when N exceeds the array bound, an error is triggered. ON ERR GO TO 190 at line 180 catches this, and line 190 immediately cancels the handler with ON ERR RESET, then sets LET A=N-1 to recover the true count. This is a well-established idiom for probing array bounds at runtime.

Shell Sort Implementation

Lines 1112–1145 implement a Shellsort (diminishing-increment sort) entirely in BASIC, sorting arrays B() and C() independently into descending order. The gap sequence halves on each pass (mm = INT(mm/2)), and elements are swapped via a temporary variable tt. The program’s own instruction text acknowledges this is slow because it is in BASIC rather than machine code. The two sort blocks (x at 1112–1126, y at 1131–1145) are structurally identical, differing only in the array they operate on.

Calculation Subroutine (line 7000)

The subroutine at line 7000 computes all statistical values in a single pass where possible:

  • t1t5: Σx, Σy, Σx², Σy², Σxy
  • p, q: means of x and y (rounded to 3 decimal places)
  • D: regression coefficient b, using the formula b = (Σxy − Σx·Σy/(n−1)) / (Σx² − (Σx)²/(n−1))
  • U: Pearson’s r, similarly computed from the sums
  • E: regression intercept c = mean(y) − b·mean(x)
  • s3, s4: SD of x and y using SQR(SS/(n−2)) — note divisor is i−2 after a loop ending at i=A+1, yielding effectively A−1 in the denominator, giving the sample SD
  • s5, s6: SEM = SD / SQR(n)
  • T: two-sample t statistic
  • u2: degrees of freedom = 2A−2

There is a subtle indexing anomaly: the regression and correlation formulas at lines 7070–7080 use h−1 as the denominator after the loop ends with h=A+1, making the effective divisor A — consistent with the standard formula. However this is easy to misread in the listing.

User-Defined Graphics

Three UDG characters (chars 144–146, i.e. \a, \b, \c) are defined at lines 80–630. The DATA at lines 610–630 provides three 8-byte bitmaps POKEd into UDG memory via POKE USR CHR$(144+f)+g, a. The characters appear to be decorative symbols used inline in PRINT statements — notably \b and \c appear in line 970 and 1350 as labels for the mean values of x and y respectively (printed as x̄ and ȳ equivalents).

Bar Chart Algorithm

The bar chart routine (lines 2097–3650) bins data into exactly 15 equal-width intervals between the minimum and maximum values. The bin width is divx = (maxx − minx) / 15. For each bin, a nested loop counts how many data points fall within [minx, minx+divx), with a small epsilon (+0.000001) added to the last bin’s upper bound to ensure the maximum value is included. A secondary sort of the frequency array (another Shellsort-like bubble pass at lines 2170–2190) finds the maximum frequency for scaling. If the tallest bar exceeds 18 pixels, a scale factor is computed by repeatedly subtracting 18 and incrementing scalex, then all bar heights are divided by this factor. Bars are drawn two character columns wide using inverse-video space characters.

Line Graph

The scatter plot at lines 1660–1760 plots each (x, y) pair as a small circle using CIRCLE at pixel coordinates (8*x+17, 8*y+9), giving an 8-pixel-per-unit scale. The regression line is drawn with PLOT 17, 8*E : DRAW p+16*p, q+16*p — a single DRAW from the y-intercept. The program correctly notes this only works for positively correlated data and points users to specific line numbers to delete for negative correlation. Data is constrained to x < 26, y < 18 before plotting.

Menu Dispatch

The main menu at lines 730–840 uses a computed GO TO pattern. After reading a digit string W$ and converting it with VAL, choices 1–3 branch to 800 + W*100 (i.e. 900, 1000, 1100) and choices 5–6 branch to 1000 + W*100 (i.e. 1500, 1600). Choice 4 branches directly to 1300 and choice 7 to 2000. This avoids a long IF-THEN chain at the cost of some arithmetic.

String Variable O$

The variable O$ initialized at line 25 holds a five-character control-code sequence: CHR$(21)+CHR$(1)+CHR$(22)+CHR$(0)+CHR$(0). This embeds an OVER 1 attribute followed by an AT 0,0 cursor positioning sequence, used as an inline underline effect when printed after a heading — the OVER 1 mode causes subsequent characters to XOR with screen content, creating an underline on the line below without erasing existing text.

Copy/Printer Handling

The subroutine at line 650 serves as a universal pause-and-continue handler. It checks the flag CPY: if set to 1 (by the instruction copy mode activated at line 8420), it immediately issues COPY and returns. Otherwise it prompts the user to press Enter to continue or z to copy. The data listing routine at lines 1020–1090 additionally uses LPRINT directly when the dataset has more than 20 pairs, routing output to the printer rather than the screen.

Bugs and Anomalies

  • Line 260: IF V$="Y" branches to the y-value change routine at 410, but the prompt at line 250 asks for x or y — the test for "Y" is case-sensitive and would match a capital Y input intended as “yes” rather than the y-axis selector, potentially confusing users who type uppercase.
  • Line 1220: The median calculation for an odd number of values uses LET M1=B(s) where s=A/2 (not rounded), so for e.g. A=5, s=2.5 and B(2.5) is evaluated — BASIC will truncate the index to 2, which is the correct lower of the two middle elements for an odd-length array, but the intent is arguably B(INT(A/2)+1) for the true middle.
  • Lines 7070–7080: The regression and correlation formulas use h-1 as divisor where h is the loop variable left at A+1 after the FOR-NEXT at line 7040, making h-1 = A. This is numerically correct but relies on the post-loop value of the FOR variable, which is a common but fragile BASIC idiom.
  • Line 1260: The condition M1-.1 = INT(p*10+.5)/10 OR M1-.1 = INT(p*10+.5)/10 repeats the same sub-expression twice; the second clause was presumably intended to be M1+.1, making the test a ±0.1 tolerance check. As written, one branch is redundant.

Content

Appears On

Related Products

Related Articles

Related Content

Image Gallery

Source Code

   10 REM \{20}\{1}STATISTICS PROGRAM\{20}\{0}
   21 BEEP .9,28:PAPER 0:BORDER 0:INK 6:CLS :PRINT INVERSE 1; AT 10,5;" STATISTICAL ANALYSIS "
   25 POKE 23658,8:LET CPY=0:LET O$= CHR$ 21+ CHR$ 1+ CHR$ 22+ CHR$ 0+ CHR$ 0
   30 BEEP .8,30:PRINT INK 7'''"\{20}\{0}  WOULD YOU LIKE INSTRUCTIONS?"'' TAB 12;"(Y/N)"
   40 PAUSE 0:IF INKEY$="Y" THEN CLS :GO TO 8000
   50 IF INKEY$="N" THEN GO TO 70
   60 GO TO 40
   70 REM \{20}\{1}DATA INPUT ,  STORAGE,  PRINTING, READ GRAPHICS.\{20}\{0}
   75 POKE 26564,35:PAPER 6:INK 1:BORDER 6:CLS 
   80 RESTORE :FOR f=0 TO 2:FOR g=0 TO 7:READ a:POKE USR CHR$ (144+f)+g,a:NEXT g:NEXT f
   90 BEEP .7,25:PRINT INK 1;"  STATISTICAL ANALYSIS OF DATA       BY GREG TURNBULL 1983.";O$;"________________________________________________________________"''
   95 PRINT AT 5,0;"DO YOU WISH TO LOAD IN OLD DATA THAT WAS SAVED?        (Y/N)":PAUSE NOT PI:IF INKEY$="Y" THEN GO TO 175
  100 PRINT AT 5,0;"TYPE IN YOUR TOTAL NUMBER OF    DATA PAIRS  (N)",:INPUT r:PRINT "N=";r'':LET A=r
  120 PRINT INK 1;"TYPE IN YOUR X AND Y VALUES     (ENTER EACH ONE):"''
  130 PRINT INK PI;"NOTE:IF YOU MAKE A MISTAKE","WRITE IT DOWN AND YOU WILL","BE ABLE TO ALTER IT LATER."
  150 DIM X(A,2):PRINT :FOR N=1 TO A:INPUT "x: ";x;"     y: ";y:LET X(N,1)=x:LET X(n,2)=y:GO SUB 160:NEXT N:GO TO 180
  160 PRINT INK 1;"N:";n; TAB 6;"x:";X(n,1),"y:";X(n,2):RETURN 
  175 CLS :PRINT AT 10,0;"PRESS ENTER AND PLAY DATA TAPE":PAUSE 0:LOAD "S.A. DATA"DATA X()
  180 ON ERR GO TO 190:FOR N=1 TO 999:LET A=X(N,1):NEXT N
  190 ON ERR RESET :PAUSE 90:CLS :PRINT "DATA"'':LET A=N-1:DIM B(A):DIM C(A):FOR N=1 TO A:LET B(N)=X(N,1):LET C(N)=X(N,2):GO SUB 160:NEXT N
  200 REM \{20}\{1}CHOICE OF ALTERING DATA\{20}\{0}
  210 BEEP .3,30:PRINT INK 2;"WOULD YOU LIKE TO ALTER","ANY DATA? (Y/N):":INPUT Q$:CLS 
  220 IF Q$="Y" THEN GO TO 250
  230 IF Q$="N" THEN GO TO 700
  240 GO TO 210
  250 PRINT "WOULD YOU LIKE TO CHANGE","x OR y VALUES?  (x/y):":INPUT V$:CLS 
  260 IF V$="Y" THEN GO TO 410
  270 IF V$="X" THEN GO TO 290
  280 GO TO 250
  290 BEEP .3,30:PRINT INK 1;"CHANGE AN x VALUE:";O$;"                 "''
  300 PRINT "INPUT THE DATA ROW NUMBER","FOR THE CHANGE (N):":INPUT N:CLS 
  305 IF N>A THEN GO TO 300
  310 PRINT "INPUT THE x VALUE YOU WANT","FOR THIS ROW (x):":INPUT W:CLS 
  320 LET X(N,1)=W:LET B(N)=W
  330 PRINT "DO YOU WANT TO ALTER ANY MORE   x VALUES? (Y/N):":INPUT Q$:CLS 
  340 IF Q$="Y" THEN GO TO 290
  350 IF Q$="N" THEN GO TO 370
  360 GO TO 330
  370 PRINT "DO YOU WANT TO ALTER ANY","y VALUES?(Y/N):":INPUT Q$:CLS 
  380 IF Q$="Y" THEN GO TO 410
  390 IF Q$="N" THEN GO TO 530
  400 GO TO 370
  410 BEEP .3,30:PRINT INK 1;"CHANGE A y VALUE:";O$;"________________"''
  420 PRINT "INPUT THE DATA ROW NUMBER","FOR THE CHANGE (N):":INPUT N:CLS 
  425 IF N>A THEN GO TO 420
  430 PRINT "INPUT THE y VALUE YOU WANT","FOR THIS ROW (y):":INPUT V:CLS 
  440 LET X(N,2)=V:LET C(N)=V
  450 PRINT "DO YOU WANT TO ALTER ANY MORE   y VALUES? (Y/N):":INPUT Q$:CLS 
  460 IF Q$="Y" THEN GO TO 410
  470 IF Q$="N" THEN GO TO 490
  480 GO TO 450
  490 PRINT "DO YOU WANT TO ALTER ANY","x VALUES? (Y/N):":INPUT Q$:CLS 
  500 IF Q$="Y" THEN GO TO 290
  510 IF Q$="N" THEN GO TO 530
  520 GO TO 490
  530 PRINT INK PI;"NEW DATA VALUES:";O$;"_______________"''
  540 FOR N=1 TO A
  550 PRINT "N:";n;"  ";"x:";X(n,1),"y:";X(n,2)
  560 NEXT n
  570 PRINT :PRINT INK 2;"WOULD YOU LIKE TO ALTER         ANY FURTHER DATA? (Y/N):":INPUT Q$:CLS 
  580 IF Q$="Y" THEN GO TO 250
  590 IF Q$="N" THEN GO TO 700
  595 GO TO 570
  600 REM \{20}\{1}DATA FOR GRAPHICS\{20}\{0}\{20}\{1}.\{20}\{0}
  610 DATA 0,126,66,32,24,32,66,126
  620 DATA 255,0,195,102,60,60,102,195
  630 DATA 255,0,195,102,60,24,48,224
  650 REM \{20}\{1}\{20}\{0}\{20}\{1}COPY DATA TO PRINTER.\{20}\{0}\{20}\{0}
  655 IF CPY=1 THEN COPY :CLS :RETURN 
  660 INPUT "ENTER TO CONTINUE, Z TO COPY";W$
  670 IF W$="z" THEN COPY :CLS :RETURN 
  680 IF W$="" THEN CLS :RETURN 
  690 GO TO 650
  700 PRINT PAPER 1; INK 6; FLASH 1;"PLEASE WAIT."'':PRINT PAPER 6; INK 1; FLASH 0;"THE COMPUTER IS CALCULATING     THE STATISTICAL VALUES."''
  710 GO SUB 7000:CLS 
  720 REM \{20}\{1}\{20}\{1}MENU OF CHOICES.\{20}\{1}\{20}\{0}
  730 \{20}\{0} CLS :BEEP .3,30:PRINT INK 1;"WHICH TYPE OF ANALYSIS          WOULD YOU LIKE?"''  
  740 PRINT INK 2;"A) DESCRIPTIVE STATISTICS:"'':PRINT INK 1;"TYPE IN '1' FOR MEAN,SD,CV(%),              SEM & F-TEST:":PRINT "TYPE IN '2' TO PRINT THE DATA":PRINT "TYPE IN '3' FOR MIN,MAX & MEDIAN"''
  750 PRINT INK 2;"B) STATISTICAL ANALYSIS:"'':PRINT INK 1;"TYPE IN '4' FOR REGRESSION AND              CORRELATION":PRINT "TYPE IN '5' FOR 2-SAMPLE t-TEST"''
  760 PRINT INK 2;"C) GRAPHS:"'':INK 1:PRINT "TYPE IN '6' FOR A  LINE GRAPH"'"TYPE IN '7' FOR A BAR CHART"'':PRINT INK PI;"TYPE IN '0' TO SAVE DATA/RESTART"
  770 INPUT W$:IF W$="" THEN GO TO 720
  780 LET W= VAL W$:CLS 
  790 IF W=0 THEN GO TO 6000
  800 IF W>0 AND W<4 THEN GO TO 800+W*100
  810 IF W>4 AND W<7 THEN GO TO 1000+W*100
  820 IF W=4 THEN GO TO 1300
  830 IF W=7 THEN GO TO 2000
  840 IF W>7 THEN GO TO 720
  900 REM \{20}\{1}START OF DESCRIPTIVE STATISTICS MEANS  SD. CV(%)  SEM   F-TEST \{20}\{0}
  915 BEEP .3,30:PRINT INK PI;"DESCRIPTIVE STATISTICS:";O$;"______________________"''
  920 LET s3= INT (s3*10^5+.5)/(10^5):LET s4= INT (s4*10^5+.5)/(10^5)
  930 LET v1= INT (v1*10^3+.5)/(10^3):LET v2= INT (v2*10^3+.5)/(10^3)
  940 LET s5= INT (s5*10^5+.5)/(10^5):LET s6= INT (s6*10^5+.5)/(10^5)
  950 LET h1=s3^2:LET h2=s4^2
  955 IF h1>h2 OR h1=h2 THEN LET h3=h1/h2
  960 IF h2>h1 THEN LET h3=h2/h1
  965 LET h3= INT (h3*10^4+.5)/(10^4):LET h4=A-1
  970 PRINT "N=";A;"    \b=";P;"    \c=";q:PRINT '"S.D. of x=";s3:PRINT "CV(%) of x=";v1:PRINT "S.E.M for x=";s5
  975 PRINT '"S.D. of y=";s4:PRINT "CV(%) of y=";v2:PRINT "S.E.M for y=";s6''
  980 PRINT INK PI; AT 12,0;"F-TEST:"; OVER 1; AT 12,0;"______"'':PRINT INK 1;"A TEST TO COMPARE THE           PRECISION OF x WITH THAT OF y.":PRINT "THE F VALUE=";h3:PRINT "FOR DF1 & DF2 OF:";h4:PRINT "THIS VALUE CAN BE LOOKED UP IN  F-TABLES TO FIND A PROBABILITY  (P) VALUE FOR SIGNIFICANCE      TESTING." 
  990 GO SUB 650:GO TO 720
 1000 REM \{20}\{1}PRINT DATA\{20}\{0}
 1010 BEEP .3,30:PRINT INK 2;"DATA:";O$;"    "''
 1020 IF A<21 THEN GO TO 1060
 1030 LPRINT "DATA.";O$;"    "'':FOR n=1 TO A
 1040 LPRINT "N:";n; TAB 6;"x:";X(n,1),"y:";X(n,2)
 1050 NEXT n:GO TO 1090
 1060 FOR n=1 TO A
 1070 PRINT "N:";n; TAB 6;"x:";X(n,1),"y:";X(n,2)
 1080 NEXT n
 1090 GO SUB 650:GO TO 720
 1100 REM \{20}\{1}DATA SORTING INTO DESCENDING ORDER .PRINT RANKEDDATA \{20}\{0}
 1110 PRINT PAPER 1; INK 7; FLASH 1;"PLEASE WAIT."'':PRINT PAPER 6; INK 1;"THE COMPUTER IS RANKING THE DATA"
 1112 LET mm=A
 1113 LET mm= INT (mm/2)
 1114 IF mm=0 THEN GO TO 1130
 1115 LET kk=A-mm
 1116 LET jj=1
 1117 LET ii=jj
 1118 LET ll=ii+mm
 1119 IF B(ii) >=B(ll) THEN GO TO 1124
 1120 LET tt=B(ll):LET B(ll)=B(ii):LET B(ii)=tt
 1121 LET ii=ii-mm
 1122 IF ii<1 THEN GO TO 1124
 1123 IF NOT ii<1 THEN GO TO 1118
 1124 LET jj=jj+1
 1125 IF jj>kk THEN GO TO 1113
 1126 GO TO 1117
 1130 REM \{20}\{1}SORT Y VALUES\{20}\{0}
 1131 LET mm=A
 1132 LET mm= INT (mm/2)
 1133 IF mm=0 THEN GO TO 1160
 1134 LET kk=A-mm
 1135 LET jj=1
 1136 LET ii=jj
 1137 LET ll=ii+mm
 1138 IF C(ii) >=C(ll) THEN GO TO 1143
 1139 LET tt=C(ll):LET C(ll)=C(ii):LET C(ii)=tt
 1140 LET ii=ii-mm
 1141 IF ii<1 THEN GO TO 1143
 1142 IF NOT ii<1 THEN GO TO 1137
 1143 LET jj=jj+1
 1144 IF jj>kk THEN GO TO 1132
 1145 GO TO 1136
 1150 REM \{20}\{1}PRINT SORTEDDATA \{20}\{0}
 1160 CLS :BEEP .3,30:PRINT INK PI;"RANKED DATA:";O$;"___________"''
 1165 FOR l=1 TO A
 1170 PRINT "n:";l; TAB 6;"x:";B(l),"y:";C(l)
 1180 NEXT l
 1190 GO SUB 650
 1200 REM \{20}\{1}MIN,MAX AND MEDIANS.\{20}\{0}
 1205 PRINT INK PI;"MIN, MAX, MEDIANS:";O$;"_________________"''
 1210 LET s=A/2:IF s= INT s THEN GO TO 1230
 1220 LET M1=B(s):LET M2=C(s):GO TO 1240
 1230 LET w=A/2:LET v=A/2+1:LET M1=(B(w)+B(v))/2:LET M2=(C(w)+C(v))/2
 1240 PRINT \{16}\{0}"MEDIAN OF x=";M1\{16}\{0}:PRINT "MINIMUM VALUE OF x IS ";B(A):PRINT "MAXIMUM VALUE OF x IS ";B(1)''
 1250 PRINT "MEDIAN OF y=";M2'"MINIMUM VALUE OF y=";C(A)'"MAXIMUM VALUE OF y IS ";C(1)''
 1260 LET M1= INT (M1*10+.5)/10:IF M1= INT (p*10+.5)/10 OR M1-.1= INT (p*10+.5)/10 OR M1-.1= INT (p*10+.5)/10 THEN PRINT "median of x approx' equal to    mean of x indicating normally   distributed x data."''
 1270 LET M2= INT (M2*10+.5)/10:IF M2= INT (q*10+.5)/10 OR M2+.1= INT (q*10+.5)/10 OR M2-.1= INT (q*10+.5)/10 THEN PRINT "median of y approx' equal to    mean of y indicating normally   distributed y data."''
 1280 GO SUB 650:GO TO 720
 1300 REM \{20}\{1}START OF STATISTICAL   ANALYSIS.\{20}\{0}
 1310 REM \{20}\{1}REGRESSION AND         CORRELATION.\{20}\{0}
 1320 BEEP .3,30:PRINT INK PI;"REGRESSION AND CORRELATION:"''
 1330 LET E= INT (E*10^5+.5)/(10^5):LET D= INT (D*10^5)/(10^5):LET U= INT (U*10^5)/(10^5)
 1340 PRINT "\ax=";t1,"\ax*x=";t3,"\ay=";t2,"\ay*y=";t4,"\ax*y=";t5
 1350 PRINT "n=";A;"    \b=";p;"    \c=";q'':PRINT INK 0;"FOR  y=b*x+c"'':PRINT "b=";D,"","c=";E:PRINT '' INK PI;"COR. COEFF'"; INK 1''"r=";U''
 1360 IF D>.75 AND U>.75 THEN PRINT "b and r are >.75 indicating a   strong positive linear          correlation between x and y."''
 1370 IF D<-.75 AND U<-.75 THEN PRINT "b and r are <-.75 indicating a  strong negative linear          correlation between x and y."''
 1375 IF D<.75 AND U>.75 THEN PRINT "correlation coefficient (r)<.75 indicating a strong positive    relationship between x and y."
 1380 IF U=0 THEN PRINT "r=0 this indicates that x and y are totally uncorrelated."
 1390 GO SUB 650:GO TO 720
 1500 REM \{20}\{1}t-TEST AND DF.\{20}\{0}
 1510 BEEP .3,30:PRINT INK PI;"2-SAMPLE t-TEST:"''
 1515 LET T= INT (T*10^5+.5)/(10^5)
 1520 PRINT INK 0;"for DF=";U2''
 1530 PRINT INK 0;"THE VALUE OF t=";T''
 1540 PRINT INK 1;"LOOK UP YOUR t VALUE IN t-TABLESFOR THE ABOVE DF, AND FIND THE  PROBABILITY VALUE (P)           FOR SIGNIFICANCE TESTING."''
 1550 GO SUB 650:GO TO 720
 1600 REM \{20}\{1}START OF GRAPHICAL     SECTION.\{20}\{0}
 1605 REM \{20}\{1}DRAW LINE GRAPH.\{20}\{0}
 1610 BEEP .3,32:PRINT INK PI;"A LINE GRAPH OF x,y:";O$;"                   "''
 1620 PRINT INK 1;"HAVE YOU BEEN VIA THE MEDIANS   ROUTINE?   (Y/N)"''"THIS IS BECAUSE THE MAXIMUM AND MINIMUM VALUES ARE NEEDED FOR   THE BARCHART."'':PAUSE 0
 1625 IF INKEY$="N" THEN GO TO 720
 1630 IF NOT INKEY$="Y" THEN CLS :GO TO 1600
 1635 FOR N=1 TO 20:NEXT N
 1640 PRINT ''"TYPE IN THE NAME OF THE x-AXIS":INPUT A$
 1650 PRINT '"TYPE IN THE NAME OF THE y-AXIS":INPUT B$:CLS 
 1660 LET F=B(1):LET G=C(1)
 1670 IF F>26 THEN LET F=26
 1680 IF G>18 THEN LET G=18
 1690 FOR O=17 TO (8*F+40):PLOT O,9:NEXT O
 1700 FOR M=9 TO (8*G+22):PLOT 17,M:NEXT M
 1710 PRINT AT 21,3;A$:PRINT AT 18-G,2;B$:PRINT AT 19-G,0;G:PRINT AT 21,2.5+F;F:PRINT AT 21,1;"0"
 1720 FOR n=1 TO A
 1730 IF X(n,1) >=26 OR X(n,2) >=18 THEN PRINT AT 19,3;"DATA IS TOO LARGE":GO SUB 650:GO TO 720
 1735 BEEP .02,12:INK 2:OVER 0:CIRCLE 8*X(n,1)+17,8*X(n,2)+9,2
 1740 NEXT n
 1750 IF p>10 OR q>10 THEN PRINT AT 19,3;"MEAN VALUES ARE TOO LARGE":GO SUB 650:GO TO 720
 1760 FOR Z=1 TO 20:BEEP .05,50-z:NEXT z:INK 1:PLOT 17,8*E:DRAW p+16*p,q+16*p:PAUSE 200
 1770 GO SUB 650:GO TO 720
 2000 REM \{20}\{1}BAR CHART.\{20}\{0}
 2010 BEEP .3,30:PRINT INK PI;"BAR CHART.";O$;"_________"''
 2020 PRINT INK 1;"HAVE YOU BEEN VIA THE MEDIANS   ROUTINE?   (Y/N)"''"THIS IS BECAUSE THE MAXIMUM AND MINIMUM VALUES ARE NEEDED FOR   THE BARCHART."'':PAUSE 0
 2040 IF INKEY$ <>"Y" THEN GO TO 720
 2060 PRINT INK 1;"WOULD YOU LIKE A BAR CHART OF   THE x OR y DATA?                TYPE IN x OR y                  OR PRESS ENTER TO RETURN:"'':INPUT z$:CLS 
 2070 IF z$="X" THEN GO TO 2097
 2080 IF z$="Y" THEN GO TO 2500
 2085 IF z$="" THEN GO TO 720
 2090 GO TO 2060
 2095 PRINT FLASH 1;"PLEASE WAIT ."'' FLASH 0;"THIS MAY TAKE SOME TIME!":RETURN 
 2097 GO SUB 2095
 2099 REM \{20}\{1}\{20}\{1}CALCULATE X VALUES.\{20}\{0}
 2100 LET minx=B(A):LET maxx=B(1):DIM R(15):DIM L(16):LET divx=(maxx-minx)/15
 2110 FOR B=1 TO 15:FOR n=1 TO A
 2120 LET P9=0:LET R9=minx+divx
 2125 IF B=15 THEN LET R9=R9+.000001
 2130 IF X(n,1) >=minx AND X(n,1)<R9 THEN LET P9=P9+1:LET R(B)=R(B)+P9:LET L(B)=L(B)+P9
 2140 NEXT n
 2150 LET minx=minx+divx
 2160 NEXT B
 2165 PRINT "NEARLY FINISHED."
 2170 FOR J=1 TO 15:FOR K=1 TO 15
 2180 LET l=0:IF L(K+1)>L(K) THEN LET l=L(K):LET L(K)=L(K+1):LET L(K+1)=l
 2190 NEXT K:NEXT J
 2200 LET highx=L(1):LET scalex=1
 2210 IF highx>18 THEN LET scalex=scalex+1:LET highx=highx-18:GO TO 2210
 2250 GO TO 3000
 2500 GO SUB 2095
 2505 REM \{20}\{1}CALCULATE y VALUES.\{20}\{0}
 2510 LET miny=C(A):LET maxy=C(1):DIM S(15):DIM M(16):LET divy=(maxy-miny)/15
 2520 FOR B=1 TO 15:FOR n=1 TO A
 2530 LET P9=0:LET R9=miny+divy
 2535 IF B=15 THEN LET R9=R9+.000001
 2540 IF X(n,2) >=miny AND X(n,2)<R9 THEN LET P9=P9+1:LET S(B)=S(B)+P9:LET M(B)=M(B)+P9
 2550 NEXT n
 2560 LET miny=miny+divy
 2570 NEXT B
 2575 PRINT "NEARLY FINISHED."
 2580 FOR J=1 TO 15:FOR K=1 TO 15
 2590 LET l=0:IF M(K+1)>M(K) THEN LET l=M(K):LET M(K)=M(K+1):LET M(K+1)=l
 2600 NEXT K:NEXT J
 2610 LET highy=M(1):LET scaley=1
 2620 IF highy>18 THEN LET scaley=scaley+1:LET highy=highy-18:GO TO 2620
 2630 GO TO 3500
 3000 REM \{20}\{1}DRAW BAR CHART OF x .\{20}\{0}
 3010 IF scalex=1 THEN GO TO 3030
 3020 \{20}\{0} FOR B=1 TO 15:LET R(B)= INT (R(B)/scalex+.5):NEXT B
 3030 BEEP .5,20:CLS :DIM J$(18):PRINT "INPUT THE NAME OF THE HORIZONTAL(x) AXIS:":INPUT I$
 3040 PRINT "INPUT THE NAME OF THE VERTICAL  (y) AXIS:":INPUT J$:CLS 
 3050 BEEP .3,30:PLOT 16,16:DRAW 0,143:PLOT 16,16:DRAW 239,0:PRINT AT 0,4;"BAR CHART OF x.":PRINT AT 19,1;"0":PRINT AT 20,2;B(A):PRINT AT 20,28;B(1):PRINT AT 21,6;I$:FOR z=0 TO 17:PRINT AT z+4,0;J$(z+1):NEXT z:PRINT AT 2,0;18*scalex
 3055 LET sp=2
 3060 FOR B=1 TO 15
 3065 IF R(B)=0 THEN LET sp=sp+2:GO TO 3110
 3070 FOR J=1 TO R(B)
 3080 PRINT INK 2; AT 20-J,sp;"\{20}\{1} \{20}\{0}":PRINT INK 2; AT 20-J,sp+1;"\{20}\{1} \{20}\{0}"
 3090 NEXT J
 3100 LET sp=sp+2
 3110 NEXT B
 3150 GO SUB 650:CLS :GO TO 2060
 3500 REM \{20}\{1}DRAW BAR CHART OF y.\{20}\{0}
 3510 IF scaley=1 THEN GO TO 3530
 3520 FOR B=1 TO 15:LET S(B)= INT (S(B)/scaley+.5):NEXT B
 3530 BEEP .25,20:CLS :DIM K$(18):PRINT "INPUT THE NAME OF THE HORIZONTAL(x) AXIS:":INPUT I$
 3540 PRINT "INPUT THE NAME OF THE VERTICAL  (y) AXIS:":INPUT K$:CLS 
 3550 BEEP .2,30:PLOT 16,16:DRAW 0,143:PLOT 16,16:DRAW 239,0:PRINT AT 0,4;"A BAR CHART OF y.":PRINT AT 19,1;"0":PRINT AT 20,2;C(A):PRINT AT 20,28;C(1):PRINT AT 21,6;I$:FOR z=0 TO 17:PRINT AT z+4,0;K$(z+1):NEXT z:PRINT AT 2,0;18*scaley
 3560 LET sp=2
 3570 FOR B=1 TO 15
 3580 IF S(B)=0 THEN LET sp=sp+2:GO TO 3630
 3590 FOR J=1 TO S(B)
 3600 PRINT INK 2; AT 20-J,sp;"\{20}\{1} \{20}\{0}":PRINT INK 2; AT 20-J,sp+1;"\{20}\{1} \{20}\{0}"
 3610 NEXT J
 3620 LET sp=sp+2
 3630 NEXT B
 3650 GO SUB 650:CLS :GO TO 2060
 6000 REM \{20}\{1}EXIT.\{20}\{0}
 6010 \{20}\{0} PRINT "DO YOU WISH TO:"''" SAVE THE DATA         (Y/N)":INPUT Y$:CLS 
 6020 IF Y$="N" THEN GO TO 6050
 6030 IF Y$ <>"Y" THEN GO TO 6000
 6040 SAVE "S.A. DATA"DATA X()
 6050 PRINT ''"WOULD YOU LIKE TO:"'''"CONTINUE?                  C"''"CLEAR AND RUN AGAIN?  R"''"OR STOP?                   S":INPUT Y$:CLS 
 6060 IF Y$="R" THEN GO TO 20
 6070 IF Y$="C" THEN GO TO 720
 6075 IF Y$="S" THEN STOP 
 6080 GO TO 6050
 7000 REM \{20}\{1}CALCULATION OF SUM OF  TOTALS  MEANS  SD  CV  SEM  \{20}\{1}R\{20}\{0}\{20}\{1}EG CORR DF * t.\{20}\{0}
 7010 \{20}\{0} LET t1=0:LET t2=T1:LET t3=T1:LET t4=T1:LET t5=T1:LET S1=T1:LET S2=T1
 7020 FOR h=1 TO A
 7030 LET t1=t1+X(h,1):LET t2=t2+X(h,2):LET t3=t3+X(h,1)^2:LET t4=t4+X(h,2)^2:LET t5=t5+X(h,1)*X(h,2)
 7040 NEXT h
 7050 LET q=t2/A:LET q= INT (q*10^3+.5)/(10^3):REM MEAN(y)
 7060 LET p=t1/A:LET p= INT (p*10^3+.5)/(10^3):REM MEAN(x)
 7070 LET d=(t5-(t1*t2/(h-1)))/(t3-(t1^2/(h-1))):REM REG(b)
 7080 LET U=(t5-(t1*t2/(h-1)))/ SQR ((t3-(t1^2/(h-1)))*(t4-(t2^2/(h-1)))):REM COR(r)
 7090 LET E=q-D*p:REM REG(c)
 7100 FOR i=1 TO A
 7110 LET s1=s1+(X(i,1)-p)*(X(i,1)-p):LET s2=s2+(X(i,2)-q)*(X(i,2)-q)
 7120 NEXT i
 7130 LET s3= SQR (s1/(i-2)):LET s4= SQR (s2/(i-2)):REM SD(x&y)
 7140 LET v1=s3/p*100:LET v2=s4/q*100:REM CV(x&y)
 7150 LET s5=s3/ SQR (i-1):LET s6=s4/ SQR (i-1):REM SEM(x&y)
 7160 LET u2=2*A-2:REM DF
 7170 IF q>p THEN LET T=(q-p)/ SQR ((2/(u2*A))*(t3+t4-(t1^2/A)-(t2^2/A))):GO TO 7190
 7180 LET T=(p-q)/ SQR ((2/(u2*A))*(t3+t4-(t1^2/A)-(t2^2/A))):REM t-TEST
 7190 RETURN 
 8000 REM \{20}\{1}INSTRUCTIONS.\{20}\{0}
 8010 BEEP .8,30:PRINT INK 5;"INSTRUCTIONS ON STATISTICS:";O$;"__________________________"''
 8020 PRINT INK 6;"THIS PROGRAM ALLOWS YOU TO INPUTTWO SETS OF DATA OF ANY LENGTH  FOR A 72K 2068 TIMEX.","NOTE: BOTH SETS OF DATA MUST BE OF EQUAL LENGTH."'"THE TOTAL NUMBER OF DATA PAIRS  BEING ENTERED AS n"''
 8030 GO SUB 650
 8040 PRINT INK 5;"THE RAW DATA:";O$;"____________"'' INK 6;"THIS WILL BE STORED IN TWO","SEPARATE ARRAYS, ONE FOR","PRINTING AND ANALYSIS, THE OTHERFOR RANKING (USED IN MEDIANS).  YOU WILL THEN BE ABLE TO ALTER  ANY OF THE DATA THAT MAY HAVE   BEEN ENTERED INCORRECTLY. THE   STATISTICAL TESTS ARE THEN ","PERFORMED AND A MENU OF CHOICES PRINTED."''
 8050 GO SUB 650
 8060 PRINT INK 5;"DESCRIPTIVE STATISTICS:"'' INK 6;"THIS GIVES YOU THE MEANS","(AVERAGES) OF THE TWO SETS OF   DATA. IT ALSO GIVES YOU SOME    MEASURES OF THE DISTRIBUTION OF VALUES ABOUT THE MEANS.":PRINT INK 5'"THESE ARE:"''"A) STANDARD DEVIATION:"; OVER 1; AT 10,3;"__________________":PRINT ' INK 6;"THIS VALUE IS BOTH POSITIVE (+) AND NEGATIVE (-). AT THE 95%    CONFIDENCE LIMIT LEVEL 95.4% OF ALL VALUES SHOULD LIE WITHIN +2 OR -2 SD FROM THE MEAN. SO ANY  VALUE OUTSIDE THESE LIMITS MUST BE CONSIDERED STATISTICALLY     DIFFERENT FROM THE MEAN OF      NORMALLY DISTRIBUTED DATA."
 8070 PRINT :GO SUB 650
 8080 PRINT INK 5;"B) COEFFICIENT OF VARIATION (CV)";O$;"   _____________________________"'' INK 6;"THIS IS A PERCENTAGE (%) VALUE  OFTEN USED TO EXPRESS THE","PRECISION OF THE DATA.","IT RELATES BOTH THE SD AND MEAN BY: CV=SD/MEAN*100%.   A LOW CV INDICATES GOOD  PRECISION, AND AHIGH VALUE INDICATES POOR","PRECISION."''
 8090 GO SUB 650
 8100 PRINT INK 5;"C) STANDARD ERROR OF THE MEAN      (SEM):";O$;"   __________________________"'''' INK 6;"THIS IS AN ESTIMATE OF HOW CLOSETHE MEAN OF YOR SAMPLE IS TO ","THE MEAN OF THE POPULATION FROM WHICH IT WAS TAKEN. HENCE THIS  VALUE MAY NOT BE RELEVANT FOR   ALL SETS OF DATA.","THE CALCULATION IS SEM=SD/SQR(n)SO AS SAMPLE SIZE INCREASES,","THE SEM SHOULD DECREASE AS IT   APPROACHES THE 'TRUE' MEAN OF   THE POPULATION. (WHERE SEM=0)"''
 8110 GO SUB 650
 8120 PRINT INK 5;"F-TEST:";O$;"______"'' INK 6;"THIS IS A TEST SOMETIMES USED TOCOMPARE THE PRECISIONS OF TWO   SETS OF DATA. THE F VALUE IS","CALCULATED FROM THE VARIANCE","RATIO (VARIANCE=SD SQUARED) BY: F=(LARGER VARIANCE)/(SMALLER","VARIANCE). THIS VALUE IS THEN   LOOKED UP IN F-TABLES FOR TWO DF(DEGREES OF FREEDOM) VALUES","(IN THIS CASE BOTH VALUES ARE   EQUAL AND ONLY ONE IS PRINTED). FROM THE TABLES A PROBABILITY   VALUE (P) IS FOUND AND THIS CAN BE USED IN ASSESSING THE        SIGNIFICANCE (IF ANY) BETWEEN   THE TWO PRECISIONS. SEE ALSO THENOTES ON THE t-TEST."
 8130 PRINT :GO SUB 650
 8140 PRINT INK 5;"PRINT DATA:";O$;"__________"' INK 6'"THE SECOND CHOICE ON THE MENU   ALLOWS YOU TO LIST THE DATA.","THIS CAN BE COPIED BY PRESSING  'c' INSTEAD OF ENTER, SO ANY","TIME A HARD COPY OF THE","INSTRUCTIONS OR THE ANALYSIS IS REQUIRED JUST PRESS 'c'."''
 8150 GO SUB 650
 8160 PRINT INK 5;"MEDIANS & DATA SORTING:";O$;"_______   ____________"'' INK 6;"THE THIRD CHOICE (AND FINAL PARTOF DESCRIPTIVE STATISTICS) WILL USE A SORTING ROUTINE TO RANK   THE SPARE ARRAY DATA INTO","DESCENDING ORDER (THIS MAY TAKE SOME TIME AS IT'S IN BASIC AND  NOT MACHINE CODE!). ONCE THE    DATA HAS BEEN RANKED IT WILL BE LISTED AND THE MAXIMUM, MINIMUM AND MEDIAN VALUES FOR x & y WILLBE DISPLAYED. THE MEDIAN IS A   VALUE WHICH DIVIDES THE NUMBER  OF OBSERVATIONS INTO TWO EQUAL  PARTS. IN NORMALLY DISTRIBUTED  DATA IT WOULD BE EQUAL, OR VERY CLOSE TO THE MEAN VALUE. THUS   DIFFERENCES BETWEEN THE MEAN ANDMEDIAN SHOWS LEFT OR RIGHT SKEW IN THE DATA."
 8170 PRINT :GO SUB 650
 8180 PRINT INK 5;"THE MODE:";O$;"________"'' INK 6;"THIS IS THE MOST COMMONLY","OCCURING VALUE IN ANY SET OF","DATA. IN THIS PROGRAM IT CAN","EASILY BE SEEN IN THE LIST OF   RANKED DATA. IN NORMALLY","DISTRIBUTED DATA THE MODE, MEAN AND MEDIAN WOULD ALL BE","(APPROXIMATELY) EQUAL. ANY LEFT OR RIGHT SKEW IN THE DATA WOULD MAKE THEM SIGNIFICANTLY","DIFFERENT FROM EACH OTHER."''
 8190 GO SUB 650
 8200 PRINT INK 5;"STATISTICAL ANALYSIS:";O$;"____________________"'' INK 6;"THESE CHOICES GIVE VARIOUS","CALCULATIONS ON THE DATA WHICH  WOULD BE VERY TIME CONSUMING TO DO MANUALLY. THEY ARE REGRESION,CORRELATION AND t-TEST."''
 8210 GO SUB 650
 8220 PRINT INK 5;"REGRESSION ANALYSIS:";O$;"___________________"'' INK 6;"THIS IS AN ESTIMATE OF THE","ASSOCIATION OF THE x DATA WITH  THE y DATA. LINEAR REGRESSION ISUSED, WHERE IF THE ASSOCIATION  IS A  STRAIGHT  LINE  THEN IT WILLHAVE THE FORMULAE y=b*x+c WHERE c=INTERCEPT ON THE y-AXIS AND   b=REGRESSION COEFFICIENT","(GRADIENT). IF THE ASSOCIATION  IS TOTALLY LINEAR THEN b WILL BE+1 OR -1 DEPENDING ON THE SLOPE OF THE LINE. STATISTICALLY","REGRESSION IS USED TO DRAW A","BEST-FIT  LINE THROUGH SPREAD OUTDATA."''
 8230 GO SUB 650
 8240 PRINT INK 6;"HERE b IS CALCULATED AND USED TOFIND THE VALUE OF c (BY c=C-b*B)THE  LINE IS THEN DRAWN FROM c   THROUGH (B,C) TO THE UPPER","LIMITS OF THE DATA. THIS  LINE   DRAWING METHOD IS THE ONE USED  ON THE PLOT A GRAPH CHOICE.","NOTE: THE  LINE ONLY WORKS FOR","POSITIVELY CORRELATED DATA,","IF THE DATA IS NEGATIVELY","CORRELATED THE  LINE WILL RUN OFFTHE SCREEN. THIS CAN BE AVOIDED IF PROGRAM LINES 1750 & 1760 AREDELETED. SEE ALSO GRAPH","INSTRUCTIONS."''
 8250 GO SUB 650
 8260 PRINT INK 5;"CORRELATION COEFFICIENT:"'' INK 6;"THIS IS ANOTHER EXPRESSION OF   THE ASSOCIATION BETWEEN THE TWO SETS OF DATA. COMPLETE","CORRELATION WILL GIVE AN r VALUEOF +1 OR -1 DEPENDING ON THE","SLOPE OF THE LINE. IF THE DATA  IS TOTALLY UNCORRELATED THEN r  WILL BE 0. CORRELATION AND ","REGRESSION ANALYSIS ARE USUALLY USED IN CONJUNCTION AND ARE","OFTEN DISPLAYED ON THE GRAPHS  OF DATA."''
 8270 GO SUB 650
 8280 PRINT INK 5;"2-SAMPLE t-TEST:"'' INK 6;"THERE ARE MANY TYPES OF t-TEST  ANALYSIS. THE ONE USED HERE IS  FOR TWO SAMPLES OF EQUAL LENGTH.THE TEST IS USED TO DETERMINE   WHETHER THERE IS ANY SIGNIFICANTDIFFERENCE BETWEEN THE TWO SETS OF DATA. THE t VALUE IS","CALCULATED ALONG WITH THE","DEGREES OF FREEDOM (DF) FOR THE DATA. FROM THESE, STUDENT'S","t-TABLES CAN BE USED TO FIND THEPROBABILITY VALUE (P) FOR","SIGNIFICANCE TESTING."''
 8290 GO SUB 650
 8300 PRINT INK 5;"SIGNIFICANCE TESTING:"'' INK 6;"THIS USES THE P VALUE (WHICH MAYBE EXPRESSED AS A %) TO SEE IF  THERE IS ANY STATISTICAL","DIFFERENCE BETWEEN THE TWO SETS OF DATA FOR EXAMPLE P <=.001","(OR .1%) MEANS THAT THE DATA   ARE STATISTICALLY THE SAME.","NOTE: IF THE t VALUE EXCEEDS THETABULATED VALUES THEN THE","DIFFERENCE IS SIGNIFICANT","(ie: NOT LIKELY TO BE DUE TO ","CHANCE ALONE.)"''
 8310 GO SUB 650
 8320 PRINT INK 5;"THE  LINE GRAPH:"'' INK 6;"THIS IS LIMITED BY THE SCREEN   SIZE FOR THE 2068. IT WILL","ONLY ALLOW (x,y)<(26,20) TO BE  PRINTED, OR MEANS<11. IT ALSO   ASSUMES POSITIVE LINEAR","CORRELATION BETWEEN x & y WHEN  IT DRAWS A  LINE THROUGH THE","POINTS. HOWEVER AS MENTIONED","THIS COULD BE AVOIDED IF","NECESSARY BY THE DELETION OF THERELEVANT LINES. IF A GRAPH OF   HIGH DATA IS NEEDED, YOU WOULD  HAVE TO RE-ENTER THE VALUES","AFTER DIVISION BY A SUITABLE","FACTOR TO DECREASE THEIR SIZE."''
 8330 GO SUB 650
 8340 PRINT INK 6;"THE GRAPH ROUTINE WILL ALLOW YOUTO NAME THE TWO AXES, AND ","SPECIFY THEIR MAXIMUM LENGTHS.  THUS  THE ROUTINE IS VERY USEFULFOR  VISUALISING THE ACTUAL","RELATIONSHIPS BETWEEN TWO SETS  OF DATA.  IT CAN BE COPIED TO   THE PRINTER BY PRESSING 'c'."''
 8350 GO SUB 650
 8360 PRINT INK 5;"BAR CHART."'' INK 6;"THIS ROUTINE ALLOWS YOU TO ","CHOOSE A BAR CHART OF x OR y","VALUES. AGAIN IT IS LIMITED BY  THE SCREEN SIZE OF THE 2068","THE VALUES ARE SORTED INTO 15   DOUBLE-WIDTH COLUMNS BY A","DIVISION FACTOR CALCULATED FROM THE MAXIMUM AND MINIMUM DATA    VALUES. THUS YOU MUST GO THROUGHCHOICE NUMBER 3 (MEDIANS) BEFOREUSING THE BAR CHART. THE DATA ISSORTED INTO AN ARRAY ACCORDING   TO ITS PARTICULAR VALUE. IF THE COLUMN BECOMES TOO LARGE (>17)  THEN THE COMPUTER WILL SCALE","DOWN ALL THE VALUES AS REQUIRED.THE USE OF THIS IS THAT IT WILL SHOW YOU IF THE DATA IS NORMALLYDISTRIBUTED THIS IS REQUIRED BY MANY STATS TESTS."
 8370 GO SUB 650
 8380 LET CPY=0
 8390 PRINT "PRESS"''"R TO READ THE INSTRUCTIONS AGAIN"''"C TO COPY INSTRUCTIONS"''"P TO RETURN  TO THE MAIN PROGRAM:"
 8400 PAUSE 0:IF INKEY$="R" THEN CLS :GO TO 8000
 8410 IF INKEY$="P" THEN CLS :GO TO 70
 8420 IF INKEY$="C" THEN LET CPY=1:GO TO 8000
 8430 GO TO 8400
 8440 REM \{20}\{1}THIS LISTING OCCUPIES\{20}\{1} \{20}\{0}\{20}\{1} 26.2K\{20}\{0}\{20}\{0}
 8450 SAVE "Stat.Anal." LINE 10
 8460 VERIFY ""

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top