Compucolor.org – Virtual Media

Listing of file='CMPTIM.BAS;01' on disk='vmedia/statistics_3-sector.ccvf'

5 REM  CMPTIM
7 REM  WRITTEN BY WALTER DEGLER  5/1/79
9 REM
15 REM  COMPARES A SET OF TIME SERIES AND MEASURES VARIATION
25 PLOT 27,24,12,14,6,2
75 GOSUB 2000
999 REM
1000 REM  SELECT ACTION
1010 PLOT 12,14,6,1
1025 PRINT "ENTER NUMBER OF DESIRED ALTERNATIVE:"
1030 PLOT 6,2
1050 PRINT "1 - VARIATION IN EACH SERIES
1075 PRINT "2 - VARIATION BETWEEN SERIES
1100 PRINT "3 - DRAW GRAPH(S)
1110 PRINT "4 - END PROGRAM
1125 INPUT Z
1130 PLOT 15
1150 ON ZGOTO 4000,5000,6000,1500
1175 GOTO 1125
1500 LOAD "MENU;1":RUN
1999 REM
2000 REM  INPUT DATA
2025 INPUT "DATA SOURCE (F-FILE OR K-KEYBOARD): ";Z$
2050 INPUT "NUMBER OF SERIES: ";NS
2055 INPUT "DATA POINTS PER TIME PERIOD: ";TP
2060 DIM D(NS- 1,INT (1000/ (NS- 1)))
2065 PRINT :PLOT 15
2075 IF Z$= "F"THEN 2500
2080 PLOT 27,11
2100 FOR I= 0TO NS- 1
2110 PLOT 12,15,6,1
2125 PRINT "SERIES"I+ 1
2140 INPUT "NUMBER OF DATA POINTS: ";NO(I)
2150 PLOT 6,2
2175 PRINT "NUMBER OF DATA POINT, VALUE:"
2200 PLOT 6,3
2225 INPUT "#";J
2250 IF J< 1THEN PLOT 12,27,24:GOTO 2350
2275 PRINT SPC( 6);:PLOT 28
2300 INPUT "";D(I,J- 1)
2325 GOTO 2225
2350 NEXT
2375 PLOT 27,24
2400 RETURN
2500 FOR I= 0TO NS- 1
2510 PLOT 6,6
2525 PRINT "SERIES"I+ 1" FILE NAME (OR 'S' IF SAME AS LAST):"
2530 PLOT 6,1
2540 INPUT G$
2550 IF G$= "S"THEN 2625
2575 IF I< > 0THEN FILE "C",1
2600 F$= G$:FILE "R",1,F$,6
2625 GET 1,1,5;NO(I)
2650 INPUT "TYPE NUMBER: ";T
2675 FOR J= 0TO NO(I)- 1
2700 GET 1,T,9+ 4* J;D(I,J)
2725 NEXT J,I
2750 RETURN
3999 REM
4000 REM  COMPUTE VARIATION IN EACH SERIES
4010 PLOT 12,14,6,3
4020 PV= 0:NV= 0:V= 0:AV= 0:IN= 0
4025 INPUT "ENTER START AND END OF RANGE (E.G. 1,36): ";R1,R2:R2= R2- 1
4050 PLOT 12,6,6
4075 PRINT TAB( 20);"VARIATION WITHIN SERIES"
4100 PRINT :PLOT 6,1
4125 PRINT "SER. POS.VAR.    NEG.VAR.      VAR.      ABS.VAR.    INTEGRAL"
4150 PLOT 6,3
4175 FOR I= 0TO NS- 1
4200 FOR J= R1TO R2
4225 D= D(I,J)- D(I,J- 1):T= D(I,J)+ D(I,J- 1)
4250 IF D> 0THEN PV= PV+ D:GOTO 4300
4275 NV= NV- D
4300 V= V+ D
4325 AV= AV+ ABS (D)
4350 IN= IN+ .5* T
4375 NEXT J
4400 PRINT I+ 1;TAB( 5);PV;TAB( 17);NV;TAB( 29);V;TAB( 41);AV;TAB( 53);IN
4425 NEXT I
4450 GOTO 15000
4999 REM
5000 REM  COMPUTE VARIATION BETWEEN SERIES
5010 PV= 0:NV= 0:V= 0:AV= 0:IN= 0
5020 PLOT 12,14,6,3
5025 INPUT "SERIES PAIR TO COMPARE (E.G. 1,3): ";S1,S2:S1= S1- 1:S2= S2- 1
5050 INPUT "START AND END OF RANGE (E.G. 12,42): ";R1,R2:R1= R1- 1:R2= R2- 1
5060 B= 0
5070 MN= NO(S1)- 1:IF NO(S2)< = MNTHEN MN= NO(S2)
5075 E= 20:IF E> MNTHEN E= MN
5100 FOR I= R1TO R2
5125 D= D(S2,I)- D(S1,I)
5150 IF D> 0THEN NV= NV+ D:GOTO 5200
5175 PV= PV- D
5200 V= V+ D
5225 AV= AV+ ABS (D)
5250 IF I> STHEN IN= IN+ D(S2,I)- D(S2,I- 1)- D(S1,I)+ D(S1,I- 1)
5275 NEXT
5300 PLOT 12,15,6,6
5350 PRINT TAB( 20);"VARIATION BETWEEN SERIES"
5360 PRINT
5375 PLOT 6,1
5400 PRINT "POS.VAR.    NEG.VAR.     VAR.         ABS.VAR.     INTEGRAL"
5425 PLOT 6,3
5450 PRINT PV;TAB( 12);NV;TAB( 25);V;TAB( 38);AV;TAB( 51);IN
5475 PRINT :PLOT 6,1
5500 PRINT " #";TAB( 6);"SERIES"S1+ 1;TAB( 26);"SERIES"S2+ 1;TAB( 44);"DIFFERENCE"
5510 PLOT 6,3
5525 MN= NO(S1)- 1:IF NO(S2)< = MNTHEN MN= NO(S2)- 1
5575 IF B> MNTHEN B= MN
5600 E= B+ 20:IF E> MNTHEN E= MN
5610 PLOT 3,0,7
5625 FOR I= BTO E
5650 PRINT I+ 1;TAB( 6);D(S1,I);TAB( 26);D(S2,I);TAB( 45);D(S1,I)- D(S2,I)
5675 NEXT
5700 PLOT 3,0,31,6,1
5725 INPUT "BEGINNING TIME (OR '0' TO RETURN): ";B
5750 IF B< 1THEN PLOT 28,11:GOTO 1000
5760 B= B- 1
5775 PLOT 6,3
5800 FOR J= 7TO 31
5825 PLOT 3,0,J,11
5850 NEXT
5875 GOTO 5575
5999 REM
6000 REM  DRAW GRAPH(S)
6010 PLOT 12,14,6,6
6025 INPUT "NUMBER OF GRAPHS TO PLOT (1-4): ";N
6050 FOR I= 0TO N- 1
6075 PRINT "SERIES NUMBER"I+ 1
6100 INPUT S(I):S(I)= S(I)- 1
6125 NEXT
6150 GOSUB 10000
6175 FOR I= 0TO N- 1
6200 PLOT 6,I+ 1
6225 D= D(S(I),0)
6250 GOSUB 14000
6275 PLOT 2,18,16+ 4* YI* (D- YS)/ YD,242
6300 FOR J= 0TO NO(S(I))- 1
6325 IF J/ TP> XS+ (XN- 1)* XDTHEN 6450
6350 D= D(S(I),J)
6375 GOSUB 14000
6400 PLOT 18+ 2* XI* (J/ TP- XS)/ XD,16+ 4* YI* (D- YS)/ YD
6425 NEXT J
6450 PLOT 255
6475 NEXT I
6480 PLOT 3,0,31,6,1
6500 INPUT "PRESS 'RETURN' TO CONTINUE, 1-NEW SCALES OR 2-SAVE: ";Z$
6525 PLOT 6,2
6550 IF Z$= "1"THEN PLOT 12:GOTO 10150
6575 IF Z$= "2"THEN 15100
6600 GOTO 1000
10000 REM  DRAW GRAPHS
10010 IF RP= 1THEN 10360
10020 RP= 1
10025 PLOT 12,14
10050 INPUT "GRAPH NAME: ";G$
10075 INPUT "TIME SCALE NAME, DEPENDENT SCALE NAME: ";X$,Y$
10100 PLOT 6,6
10125 PRINT
10150 INPUT "TIME-SCALE (START, END DIFFERENCE): ";XS,XE,XD
10175 INPUT "DEPENDENT SCALE (START, END, DIFFERENCE): ";YS,YE,YD
10200 PLOT 12,15,6,4
10225 XN= INT ((XE- XS)/ XD)+ 1:IF XN> 8THEN XN= 8
10250 YN= INT ((YE- YS)/ YD)+ 1:IF YN> 14THEN YN= 14
10275 XI= INT (49/ (XN- 1))
10300 YI= INT (26/ (YN- 1))
10325 IF XI< 7THEN XI= 7
10350 IF YI< 1THEN YI= 1
10360 PLOT 12
10375 FOR I= 0TO XN- 1
10400 PLOT 2,2* (9+ I* XI),14,255
10425 NEXT
10450 FOR I= 0TO YN- 1
10475 PLOT 2,16,16+ 4* I* YI,255
10500 NEXT
10525 PLOT 6,3
10550 FOR I= 0TO XN- 1
10575 PLOT 3,8+ I* XI,29:PRINT XS+ I* XD
10600 NEXT
10625 FOR I= 0TO YN- 1
10650 LY= LEN (STR$ (YS+ I* YD))
10675 PLOT 3,7- LY,27- I* YI:PRINT YS+ I* YD
10700 NEXT
10725 PLOT 6,4
10750 I= 2* (10+ XI* (XN- 1))
10775 J= 17+ 4* YI* (YN- 1)
10800 PLOT 2,17,15,242,I,15,I,J,17,J,17,15,255
10825 PLOT 6,6
10850 PLOT 3,INT ((64- LEN (G$))/ 2),0:PRINT G$
10875 PLOT 27,10
10900 PLOT 3,0,2+ INT ((26- LEN (Y$))/ 2):PRINT Y$
10925 PLOT 27,24
10950 PLOT 3,7+ INT ((56- LEN (X$))/ 2),30:PRINT X$
10975 PLOT 6,2
10980 RETURN
13999 REM
14000 REM  CHECK VALUE OF DEPENDENT VARIABLE
14025 IF D< YSTHEN D= YS:RETURN
14050 Z= YS+ YD* (YN- 1)
14075 IF D> ZTHEN D= Z
14100 RETURN
14999 REM
15000 REM  CONTINUE ROUTINE
15025 PLOT 15,3,0,31,6,1
15050 INPUT "ENTER 1-RETURN OR 2-SAVE, THEN RETURN: ";Z
15075 IF Z< > 2THEN 1000
15100 PLOT 27,4:PRINT "SAV CMPTIM.DSP 6000 1000":PLOT 27,27
15125 GOTO 1000