rmb384@leah.UUCP (10/03/87)
Enclosed is a nifty graphing utility A freind of mine and i wrote to help me get through Calc last year. It will draw a graph of a function which it prompts you for. It then asks for the range. Kinda fun. You can type the funtion in like so: Computer: y= you type: sin(x^(cos(x))) Computer: From A= you: 0 Computer: To B=? you: 4 And it scales and draws the graph. Have Fun and enjoy.... ---------------------------- Cut Here --------------------------- 1 ' (c) + 1987 R.M. Bownes & L.B. Fulton 2 ' This program may be copied,modified, 3 ' and distributed so long as this 4 ' notice is kept intact. Please inform 5 ' the authors of any nift changes. 6 N=64:DIM DP(66),DS(66) 20 GOSUB 1000 30 GOSUB 2000 40 GOSUB 3000 50 GOSUB 4000 60 A$=INKEY$:IF A$="" THEN 60 70 IF A$="Q" OR A$="q" THEN MENU 80 RUN 1000 'input section 1010 CLS:PRINT " Model 100 Whiz-bang Graphing Program"; 1020 PRINT @80,"Please input function of the form" 1030 PRINT " y=F(x)" 1040 LINE INPUT "y=";FX$ 1050 PRINT @200,"From A=";:INPUT A 1060 PRINT @220,"To B=";:INPUT B 1070 PRINT " Please Wait"; 1080 RETURN 2000 'Calculation routine 2010 HIGH=-10000:LOW=10000 2015 IN=(B-A)/N 2020 F$="DP(INT((X-A)/IN))="+FX$+CHR$(0) 2500 A0=VARPTR(F$) 2510 A1=PEEK(A0+1)+256*PEEK(A0+2) 2520 CALL 1606,0,A1 2530 ' 2540 FOR X=A TO B STEP IN 2550 CALL 2499,0,63105 2560 NEXT X 2570 FOR I=0 TO N 2580 IF DP(I)>HIGH THEN HIGH=DP(I) 2590 IF DP(I)<LOW THEN LOW=DP(I) 2600 NEXT I 2610 RETURN 3000 ' Scaling function 3010 SS=(HIGH-LOW)/55:'STEP SIZE 3020 FOR I=0 TO N 3030 DS(I)=INT(63-(DP(I)-LOW)/SS) 3040 NEXT I 3050 RETURN 4000 'Plotting routine 4010 CLS:PRINT USING "-###.##{";HIGH; 4020 PRINT @280,"";:PRINT USING"-###.##~";LOW; 4025 T=INT(195/N) 4030 FOR I=0 TO N-1 4040 LINE(44+I*T,DS(I))-(44+(I+1)*T,DS(I+1)) 4050 NEXT I 4060 RETURN