GRAFALL.MWB This file is included because of a fault in the original listing 0010° DIÍ A(8),A0(200© [181] 00110 A(0) = INT(RND*170)+20 : A(2) = INT (RND*2) : A(3) = INT (RND*3) Û±±²Ý 00120 A0(0) = RND*180 Û±°µÝ 00130 FOR I = 1 TO A(0)+1 : A0(I) = A0(I-1)+(RND*9)-5 : NEXT I Û±¹·Ý 04000 REM The following routine will graph real numbers Û±¹¶Ý 04010 REM from -99999 to +99999. Put data in variables : Û±¹·Ý 04020 REM a0( ) Array containing the data Û±¹¸Ý 04030 REM a(0) No of data to be graphed -1 Û±¹¹Ý 04040 REM a(2) 1 = HIRES 0 = LORES Û²°°Ý 04050 REM a(3) 0 = Bar 1 = Dot 2 = line graph Û²°±Ý 04060 REM Û²°²Ý 04070 A1 = 99999 : A7 = -99999 Û²°¸Ý 04080 FOR I = 0 TO A(0) Û²°¶Ý 04090 IF A0(I) A7 : A7 = A0(I) : REM find maximum Û°·³Ý 04110 NEXT I Û°·¸Ý 04120 A2 = A7 - A1 : REM Range of values Û²°°Ý 04130 IF A2 = 0 : CURS 1,8 : PRINT"Data all equal " : PLAY 22; 0, 8 : GOTO 130 Û°¹¹Ý 04140 IF A(2) = 1 THEN 4160 Û±³²Ý 04150 CLS : LORES : A3 = 45 : A4 = 110 : GOTO4170 Û±²´Ý 04160 CLS : HIRES : A3 = 250 : A4 = 450 Û±°µÝ 04170 A2 = A2/A3 : REM step factor vertical Û²°´Ý 04180 A(4) = INT(A4/FLT(A(0))) : REM step factor horizontal Û²²·Ý 04190 IF A(4)<1 : CURS 1,8 : PRINT"Too many values" : PLAY 22; 0, 8 : GOTO 130 Û°·²Ý 04200 A(5) = INT(A4/8)+2 : REM Y axis Û±²±Ý 04210 PLOT A(5),INT(A3) TO A(5),0 : REM TO A(5)+INT(A4)+1,0 : REM print axes Û±¶¹Ý 04220 IF A1<-9999.9 OR A7>9999.9 THEN 4240 Û°²´Ý 04230 CURS 1,16 : PRINT [F7.1 A1]; : CURS 1,1 : PRINT [F7.1 A7] : GOTO 4250 Û²³²Ý 04235 REM label axes Û²°¶Ý 04240 CURS 1,16 : PRINT [F7.0 A1]; : CURS 1,1 : PRINT [F7.0 A7] : GOTO 4250 Û²³±Ý 04250 A(6) = INT((A0(0)-A1)/A2) : REM 1st value for plot Û²°²Ý 04260 ON A(3)+1 GOTO 4270, 4330, 4390 Û±³°Ý 04265 REM Bar graph Û²°¹Ý 04270 FOR I = 0 TO A(0) Û²°·Ý 04280 A(8) = I*A(4)+A(5)+1 : REM horizontal coordinate Û±µ°Ý 04290 A(7) = INT((A0(I)-A1)/A2) : REM vertical coordinate Û²³²Ý 04300 PLOT A(8),0 TO A(8),A(7) Û±´²Ý 04310 NEXT I Û°¸°Ý 04320 GOTO 4450 Û²°·Ý 04325 REM Dot graph Û²°¶Ý 04330 FOR I = 0 TO A(0) Û²°´Ý 04340 A(8) = I*A(4)+A(5)+1 : REM horizontal coordinate Û±´·Ý 04350 A(7) = INT((A0(I)-A1)/A2) : REM vertical coordinate Û²²¹Ý 04360 SET A(8),A(7) Û±²°Ý 04370 NEXT I Û°¸¶Ý 04380 GOTO 4450 Û²±³Ý 04385 REM Line graph Û²±²Ý 04390 FOR I = 1 TO A(0) Û²±±Ý 04400 A(8) = I*A(4)+A(5) : REM horizontal coordinate Û°µ²Ý 04410 A(7) = INT((A0(I)-A1)/A2) : REM vertical coordinate Û²²¶Ý Š04420 PLOT A(8),A(7) TO A(8)-A(4),A(6) Û°²¸Ý 04430 A(6) = A(7) Û±µ³Ý 04440 NEXT I Û°¸´Ý 04450 IF A1<0 AND A7>0 : PLOTI A(5)+1,INT(-A1/A2) TO INT(A4)+A(5)+1, INT(-A1/A2): CURS 1,INT((16*A7)/(A7-A1))+1 : PRINT" 00.0" Û²´²Ý 04455 REM plot and label x axis if it is on screen Û²±°Ý 04460 IF KEY <> " " THEN 4460 Û°°±Ý 10000 GOTO 110 Û±¸¸Ý