PROGRAM:TANIMATE
:Func
:Normal
:FullScreen
:Radian
:round( x,2)-> x
:PlotsOff
:FnOff
:FnOn 1
:StorePic Pic6
:StoreGDB GDB6
:Xmin->A
:Xmax->C
:Lbl B
:ClrHome
:Menu("MODE?","STATIC",M,"DYNAMIC",A,"PLOT CHANG E",S,"PLOT CHNG
W/Y1",O,"GRAPH O PTIONS",U,"QUIT",Q)
:Lbl U
:DispGraph
:round( x,2)-> x
:StorePic Pic6
:StoreGDB GDB6
:Pause
:ClrHome
:Menu("GRAPH OPT IONS?","NEW Y1", C,"NEW WINDOW",D ,"ZBox",E,"Zoom In",I,"Zoom Out" ,N,"MODE MENU",B )
:Lbl E
:ZBox
:Goto U
:Lbl I
:Zoom In
:Goto U
:Lbl N
:Zoom Out
:Goto U
:Lbl C
:ClrHome
:Disp "ENTER FUN CTION"
:Disp "BETWEEN Q UOTES"
:Disp "IN TERMS OF X."
:Disp " "
:Input "Y1=",Y1
:Goto U
:Lbl D
:ClrHome
:Disp "WINDOW"
:Input " Xmin=", Xmin
:Input " Xmax=", Xmax
:Input " Xscl=", Xscl
:Input " Ymin=", Ymin
:Input " Ymax=", Ymax
:Input " Yscl=", Yscl
:Goto U
:Lbl A
:Xmin->A
:Xmax->C
:ClrHome
:Menu("SAMPLING RATE?","LOW",1," MEDIUM",2,"HIGH" ,3)
:Lbl 1
:5->F
:Goto 4
:Lbl 2
:2->F
:Goto 4
:Lbl 3
:1->F
:Lbl 4
:0->P
:0->T
:Menu("DISPLAY OPTIONS?","TANGENT ONLY",F,"TANGENT/POINTS",G,"POINTS ONLY",H)
:Lbl G
:1->P
:1->T
:Goto Y
:Lbl F
:1->T
:Goto Y
:Lbl H
:1->P
:Lbl Y
:1->I
:ClrList L1,L2
:RecallGDB GDB6
:FnOn 1
:1e20->E
:Text(0,0,"LEFT ENDPOINT")
:Trace
:X->S
:ClrDraw
:If S<A or S>C
:Goto R
:Text(0,40,"RIGHT ENDPOINT")
:Trace
:X->E
:ClrDraw
:If E<A or E>C
:Goto R
:If E S
:Goto R
:For(X,S,E, X*F)
:nDeriv(Y1,X,X)-> M
:If T=1
:Line(A,B,C,D,0)
:If T=1
:RecallPic Pic6
:Y1(X)->Y
:M(A-X)+Y->B
:M(C-X)+Y->D
:If T=1
:Line(A,B,C,D)
:X->L1(I)
:M->L2(I)
:If P=1
:Pt-On(X,M)
:I+1->I
:End
:If T=1
:Line(A,B,C,D,0)
:RecallPic Pic6
:If P=1
:Then
:For(T,1,I-1)
:Pt-On(L1(T),L2( T))
:End
:End
:Pause
:Goto B
:Lbl R
:If S E
:Then
:Disp "X START MUST BE"
:Disp "LESS THAN
X END"
:Else
:Disp "WINDOW OUT OF"
:Disp "RANGE, TRY AGAIN"
:End
:Pause
:Goto B
:Lbl M
:ClrList L1,L2
:Input "X-VALUES ?",K
:If K<0 or K>99
:Then
:ClrHome
:Disp "X-VALUE MUST BE"
:Disp "BETWEEN 0 and 99"
:Pause
:Goto M
:End
:Xmin->A
:Xmax->C
:ClrHome
:0->T
:0->P
:Menu("DISPLAY OPTIONS?","TANGENT ONLY",J,"TANGENT/POINTS",K,"POINTS ONLY",L)
:Lbl K
:1->P
:1->T
:Goto Z
:Lbl J
:1->T
:Goto Z
:Lbl L
:1->P
:Lbl Z
:RecallGDB GDB6
:FnOn 1
:For (I,1,K)
:Trace
:nDeriv(Y1,X,X)-> M
:If T=1
:Line(A,B,C,D,0)
:RecallPic Pic6
:Y1(X)->Y
:M(A-X)+Y->B
:M(C-X)+Y->D
:If T=1
:Line(A,B,C,D)
:Text(0,0,"M=",round(M,2))
:X->L1(I)
:M->L2(I)
:If P=1
:Pt-On(X,M)
:End
:If T=1
:Line(A,B,C,D,0)
:RecallPic Pic6
:If P=1
:Then
:For(T,1,K)
:Pt-On(L1(T),L2( T))
:End
:End
:Pause
:Goto B
:Lbl S
:ClrHome
:Menu("WINDOW?", "SAME AS Y1",5," RESCALE",6)
:Lbl 5
:0->G
:Goto 7
:Lbl 6
:1->G
:Lbl 7
:If G=1 and min( L2)=max(L2)
:Then
:ClrHome
:Disp "DATA IS N OT"
:Disp "APPROPRIA TE FOR"
:Disp "GRAPH. W INDOW"
:Disp "SETTINGS RESET."
:Pause
:0->G
:End
:RecallGDB GDB6
:FnOff
:PlotsOff
:Plot1(Scatter,L 1,L2,.)
:If G=0
:DispGraph
:If G=1
:ZoomStat
:Trace
:Pause
:Plots Off
:Goto B
:Lbl O
:RecallGDB GDB6
:PlotsOff
:FnOn 1
:Plot1(Scatter,L 1,L2,.)
:Trace
:Pause
:PlotsOff
:Goto B
:Lbl Q
:PlotsOff
:ClrHome
:ClrDraw
: