Project Name: Jack's Opening Animation and Logarithmic Program
Going into this project, I had never used or worked with TI-Basic, Basic, or Texas Instrument Programmable Calculators. I personally own a TI-34 which is way down the ladder, but I have friends who have TI-83s and 84s. I learned about their ability to be programmed but never took action and had a reason to up until this week when we learned about logarithms. I know, I'm a math novice because I am only in Algebra 2, but it comes easy to me and is enjoyable. I couldn't get past the fact that a process like finding log(3)8=x could be automated using a program so I found this site and wrote one using documentation from www.tibasicdev.wikidot.com.
So far I've written an animation, subprogram definable function, and logarithm program. The most complex would be the definable function with lists because it has the steepest learning curve. The basic premise is that the prgmLOG calls on prgmNAMEANIM to do an intro to the program. While making prgmNAMEANIM, I discovered a cool trick using FOR combined with PT-ON so I wrote a customizable function for it that takes six arguments with a switcher variable in the list.
The Pathway: prgmLOG -> prgmNAMEANIM -> prgmFUNCPNT -> prgmNAMEANIM -> prgm FUNCPNT -> prgmNAMEANIM -> prgmLOG
LOG Program
Code:
NAMEANIM Program
Code:
FUNCPNT Program
Code:
Feel free to leave feedback because I need tips and tricks since I'm new. My background is Lua and Java, but I'm learning Objective-C and Swift. I also can use JavaScript and HTML only with Documentation on the side. I love to code, and so far this has been an awesome project to dive into and figure out. Thanks to everyone who answered my questions in the chat!
Going into this project, I had never used or worked with TI-Basic, Basic, or Texas Instrument Programmable Calculators. I personally own a TI-34 which is way down the ladder, but I have friends who have TI-83s and 84s. I learned about their ability to be programmed but never took action and had a reason to up until this week when we learned about logarithms. I know, I'm a math novice because I am only in Algebra 2, but it comes easy to me and is enjoyable. I couldn't get past the fact that a process like finding log(3)8=x could be automated using a program so I found this site and wrote one using documentation from www.tibasicdev.wikidot.com.
So far I've written an animation, subprogram definable function, and logarithm program. The most complex would be the definable function with lists because it has the steepest learning curve. The basic premise is that the prgmLOG calls on prgmNAMEANIM to do an intro to the program. While making prgmNAMEANIM, I discovered a cool trick using FOR combined with PT-ON so I wrote a customizable function for it that takes six arguments with a switcher variable in the list.
The Pathway: prgmLOG -> prgmNAMEANIM -> prgmFUNCPNT -> prgmNAMEANIM -> prgm FUNCPNT -> prgmNAMEANIM -> prgmLOG
LOG Program
Code:
prgmNAMEANIM
ClrDraw
Lbl 6
"LOGARITHM SOLVER"->Str1
"log(b)X=Y"->Str2
ClrHome
Menu(Str1,Str2,1,"Find b",2,"Find X",3,"Find Y",4,"Quit",5)
Lbl 5:Stop
Lbl 1:Goto 6
Lbl 2
Disp Str1:Disp Str2
Input "X: ",X
Input "Y: ",Y
X^(1/Y)->B
Disp "b: ",B
Goto 7
Lbl 3
Disp Str1:Disp Str2
Input "b: ",B
Input "Y: ",Y
B^Y->X
Disp "X: ",X
Goto 7
Lbl 4
Disp Str1:Disp Str2
Input "b: ",B
Input "X: ",X
ln(X)/ln(B)->Y
Disp "Y: ",Y
Lbl 7
NAMEANIM Program
Code:
ClrDraw:AxesOff
{3,4,9,1,1,0,6}->|LPNT
0->X
For(A,1,24
Text(A,42,"The
End
For(A,1,19
Text(31,A+10," Rascal
Text(31,71-A,"Jack
End
For(A,~10,~2.75,.325)
Horizontal ~A
Horizontal A
End
Repeat 0
rand(50)
Text(53,34," [ENTER]")
rand(50)
prgmFUNCPNT
If getKey or |LPNT(6):Then
Text(53,38," OKAY!")
rand(50)
{2.4,4,9,1,0,0,6}->|LPNT
prgmFUNCPNT
rand(10)
Return
End:End
FUNCPNT Program
Code:
//Checks if List is Empty
If dim(|LPNT)<1:Then
Disp "ERROR: "
Disp "List Empty"
Stop
End
//Setup for Function
0->|LPNT(6)
Pt-Off(0,abs(|LPNT(2)+20),|LPNT(7))
//Converts Height from 1.25 to .25 depending on Pixels or Points X,Y
If |LPNT(4):Then
1.25->H
Else
.25->H
End
//Main Brain of Function
For(X,0,|LPNT(1),.6)
For(Y,|LPNT(2),|LPNT(3),H)
If getKey
1->|LPNT(6)
If |LPNT(4):Then
Pt-On(X,((Y*DeltaY)-abs(Ymax)),|LPNT(7))
Pt-On(~X,((Y*DeltaY)-abs(Ymax)),|LPNT(7))
Else
Pt-On(X,Y,|LPNT(7))
Pt-On(~X,Y,|LPNT(7))
End
If |LPNT(5) and |LPNT(6)=1 and X=|LPNT(1) and Y=|LPNT(3):Then
Return
End:End:End
//List Guidelines
//1. Width in Points
//2. Starting Height
//3. Stopping Height
//4. Height Type:True is Point, False is Pixel
//5. getKey Option On/Off
//6. getKey Option Variable:1=getKey pressed while in Function, Should be defined 0 in Program
//7. Type of Pt Brush:6 is the Recommended Brush
Feel free to leave feedback because I need tips and tricks since I'm new. My background is Lua and Java, but I'm learning Objective-C and Swift. I also can use JavaScript and HTML only with Documentation on the side. I love to code, and so far this has been an awesome project to dive into and figure out. Thanks to everyone who answered my questions in the chat!