@||||@~~~ B"Dl 100 ! PROGRAM BY TIM STRYKER, CLASS OF 1972, NORTHFIELD MOUNT HERMON SCHOOL 110 DEFFNB$(Q$)=MID(Q$,2,LEN(Q$)-2%) 120 DEFFNG(Q):C5=0:FORN9%=1%TOV0%/2%:IFY9(N9%)=0%THEN130ELSE Y2=.00000120/Y9(N9%):IFY2=INT(Y2)THEN150 130 Y1=INT(Y9(N9%)+1E-6):IFABS(Y9(N9%)-Y1)<1E-5THENY9(N9%)=Y1 140 C5=C5+Y9(N9%)*Q^(V0%/2%-N9%) 150 NEXTN9%:FNG=C5:FNEND 160 DIM S$(9),T$(20),Z(20),Y9(10),F(10,10) 170 MATREADS$(9%) 180 &:&"YES";:MATINPUTT$:V1%=NUM 190 FORX9%=3%TO9%:IFLEFT(S$(X9%),3)=LEFT(T$(1%),3)THEN210 200 NEXTX9%:&"WHAT IS THIS? TYPE HLP FOR LIST.":GOTO180 210 T$(1)=RIGHT(T$(1),4) 220 ON X9%-2% GOTO 240,520,570,710,750,780,820 ! PTS INT EVL DER DEF INV HLP 230 ! POINTS 240 Z(N8%)=VAL(T$(N8%))FORN8%=1%TOV1%:V0%=V1% 250 FORX%=1%TOV0%STEP2%:F(X%/2%+1.5,0%)=Z(X%+1%) 260 FORM%=X%+2%TOV0%STEP2%:IFZ(M%)=Z(X%)THEN&"RELATION":&:GOTO180 270 NEXTM%:F(X%/2%+1.5,V0%/2%-X1%)=Z(X%)^X1%FORX1%=V0%/2%-1%TO0%STEP-1% 280 NEXTX%:FORX0%=V0%/2%TO2%STEP-1% 290 FORX1%=1%TOX0%-1%:R8=F(X1%+1%,X0%)/F(X1%,X0%) 300 F(X1%,X2%)=R8*F(X1%,X2%)FORX2%=0%TOV0%/2% 310 F(X1%,X2%)=F(X1%+1%,X2%)-F(X1%,X2%)FORX2%=0%TOX0% 320 NEXTX1%:NEXTX0%:FORN7%=1%TOV0%/2% 330 S=S+Y9(N8%)*F(N7%,N8%)FORN8%=1%TON7%-1% 340 Y9(N7%)=(F(N7%,0%)-S)/F(N7%,N7%):S=0% 350 NEXTN7%:GOSUB370:GOTO180 360 ! PRINT POLYNOMIAL 370 IFY9(1%)=0%THENY9(N8%)=Y9(N8%+1%)FORN8%=1%TOV0%/2%-1%:V0%=V0%-2%: IFV0%=0%THEN380ELSE370 380 &"Y = ";:FORN6%=1%TOV0%/2% 390 Y=Y9(N6%):A%=V0%/2%-N6%:IFY=0%THEN420 400 L=.00000120/Y:IFL=INT(L)ANDPOS(0)<>4%THEN&"+ "; 410 IFL=INT(L)THEN&"C"FNB$(NUM$(A%))" ";:IFA%<>0THEN460ELSE&:GOTO470 420 Y1=INT(Y+1E-6):IFABS(Y1-Y)<1E-5THENY=Y1 430 IFY=0%THEN470ELSEIFPOS(0)=4%THEN440ELSEIFY>0%THEN&"+";ELSE &"-";:Y=Y*-1% 440 IFA%=0%THEN&Y:GOTO470 450 IFY<>SGN(Y)THEN&Y;ELSEIFPOS(0)=4%ANDY=-1%THEN&"-";ELSE&" "; 460 IFA%=1%THEN&"X ";ELSE&"X^"RIGHT(NUM$(A%),2); 470 NEXTN6%:IFPOS(0)=4%THEN&"0"ELSEIFPOS(0)<>0%THEN& 480 RETURN 490 FORR4%=1%TOV0%STEP2%:Z(R4%)=R4% 500 Z(R4%+1%)=FNG(R4%):NEXTR4%:RETURN 510 ! INTEGRAL 520 Y9(X9%)=Y9(X9%)/(V0%/2%-X9%+1%)FORX9%=1%TOV0%/2% 530 V0%=V0%+2%:Y9(V0%/2%)=.00000120:GOSUB370:GOSUB490 540 IFV1%=2%THEN&"THE BEAST IS"FNG(VAL(T$(2)))-FNG(VAL(T$(1))) 550 GOTO180 560 ! EVALUATION 570 IFV0%<>0%THENGOSUB370ELSEV0%=2%:GOSUB370 580 FORV7%=1%TOV1% 590 J5%=INSTR(1,T$(V7%),"T"):J6%=INSTR(1,T$(V7%),"/") 600 R1%=-1%*SGN(J5%):IFNOTR1%THENP8$=NUM$(VAL(T$(V7%))):GOTO650 610 R2%=-1%*SGN(J6%):IFR2%THENJ6=VAL(RIGHT(T$(V7%),J6%+1%)) ELSEJ6=1% 620 IFJ6%THENP9$=MID(T$(V7%),J5%+1%,J6%-J5%-1%)ELSE P9$=RIGHT(T$(V7%),J5%+1%) 630 FORV8=VAL(LEFT(T$(V7%),J5%-1%))TOVAL(P9$)STEPJ6 640 P8$=NUM$(V8) 650 R9=FNG(VAL(P8$)):IFR9<0THENB3$="-"ELSEB3$="" 660 IFVAL(P8$)<0THENB4$="-"ELSEB4$="" 670 &" ("B4$;FNB$(P8$)","B3$;FNB$(NUM$(R9))")" 680 IFJ5%THEN&;:NEXTV8 690 NEXTV7%:GOTO180 700 ! DERIVATIVE 710 Y9(V7%)=Y9(V7%)*(V0%/2%-V7%)FORV7%=1%TOV0%/2%-1% 720 V0%=V0%-2%UNLESSV0%=0% 730 GOSUB370:GOSUB490:GOTO180 740 ! DEFINE 750 V0%=V1%*2%:Y9(V7%)=VAL(T$(V7%))FORV7%=1%TOV1% 760 GOSUB370:GOSUB490:GOTO180 770 ! INVERT 780 IFV0%>4%THEN&"INVERSE IS NOT POLYNOMIAL":GOTO180 790 FORV7%=1%TOV0%STEP2%:R0=Z(V7%):Z(V7%)=Z(V7%+1%) 800 Z(V7%+1%)=R0:NEXTV7%:GOTO250 810 ! HELP 820 &:&LEFT(S$(V7%),3%),RIGHT(S$(V7%),4%)FORV7%=1%TO9%:GOTO180 830 DATAOPTMNEMONIC,-------------,PTSPOINTS,INTINTEGRAL 840 DATAEVLEVALUATION,DERDERIVATIVE,DEFDEFINE,INVINVERT,HLPHELP 850 END KEY