Exploring the past: My old TI-BASIC programs

Like many others around my age, my first exposure to programming came from my TI graphing calculator and its built in TI-BASIC programming language. I recently pulled out my old TI-83+ for a bit of nostalgic fun, and I copied out a few of the programs I remember writing. It’s interesting revisiting these almost a decade later and trying to figure out just what exactly I was thinking when I wrote them.

The Pythagorean Theorem

One of my earliest programs (at least among the ones that survived) was a little thing that basically ran the Pythagorean Theorem. Given the length of two sides of a right triangle, it would deduce the length of the third.

I think that by the time I was writing these programs I was well past the point of ever being quizzed on the Pythagorean Theorem, so I’m guessing that this was some early proof-of-concept experimentation with the idea of writing programs for the TI-83+. I used a relatively simple formula that I could easily test to make sure the program behaved as I expected it to.


The style of user input is very primitive, the program prompts for the length of all three sides of the triangle and the user is expected to enter a “0” for the unknown side. I apparently didn’t add in a contingency in case the user entered a “0” for the first leg. These are the corners you can cut when you’re 100% sure that no one besides yourself will ever use the program you’re writing.


This program probably dates to around the mid-point of my career as a TI-BASIC developer. It’s a little more complex than the program above, and the method for handling user input is slightly improved. The function of this program is to take as input the angle (in degrees) of one angle of a right triangle, the length of one side, and the relationship of the know side to the known angle (e.g. opposite, adjacent, or hypotenuse).

I would have been in the middle of Algebra II or Analysis and Trigonometry when I wrote this, so it’s likely that I actually used this program in my math classes. The math isn’t particularly complicated, so it likely just saved me a few extra computations on the calculator here and there.


I hate to say it, but I hardly remember what any of that math means. I’m sure it has something to do with SohCahToa. Anyway, the user input is improved here, instead of just having the user put in a “0” for any unknown value, I actually specified the relationship between the angle and side by using letters for input. This is still less than perfect, as anyone who sees this program for the first time will have no idea what to input for “WHICH SIDE:”, but it’s a step in the right direction.


This program represents my pinnacle as a 17-year-old TI-BASIC programmer. Written specifically for one chapter of our textbook that dealt with interest formulas, this program was devised to solve any of those formulas for any possible variable. Its user input system is substantially improved over my previous works, and it demonstrates a multi-level complexity instead of the simple strung-together if/then statements we’ve seen up to this point.

I remember very clearly writing this program in specific response to class materials, and I even remember the test on this subject, which I finished significantly faster than everyone else in the class. I don’t think it can really be considered cheating, since the level of understanding of the material required to write this program was probably substantially higher than that required to ace the test.


It appears this program was left unfinished. It feels like a waste to leave it that way, but I don’t know if I’m willing to rededicate myself to this project enough to figure out how to solve for Time in an Investment formula. The program still runs and solves fine, so apparently leaving out that section and a couple of trailing Stop lines isn’t really a problem.

Potentially a problem, I have no idea what the solve() function that I made use of several times does or why it was necessary. And I seem to be all over the place when assigning variable names. I exclusively used single letters for variables, I wonder if it’s possible to create longer variable names in TI-BASIC and I just didn’t know about it.

One thing I do know for sure, the use of menu() is a much better way to navigate through user input options than either of the methods in the other programs above. And the fact that I realized I could use menus within menus instead of trying to use “0” values to deduce which variable to solve for once inside the top level menu is satisfying. Overall, this is a pretty neat and really quite useful program. It would probably be even better if it was finished.

Tagged with: ,
Posted in General Musings

Leave a Reply

Your email address will not be published. Required fields are marked *