table.82p - From the Spring 1996 issue of Eightysomething! Multi-function Tables for the TI-85 Dave Slomer, Winton Woods HS, Cinti, OH While surfing the Internet in August, I found a posting from Marco Radzinschi (Baltimore, MD) to the Graph-TI listserv. Marco mentioned that he had written a TABLE program for the TI-85 and that he would be glad to post it to the list or to anyone interested. I decided to look at this humble guy’s work, since all of us 85 lovers really do envy tables on the 82 and “Who knows?”, I mused, “maybe this guy’s stuff would be good.” Yeah, “maybe”. It is an elegant, full-featured, too-good-to-be-true work of programming art (see figure 1). When I later learned that Marco was (then) an eighth grader (and is now a freshman at Pikesville High School), I was stunned. His original, crude-by-comparison version was soon upgraded, and then again, and again (all in a matter of days), to its final, couldn’t-be-much-better form. Via truly inspired code, he uses EVAL and dimL to find out how many functions are defined while utilizing a matrix (which he redimensions repeatedly) of complex numbers to hold each point (both coordinates) for each function in columns, one row at a time. His thorough knowledge of the 85 has led to a winner of a program. Short, sweet, powerful. Enviable. The best things about Marco’s program are: · the user may store to and turn on or off any of the 99 definable functions (the ones which are on will appear in the table); · the functions may contain lists and may be piecewise defined; · it requires no input — just define the function(s) (see fig. 2) and a suitable window (see fig. 3) before running (Marco uses the window variables as table parameters); · it can handle any number of functions; · at the end of execution, the user may recall the matrix (T) containing the data and use the cursor keys to scroll through it (see fig. 4), but should go into the matrix editor and travel from function to function via the COLå and ÏCOL buttons (see figs. 5 and 6) to get the best look at the table. The user must pay close attention to (i.e., think about) the quantity (xMax-xMin)/xScl+1, which equals the number of points in the table, since it could be quite large, taking too long and too much memory. A good idea would be to have the program display this quantity at the outset, while another would be to prompt the user for the number of points to be plotted (NP) and then store (xMax-xMin)/(NP-1) üxScl, but I kind of like the thinking (read: “estimating”) alternative. Besides, storing to xScl will cause regraphing if the graph is redisplayed. The program is slow at first since it does all its calculations before displaying anything, but once it’s finished, it couldn’t be faster, moving around the matrix/table much faster than an 82! Unfortunately (but predictably) the program cannot handle domain errors. For instance, attempting to graph any of y=1/x, y=x^(1/2), y=log x, or y=sin-1x in the window [-6.3,6.3] will not work. Still, the user’s careful thought about selecting the window will enable the program to avoid these errors (though not necessarily for all functions in one run), a good skill to have and improve. (P.S. Marco advises that DiffEq and Polar versions of the table program may be obtained simply by changing a few reserved words (e.g., xMin) to match the corresponding MODE and system variables.)