100 '+----------------------+ 101 '| Function Analysis 102 '| by Jack Tingle 103 '| Dec. 1984-Salem MA 104 '| Version 1.0 106 '+----------------------+ 107 '| User Function should 108 '| be a subroutine at 109 '| lines 60000-65529 110 '| 111 '| You may use variables 112 '| beginning with T-Z. 113 '| The independent 114 '| variable should be X 115 '| and the dependent 116 '| variable should be Y. 117 '+----------------------+ 118 CLS:PRINT:PRINT " LIST FIRST FEW LINES FOR INSTRUCTIONS." 119 FOR I=0 TO 1000:NEXT I 1000 CLS: DEFINT I 1010 DIM MI$(6),FX(2),GY(2) 1020 FOR I=1 TO 5 STEP 2 1030 READ MI$(I),MI$(I+1) 1040 NEXT I 1050 DATA INTEGRAL,ZEROES 1060 DATA *****,***** 1070 DATA EVALUATE,STOP 5000 'START OF MAIN LOOP 5005 CLS:PRINT 5010 FOR I=1 TO 5 STEP 2 5020 PRINT USING "####) \ \ ";I,MI$(I),I+1,MI$(I+1):PRINT 5030 NEXT I 5040 INPUT "YOUR CHOICE";AN 5050 CLS 5060 IF AN=6 THEN END 5065 MI$(0)=MI$(AN) 5070 ON AN GOSUB 10000,20000,30000,40000,50000 5080 GOTO 5000 10000 'INTEGRAL 10010 CLS:PRINT 10020 PRINT "WHAT ARE LOWER AND UPPER LIMITS?" 10025 PRINT:INPUT"LOWER";BI:PRINT:INPUT"UPPER";EI 10030 IF EI<=BI THEN 10020 10040 PRINT:INPUT "DIVIDE INTO HOW MANY PARTS";PT 10050 IF PT<=0 THEN 10040 10068 PL=200 10070 CLS:IF PT=>PL THEN PRINT "THIS MAY BE SLOW." 10080 DS=(EI-BI)/PT:CA=0 10100 X=BI 10110 GOSUB 60000 10120 FS=Y 10130 FOR AS=BI+DS TO EI STEP DS 10140 X=AS 10150 GOSUB 60000 10160 FF=Y 10165 CA=CA+(FS+FF)*DS/2 10170 FS=FF 10175 PRINT "."; 10180 NEXT AS 10190 CLS:PRINT 10200 PRINT "THE INTEGRAL FROM ";BI 10210 PRINT " TO ";EI 10220 PRINT:PRINT "IS ";CA:PRINT 10230 GOSUB 52000 19999 RETURN 20000 'ZEROES 20010 GOSUB 28000 20020 'EVALUATE END POINTS 20030 FX(0)=BI:FX(2)=EI 20040 X=FX(0):GOSUB 60000:GY(0)=Y 20050 X=FX(2):GOSUB 60000:GY(2)=Y 20100 'START OF LOOP 20110 FX(1)=(FX(0)+FX(2))/2 20120 X=FX(1):GOSUB 60000:GY(1)=Y 20130 IF ABS(GY(1))