10  FILES *
15  REM HEWLETT-PACKARD HP 36801A, 6/74
20  REM STATISTICAL PROGRAM SEPTEMBER 1973
30  REM BY L.J.LAZZARINI
40  DIM X[1000],Y[999],A$[9],B$[6]
50  PRINT "DO YOU WANT INSTRUCTIONS(1=YES,0=NO)";
60  INPUT A
70  IF A=0 THEN 180
80  PRINT "THIS PROGRAM READS IN A VECTOR OF VALUES (1000 ELEMENTS"
90  PRINT "MAXIMUM) AND CALCULATES EITHER (1)FIRST DIFFERENCES,"
100  PRINT "(2) PERCENTAGE CHANGES, OR (3) PERCENT DIFFERENCES,"
110  PRINT "DEPENDING ON THE USER'S OPTION."
120  PRINT "ENTER DATA IN DATA STATEMENTS STARTING ON LINE 5000"
130  PRINT "AS FOLLOWS:"
140  PRINT '10'10'10"5000 DATA N1,N2,N3,N4, ETC."'10
150  PRINT "N1,N2,N3,N4, ETC. ARE THE VALUES. THIS PROGRAM WILL"
160  PRINT "OPTIONALLY USE DATA FILE INPUT INSTEAD OF DATA STATEMENTS."
170  STOP 
180  PRINT "1= DATA ON FILE, 0= DATA IN DATA STATEMENTS. WHICH ";
190  INPUT A
200  PRINT "DO YOU WANT YOUR RAW DATA PRINTED(1=YES,0=NO) ";
210  INPUT O
220  PRINT "# OF VALUES";
230  INPUT N
240  MAT X=ZER[N]
250  MAT Y=ZER[N-1]
260  IF A=0 THEN 310
270  PRINT "FILE NAME";
280  INPUT B$
290  ASSIGN B$,1,Z8
300  READ #1,1
310  PRINT '10'10"ENTER THE NUMBER OF YOUR OPTION "
320  PRINT "1 FOR 1ST DIFF., 2 FOR % CHANGES, 3 FOR % DIFF."
330  INPUT C
340  IF A=0 THEN 380
350  MAT  READ #1;X
360  READ #1,1
370  GOTO 400
380  MAT  READ X
390  RESTORE 
400  IF C=2 THEN 480
410  IF C=3 THEN 530
420  REM 1ST DIFF
430  FOR I=2 TO N
440  Y[I-1]=X[I]-X[I-1]
450  NEXT I
460  GOTO 560
470  REM % CHANGES
480  FOR I=2 TO N
490  Y[I-1]=X[I]/X[I-1]*100
500  NEXT I
510  GOTO 560
520  REM % DIFF
530  FOR I=2 TO N
540  Y[I-1]=((X[I]-X[I-1])/X[I])*100
550  NEXT I
560  S1=X[1]
570  S2=0
580  FOR I=2 TO N
590  S1=S1+X[I]
600  S2=S2+Y[I-1]
610  NEXT I
620  M1=S1/N
630  M2=S2/(N-1)
640  REM M1,M2 MEAN FOR MAT X, MAT Y
650  V1=(X[1]-M1)^2
660  V2=0
670  FOR I=2 TO N
680  V1=V1+(X[I]-M1)^2
690  V2=V2+(Y[I-1]-M2)^2
700  NEXT I
710  V1=V1/(N-1)
720  V2=V2/(N-2)
730  REM V1,V2 VARIANCE FOR MAT X, MAT Y
740  D1=SQR(V1)
750  D2=SQR(V2)
760  REM D1,D2 STANDARD DEVIATION FOR MAT X, MAT Y
770  REM DURBIN-WATSON STATISTIC
780  T1=0
790  T2=(X[1]-M1)^2
800  FOR I=2 TO N
810  T1=T1+(X[I]-X[I-1])^2
820  T2=T2+(X[I]-M1)^2
830  NEXT I
840  W1=T1/T2
850  T3=0
860  T4=(Y[1]-M2)^2
870  FOR I=2 TO N-1
880  T3=T3+(Y[I]-Y[I-1])^2
890  T4=T4+(Y[I]-M2)^2
900  NEXT I
910  W2=T3/T4
920  REM W1,W2 DURBIN-WATSON STATISTIC FOR MAT X, MAT Y
930  A$="12(6D)/  "
940  FOR I=1 TO N
950  IF INT(X[I])#X[I] THEN 1010
960  NEXT I
970  FOR I=1 TO N-1
980  IF INT(Y[I])#Y[I] THEN 1010
990  NEXT I
1000  GOTO 1020
1010  A$="8(6D.2D)/"
1020  IF O#1 THEN 1100
1030  PRINT '10'10"RAW DATA:"
1040  MAT  PRINT  USING A$;X
1050  PRINT 
1060  PRINT TAB(19)"MEAN = ";M1'13'10TAB(15)"VARIANCE = ";V1
1070  PRINT TAB(5)"STANDARD DEVIATION = ";D1
1080  PRINT "DURBIN-WATSON STATISTIC = ";W1
1090  PRINT 
1100  PRINT '10'10"TRANSFORMED DATA:"
1110  MAT  PRINT  USING A$;Y
1120  PRINT 
1130  PRINT TAB(19)"MEAN = ";M2'13'10TAB(15)"VARIANCE = ";V2
1140  PRINT TAB(5)"STANDARD DEVIATION = ";D2
1150  PRINT "DURBIN-WATSON STATISTIC = ";W2
1160  PRINT '10'10"ANOTHER OPTION (1=YES,0=NO) ";
1170  INPUT C
1180  IF C=1 THEN 310
9999  END 
