1 SUB SCATTE & ! 500.26 - STAT11 - SCATTE & ! & ! SCATTER DIAGRAM MODULE & ! & ! RELEASED FOR SUBMISSION TO THE DECUS LIBRARY BY THE DEC & ! ENGINEERING SYSTEMS GROUP AND THE EDUCATION PRODUCTS GROUP & ! SEPTEMBER, 1977 & ! & 2 ! COPYRIGHT (C) 1973, DIGITAL EQUIPMENT CORPORATION, & ! & ! MAYNARD, MASSACHUSETTS & 3 ! THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE & ! ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION OF & ! DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS & ! MAY OTHERWISE BE PROVIDED IN WRITING BY DEC. & 4 ! THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT & ! NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL & ! EQUIPMENT CORPORATION. & 5 ! DEC ASSUMES NO RESPONSIBILITY FOR USE OR RELIABILITY OF ITS & ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. & ! & ! & 6 ! THIS MODULE PRINTS A SCATTER DIAGRAM (X VS.Y) FOR ANY TWO & ! VARIABLES IN THE DATA MATRIX. & ! & 7 ! AUTHOR: MICHAEL D. KNAUER & ! & ! VERSION NUMBER: 001 & ! & ! DATE: OCTOBER, 1973 & ! & ! & 8 ! MODIFICATIONS: MAY, 1975 & ! & ! MODIFIED TO ACCEPT MISSING DATA POINTS & ! & ! BY ARDOTH HASSLER WILSON & ! CENTRAL STATE UNIVERSITY & ! EDMOND, OKLAHOMA & ! & 00009! MODIFICATIONS: JUNE, 1976 & ! & ! CTRL/C TRAP ADDED & 10 ! & ! CALLING ARGUMENTS & 11 ! 1) VARIABLE NAME: F3$ & ! RANGE OF VALUES: S00000.RWM - S99999.RWM & ! USE: THIS IS THE NAME OF THE 250 ROW & ! BY 15 COLUMN VIRTUAL DATA MATRIX & ! USED BY ALL STAT11 MODULES. & 13 ! 2) VARIABLE NAME: F4$ & ! RANGE OF VALUES: S00000.ESF - S99999.ESF & ! USE: THIS IS THE NAME OF THE FILE THAT & ! CONTAINS ELEMENTARY STATISTICS & 15 ! 3) VARIABLE NAME: R% & ! RANGE OF VALUES: 1 - 250 & ! USE: CONTAINS THE NUMBER OF ROWS OF & ! ACTUAL DATA IN MATRIX F3$ & 17 ! 4) VARIABLE NAME: C% & ! RANGE OF VALUES: 1 - 15 & ! USE: CONTAINS THE NUMBER OF COLUMNS & ! OF ACTUAL DATA IN MATRIX F3$ & 20 ! & ! & ! & ! RETURNING ARGUMENTS & ! & ! NONE -- THIS MODULE DOES NOT ALTER OR ADD TO ANY OF THE & ! FILES OR VARIABLES PASSED TO IT. & ! & ! & 30 ! & ! DESCRIPTION OF FUNCTION & ! & ! THIS MODULE PRINTS A SCATTER DIAGRAM (X VS. Y) FOR ANY & ! TWO VARIABLES IN THE DATA MATRIX. & 31 ! IT FIRST ASKS THE USER TO ENTER THE HORIZONTAL AND VERTICAL & ! VARIABLE NUMBERS AND THEN USES THOSE NUMBERS AND THE ELEMENTARY & ! STATISTICS TO COMPUTE THE LIMITS AND INTERVALS FOR THE DIAGRAM. & 32 ! AFTER TRANSFERING THE VARIABLES FROM THE DATA MATRIX TO A & ! TEMPORARY ARRAY, IT SORTS THE VERTICAL DATA POINTS IN & ! DECREASING ORDER OF MAGNITUDE, KEEPING HORIZONTAL DATA & ! POINTS MATCHING. & 33 ! IT THEN PRINTS THE SCATTER DIAGRAM, USING ONE PRINTLINE & ! FOR EACH VERTICAL INTERVAL. & 34 ! FINALLY, IT ASKS THE USER IF HE WANTS ANOTHER SCATTER & ! DIAGRAM. IF HE DOESN'T, IT CHAINS TO STATCM. & 35 ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & 90 ! & ! Modifications: August,1981 & ! & ! COMMON (STAT) MODULE$ = 6%, LINE%, SAV.F$ = 127% & ! added to replace core common and also to let STTMGR know & ! who to chain to (MODULE$). Once in MODULE$, LINE% indicates & ! line to begin execution. & ! & \ COMMON (STAT) MODULE$ = 6%, LINE%, SAV.F$ = 127% & 95 ! & ! & ! THIS FIRST SECTION OPENS THE DATA AND ELEMENTARY STATISTICS & ! FILES AND ASKS THE USER TO ENTER THE HORIZONTAL AND VERTICAL & ! VARIABLES FOR THE SCATTER DIAGRAM. & ! & ! & 100 ON ERROR GOTO 915 & \ GOSUB 10000 & \ DIM X(250%),Y(250%),D$(60%) 110 !F$=SYS(CHR$(7)) & \ F$ = SAV.F$ 115 A9$=MID(F$,62%,9%) & \ A9$=LEFT(A9$,INSTR(5%,A9$,"]")) & \ H9=.9E-38 120 R%=VAL(MID(F$,46%,5%)) 130 C%=VAL(MID(F$,51%,5%)) 140 F3$=MID(F$,31%,15%) 150 F4$=LEFT(F3$+" ",6%)+".ESF" 160 OPEN F3$ FOR INPUT AS FILE 3, VIRTUAL 170 DIM #3,A(250%,15%) 180 OPEN F4$ FOR INPUT AS FILE 4, VIRTUAL 190 DIM #4,S(10%,15%) 200 PRINT "ENTER X(HORIZONTAL) AND Y(VERTICAL) VARIABLES " 210 INPUT "SEPARATE X AND Y WITH A COMMA"; X%,Y% & \ PRINT 220 IF X%>=1% AND X%<=C% AND Y%>=1% AND Y%<=C% GOTO 240 225 PRINT "YOUR VARIABLE NUMBERS MUST BE BETWEEN 1 AND"; C% 230 GOTO 200 235 ! & ! & ! & ! THIS SECTION COMPUTES THE LIMITS AND INTERVALS FOR THE DIAGRAM, & ! MAKING ONE VERTICAL INTERVAL CORRESPOND TO ONE PRINTLINE. & ! & ! & 240 ! 250 U=(S(1%,X%)-S(2%,X%))/30 260 X1=S(2%,X%)-U & \ X9=S(1%,X%)+U 270 V=(S(1%,Y%)-S(2%,Y%))/18 280 Y1=S(2%,Y%)-V & \ Y9=S(1%,Y%)+V 290 X5=(X9-X1)/60 & \ Y5=(Y9-Y1)/36 292 IF U<>0 AND V<>0 GOTO 300 294 IF U=0 THEN PRINT "*** VARIABLE NUMBER";X%;" IS A CONSTANT***" 296 IF V=0 THEN PRINT "*** VARIABLE NUMBER";Y%;" IS A CONSTANT***" 298 PRINT 299 GOTO 950 ! & ! & ! & ! NEXT THE USER IS ASKED TO ENTER A PLOT SYMBOL; THE DEFAULT & ! CHARACTER IS AN ASTERISK. & ! & ! 300 INPUT "TYPE A PLOT SYMBOL IN THE FORM X ";P$ 305 P$=LEFT(P$+"*",1%) & \ PRINT & \ PRINT 309 ! & ! & ! & ! HERE THE DATA IS TRANSFERRED FROM THE INPUT MATRIX TO TEMPORARY & ! X(J%) AND Y(J%) MATRICES. & ! & 310 J1%=0% & \ FOR J%=1% TO R% 315 IF A(J%,X%)=H9 OR A(J%,Y%)=H9 GOTO 330 320 J1%=J1%+1% & \ X(J1%)=A(J%,X%) & \ Y(J1%)=A(J%,Y%) 330 NEXT J% & \ IF J1%=0% THEN PRINT "NO DATA EXISTS FOR THESE"; & " VARIABLES" & \ GOTO 950 399 ! & ! & ! HERE THE Y'S ARE SORTED IN DECREASING ORDER OF MAGNITUDE USING AN & ! INTERCHANGE SORT. THE X'S ARE KEPT MATCHING WITH CORRESPONDING Y'S; & ! I.E., IF Y(2) AND Y(3) ARE INTERCHANGED, THEN X(2) AND X(3) ARE & ! INTERCHANGED, ALSO. & ! & ! 400 T9%=J1%-1% 410 FOR K%=1% TO J1% 420 S9%=0% 430 FOR J%=1% TO T9% 440 IF Y(J%)>=Y(J%+1%) GOTO 490 450 Q1=X(J%) & \ Q2=Y(J%) 460 X(J%)=X(J%+1%) & \ Y(J%)=Y(J%+1%) 470 X(J%+1%)=Q1 & \ Y(J%+1%)=Q2 480 S9%=1% 490 NEXT J% 500 IF S9%=0% GOTO 600 510 T9%=T9%-1% 520 NEXT K% 590 ! & ! & ! & ! HERE THE SCATTER DIAGRAM IS PRINTED. FOR EACH LINE CORRESPONDING & ! TO Y POSITION(S), THE ASSOCIATED X POSITION(S) ARE FILLED IN WITH & ! THE PRINT CHARACTER, AND THE LINE IS PRINTED. & ! & ! & 600 V1=Y9 & \ N%=1% 610 FOR J%=0% TO 35% 620 IF J%-(J%/6%)*6%<>0% GOTO 660 630 PRINT USING "######.###",V1; 640 PRINT " +"; 650 GOTO 670 660 PRINT " ."; 670 D$(I%)=" " FOR I%=0% TO 60% 680 IF N%>J1% GOTO 800 690 IF Y(N%)