Home
Texas Instruments
Calculator
TI-89
Texas Instruments TI-89 Tip List
5
of 1
of 1 rating
507 pages
Give review
Manual
Specs
To Next Page
To Next Page
To Previous Page
To Previous Page
Loading...
{}
→
g_ll
0
→
g_d
For k,
1
,g_dim
mid(g_str,k,
1
)
→
cc
if cc
≥
"A" and cc
≤
"Z":char(ord(cc)+32)
→
cc
If vardeb(cc) then
cc
→
ss
k+
1→
k
mid(g_str,k,
1
)
→
cc
if cc
≥
"A" and cc
≤
"Z":char(ord(cc)+32)
→
cc
while k
≤
g_dim and varin(cc)
ss&cc
→
ss
k+
1→
k
mid(g_str,k,
1
)
→
cc
if cc
≥
"A" and cc
≤
"Z":char(ord(cc)+32)
→
cc
Endwhile
If cc
≠
"(" and ss
≠
"and" and ss
≠
"or" and ss
≠
"xor" then
For i,
1
,g_d
if ss=g_ll[i]:exit
Endfor
If i>g_d then
augment(g_ll,{ss})
→
g_ll
g_d+
1→
g_d
Endif
Endif
Endif
Endfor
g_ll
Endfunc
Note that the expression is passed as a string, and need not be a valid expression. The variable
names are returned as string elements of a list. For example, the call
exprvars("a+b/c+sin(d^e)+22.2=f")
returns
{"a","b","c","d","e","f"}
Timité Hassan's original getvars() function
This is Timité's original
getvar()
code. I include it here out of courtesy, and so that if I have made in
mistake in my changes, you can use the original code.
getvars()
calls
varin()
and
vardeb()
.
getvars():
getvars(g_str)
Func
Local k,i,cc,g_vr,g_d,g_dim,g_ll,ss
dim(g_str)
→
g_dim
{}
→
g_ll
0
→
g_d
For k,
1
,g_dim
mid(g_str,k,
1
)
→
cc
if cc
≥
"A" and cc
≤
"Z"
char(ord(cc)+32)
→
cc
If vardeb(cc) then
cc
→
ss
k+
1→
k
mid(g_str,k,
1
)
→
cc
if cc
≥
"A" and cc
≤
"Z"
char(ord(cc)+32)
→
cc
while k
≤
g_dim and varin(cc)
7 - 43
331
333
Table of Contents
Default Chapter
3
Table of Contents
3
Contributors
9
Revision Record: 9.0 to 10.0
10
1 0 Miscellaneous Tips
12
[1.1] Discussion Group Etiquette
12
[1.3] Alphabetic List of Reserved Variable Names
13
[1.4] Importing and Exporting PC Data with the TI-89 / TI-92 Plus
14
[1.5] Creating Picture Variables on a PC
18
[1.6] Manual Error for Setmode() Codes for Angle Modes
20
[1.7] Undocumented Error Codes
20
[1.8] Make a Protective Plastic 'Skin' for Your Calculator
21
[1.9] Physical Characteristics of TI-89 and TI-92 Plus
21
[1.10] Patents for TI-89 and TI-92
23
[1.11] "Low Battery" Indication Voltages
27
[1.12] Processor Clock Speed and Battery Voltage
27
[1.13] Developer's Guide Describes Calculator Internal Operation
28
[1.14] Cleaning a Calculator after Spills and Other Accidents
28
[1.15] Permission to Copy TI Guidebooks
30
[1.16] Use Your TI-89/TI-92 Plus as an On-Screen Ruler and Protractor
31
[1.17] Quick Tips
39
[1.18] Myth and Legend from the TI Discussion Groups
40
[1.19] Kraftwerk's Pocket Calculator Song
49
[1.20] TI-92 Plus Internal Photographs
51
[1.21] TI-89 Internal Photographs
56
[1.22] TI Calc-Con '02 Trip Reports
60
Ray Kremer Interview on TI Student Features Page
62
2 0 Computer Algebra System (CAS) Tips
65
[2.1] Force Complete Simplification with Repeated Evaluation
65
[2.2] Try Constraints or Solve() in Symbolic Equality Tests
65
[2.3] Use When() for Absolute Values in Integrals
66
[2.4] Use Exact Mode to Ensure Limit() Success
67
[2.5] Try Manual Simplification to Improve Symbolic Integration
67
[2.6] CAS Uses Common Convention for Integral of X^n
67
[2.7] Use When() in Integration in AMS 2.03
68
[2.8] Use Expand() with Respect to Variable for Faster Results
68
[2.9] Find more Symbolic Integrals, Faster, with Real Mode and Constraints
68
[2.10] CAS Square Root Simplification Limitations
69
[2.11] Force Getnum() and Getdenom() to Return Correct Results with Part()
70
[2.12] Testing Equivalence of Symbolic Expressions
71
[2.13] Try Comdenom() to Find Limits
72
[2.14] Define Functions that CAS Can Manipulate
72
[2.15] Use Change of Variable in Limits of When() Functions
73
[2.16] Find Partial Fractions with Expand()
73
[2.17] Use a 'Clean' or Empty Folder for CAS Operations
74
[2.18] Delay Evaluation to Simplify Expressions
74
[2.19] Restrict Function Arguments to Integers
75
[2.20] Factor() with Respect to List Elements
76
[2.21] Differentiation and Integration Fail with Part()
76
[2.22] Methods for some CAS Functions
77
[2.23] Try Comdenom() for Faster Partial Factoring
79
[2.24] Infinity^0 Evaluates to 1
80
[2.25] Factor on Complex I to Show Polynomial Complex Coefficients
82
[2.26] Limit() Fails with Piecewise Functions
82
3 0 Data Structure Tips
83
[3.1] Using Indirection and Setfold() with Matrix Elements
83
[3.2] Calculate Table Indices Instead of Searching
83
[3.3] Delete Matrix Rows and Columns
84
[3.4] Reverse List Elements
84
[3.5] Unexpected Newmat() Operation in Cylindrical and Spherical Vector Modes
84
[3.6] Convert True/False List to 0'S and 1'S
85
[3.7] Replacement for Fill Instruction in Functions
86
[3.8] Work-Around for Writing to Data Variable Elements
86
[3.9] Replace Matrix Rows and Columns
87
[3.10] Appending Is Faster than Augment() for Adding Elements to Lists; Seq() Is Even Faster
88
[3.11] Store Anything in a Matrix
88
[3.13] Find Matrix Minor and Adjoint
89
[3.14] Randomize List Elements
91
[3.15] Turn Pretty Print off to Display Commas in Lists, Matrices
92
[3.17] Conditional Tests on Lists
100
[3.18] Swap List Elements
100
[3.19] Test a List for Identical Elements
101
[3.20] Find Matrix Minimum and Maximum
101
[3.21] Convert Matrices to Single-Row or Single-Column Vectors
102
[3.22] Create Lists with Logarithmic Element Spacing
103
[3.23] Use Single Bits as Flags to Save Status Information
103
[3.24] Use Equations to Build Lists of Lists and Matrices
109
[3.25] Internal Error with Seq() and Boolean Operators in List Index Calculation
110
[3.26] Find Indices of Specific Elements in Lists and Matrices
111
[3.27] Fast Symbolic Determinants
116
[3.28] Fill a List or Matrix with a Constant
117
[3.29] Convert Data Variables to Matrices
117
[3.30] Singular Value Decomposition (SVD) of a Matrix
118
[3.31] Store New List Element at Index Greater than Dimension
120
4 0 Graphing and Plotting Tips
121
[4.1] Plot "Vertical" Lines on Graph Screen
121
[4.2] Use Dispg to Force Update to „X and „ y
122
[4.3] Truth Plots
122
[4.4] Plot Data and Functions Simultaneously
124
[4.5] 3D Parametric Line and Surface Plots
126
[4.6] Graphing Piece-Wise Defined Functions with "|" Operator
126
[4.7] Graphing Piece-Wise Defined Function with a Unit Step Function
127
[4.8] Plot Functions that Return Lists
127
[4.9] Faster Plots of Slow Functions
128
[4.10] Faster Plots of Integral Functions
129
[4.11] 3D Data Plots
135
[4.12] Random Scatter Plots of 'Noisy' Functions
136
[4.13] Bode Plots
138
[4.14] Completely Clear Graph Screen
142
[4.15] Delete Statistics Plots from Programs
142
5 0 Graphlink Cable and Software Tips
143
[5.1] Unarchive Variables to Fix Graphlink Transmission Errors
143
[5.2] Backing up and Restoring Individual Variables May be Safer that Get Backup
143
[5.3] Do Not Restore a HW1 Backup to a HW2 Calculator
143
[5.4] Try Var-Link to Fix Graphlink Transmission Errors
144
[5.6] Build Your Own Graphlink Cable (Hess's BCC Serial Link)
144
[5.7] Graphlink Switchbox Aids CBR/CBL Programming
155
[5.8] Opening Variables in Graphlink Changes some Characters
155
[5.9] Graphlink Software Sends Either TI-89 or TI-92 Plus Files
157
[5.10] Run Graphlink under Windows XP
158
[5.11] Improve Font Size of Printed Program Source Code
158
6 0 Math Tips
159
[6.1] Simulate Poly Function of TI-85/86
159
[6.2] Use Rectangular Complex Mode for Faster Results
159
[6.3] Improving Floating-Point Solutions to Simultaneous Equations
160
[6.5] Round Numbers to Significant Digits
163
[6.6] Linear Regression through a Fixed Point
164
[6.7] Complex Derivatives
165
[6.8] Convert Trigonometric Expressions to Exponential Format
166
[6.9] Convert Floating-Point Numbers to Exact Fractions
167
[6.10] Exact Solutions to Cubic and Quartic Equations
167
[6.11] Rounding Floating Point Numbers
172
[6.12] Find Faster Numerical Solutions for Polynomials
172
[6.13] Find Coefficients of Determination for All Regression Equations
175
[6.14] Use Norm() to Find Root Mean Square (RMS) Statistic for Matrices
177
[6.15] Convert Equations between Rectangular and Polar Coordinates
177
[6.16] Transpose Operator and Dot Product Find Adjoint and Complex Scalar Product
178
[6.17] Use DD.mmssss Format to Convert Angles Faster
179
[6.18] Use Ipart() and Int() Effectively
180
[6.19] Sub-Divide Integration Range to Improve Accuracy
180
[6.20] Generating Random Numbers
181
[6.21] Evaluating Polynomials
182
[6.23] Step-By-Step Programs
183
[6.24] Fast Fibonacci Numbers
184
[6.25] Polar and Rectangular Coordinate Conversions
184
[6.26] Accurate Numerical Derivatives with Nderiv() and Ridder's Method
185
[6.27] Find Bernoulli Numbers and Polynomials
197
[6.28] Bilinear Interpolation
202
[6.29] Dirac's Delta (Impulse) and Heaviside (Step) Functions
213
[6.30] Spherical Coordinate Conventions
214
[6.31] Fast 2Nd-Order Interpolation with Quadreg
215
[6.32] Accurate Approximate Solutions to Quadratic Equations with Large Coefficients
218
Sine and Cosine Integrals
219
[6.34] Error Function for Real Arguments
222
[6.35] Cumulative Normal Distribution and Inverse
224
[6.36] Integration May Return 'Undef' for Identical Integration Limits
228
[6.37] Random Number Generator Algorithm
229
[6.38] Finance Flash Application Function Finds Days between Two Dates
229
[6.39] Convert Equations to a Parameterized Form
229
[6.40] Write Functions with Multiple Input Argument Types
230
[6.41] Integration Error in AMS 2.05
231
[6.42] Stddev() and Variance() Find Sample (Not Population) Statistics
233
[6.43] Dot Product (Scalar Product) for Complex Vectors
235
[6.44] Nest Min() in Max() to Limit an Argument
236
[6.45] Determine if a Point Is Inside a Triangle
236
[6.46] Solve() and Nsolve() Ignore Constraints with Local Variables
237
[6.47] Unsigned Infinity Displays as Undef
239
[6.49] Taylor() Polynomial Function Finds Tangent Line
240
[6.50] the Savage Benchmark
241
[6.51] Review of TI-89 / TI-92 Plus Calculus Tools
246
[6.52] Return Complex Results in Real Mode with 0I
248
[6.53] Implicit Derivatives
249
[6.54] Delete Variables after Using Numeric Solver
250
[6.55] Algorithms for Factor() and Isprime()
251
[6.56] Fourth-Order Splice Joins Two Functions
252
[6.57] Sum Binary "1" Digits in an Integer
268
[6.58] Extract Floating-Point Mantissa and Exponent
269
[6.59] Accelerate Series Convergence
270
[6.60] Faster, more Accurate Exponential Integrals
272
[6.61] Find more Accurate Polynomial Roots
274
[6.62] Try Asymptotic Expansion for Functions of Large Arguments
285
[6.63] Faster Numerical Matrix Inverses
288
[6.64] Calculate through Undef and Get Correct Results
289
7 0 TI Basic Programming Tips
290
[7.1] Create Evaluated Y= Editor Equations in Programs
290
[7.2] Using the Built-In Function Documentation in CATALOG
290
[7.3] Using Language Localization
291
[7.4] Return Error Codes as Strings
293
[7.5] Considerations for Referencing External Programs
294
[7.6] Recursion Limits
295
[7.7] Use Return Instead of Stop in Programs for Better Flexibility, and to Avoid a Crash
295
[7.8] Return Program Results to Home Screen
297
[7.9] Passing Optional Parameters to Functions and Programs
299
[7.10] Calling Built-In Applications from Your Programs
300
[7.11] Run TI Basic Programs before Archiving for Better Execution Speed
300
[7.12] Access a Variable from any Folder with "_" (Underscore)
301
[7.13] Write to Program & Function Arguments
302
[7.14] Determine Calculator Model and ROM Version in Programs
303
[7.15] Avoid for
305
Avoid for ... Endfor Loops
305
[7.17] Returning more than One Result from a Function
306
[7.18] Simplest (?) Application Launcher
307
[7.19] Bypass Programs Locked with Ans(1) and 4→Errornum:passerr
309
[7.20] Running Programs Within a Program
309
[7.21] Use Undef as an Argument
310
[7.22] Local Documentation for Functions and Programs
310
[7.23] Passing User Function Names as Program/Function Arguments
310
[7.24] Use a Script for Self-Deleting Set-Up Programs
312
[7.25] Use Scripts to Test Program and Functions
313
[7.26] DIM() Functions Slow down with Lists and Matrices with Large Elements
314
[7.27] Getmode() Returns Strings in Capital Letters
314
[7.28] Use Long Strings with Setmode() in Custom Menus
315
[7.29] Table of Getconfg() List Elements
317
[7.30] Sign() Function Is Not Compatible with Other Programming Languages
318
[7.31] Return Shows Variables During Debugging
318
[7.32] Documenting Programs
319
[7.33] Local Functions Must be Declared as Local Variables
322
[7.34] Use Linefeed Char(10) for Separate Lines in Program Help
323
[7.35] Conditonal Test in if
324
[7.36] Input Arguments for 'Keyboard' Programs
324
Conditonal Test in if ...Endif Evaluates All 'And' Arguments
324
[7.37] Simulate SWITCH or CASE Statement with GOTO and Indirection
325
[7.38] Why Use TI Basic
326
[7.39] Quickly Delete Locked, Archived Variables
328
[7.40] Recall Expression Without Variable Value Substitution
329
[7.41] Indirection Bug with Local Variables
330
[7.42] Find Variable Names Used in Expressions
331
[7.43] Faster Function Calls with List and Matrix Arguments
334
[7.44] Local Subroutines Execute Faster than Global Subroutines
341
[7.45] Display Text in Multiple Fonts and Pretty-Print Expressions
342
[7.46] Custom Command Makes Menu Labels for Trapped Function Keys
349
[7.47] Global Variables Not Evaluated When Local Variable Has the same Name
351
[7.48] Create Functions in Programs
351
[7.49] Read and Write Text Variables
352
[7.50] Modify Loop Control Variables Within the Loop
353
8 0 String Variable Tips
355
[8.1] Convert Integers to Strings Without Extra Characters
355
[8.2] String Substitutions
355
[8.3] Creating Strings that Include Quote Characters
356
[8.4] Count Occurrences of a Character in a String
356
[8.5] String() Uses the Current Number Display Format
357
[8.6] Convert Strings to Upper- and Lower-Case
357
[8.7] Replacement for MID() and Right() Functions Use Position Instead of Count
358
[8.8] Relational Operators Compare Strings
359
9 0 User Interface Tips
360
[9.1] Use Icons in Toolbars
360
[9.2] User Interface Considerations
361
[9.3] Take Advantage of Ok System Variable in Dialog Boxes
363
[9.5] Default Values for Variables in Request
363
[9.6] Position Cursor with Char
364
[9.7] Creating 'Dynamic' Dialog Boxes
365
[9.8] Dialog Box Limitations
368
[9.9] Display All 14 Significant Digits
369
[9.10] Group Fraction Digits for Easier Reading
369
[9.11] Access All Custom Menus from any Custom Menu
371
[9.12] Use One Request (in a Dialog Box) for more than One Variable
372
[9.13] Disable ALPHA Default in TI-89 AMS 2.05 Dialog Boxes
376
[9.15] [2Nd] [ENTER] Quickly Selects, Copies Entries to Command Line
379
[9.16] Use "Save Copy As" to Display the Current Variable Name in Editors
379
[9.17] Speed up the Keyboard
380
[9.18] Use Multiple Commands on Entry Line with
381
[9.19] Use a more Efficient RPN Interface
382
[9.20] Use a Graphical Equation Editor (Equation Writer)
383
[9.21] Programs for Simple Equation Libraries
384
[9.22] Minimize TI-89 Alpha Entry Inefficiencies
388
10 0 Units Conversion Tips
390
[10.1] Units Calculations Are Approximate in Auto Mode
390
[10.2] Convert Compound Units to Equivalent Units
390
[10.3] Remove Units from Numbers
391
[10.4] Add Units to Undefined Variables
391
[10.5] Use Tmpcnv() to Display Temperature Conversion Equations
391
[10.6] Add Units to Built-In Units Menu
392
11 0 Solving Tips
394
[11.1] Try Nsolve() if Solve() and Csolve() Fail
394
[11.2] Zeros() Ignores Constraint for Complex Solutions
394
[11.3] Try Czeros() and Csolve() to Find Real Solutions
394
[11.4] Using Solve() with Multiple Equations and Solutions in Programs
395
[11.5] Using Bounds and Estimates with Nsolve()
397
[11.6] Use Solve() as Multiple-Equation Solver
399
[11.7] Saving Multiple Answers with Solve() in Program
400
[11.8] Try Solve() for Symbolic System Solutions
401
[11.9] Nsolve() May Return "Questionable Accuracy" Warning Even with Good Solutions
401
[11.10] Solve() May Return False Solutions for Trigonometric Expressions
403
[11.11] Exp ▶ List() Fails with Solve() in User Functions
404
[11.12] Nsolve() May Ignore Solution Constraints
404
12 0 C Programming Tips
407
[12.1] Advantages of TIGCC over TI SDK
407
TI Basic Extension App Template
408
Appendix A: Anti-Tips
411
Appendix B: more Resources
412
B.1] Faqs
412
[B.2] TI Documentation
440
[B.3] Web Sites
441
B.4] Bibliography
444
Appendix C: Glossary
455
Appendix D: Command Quick Reference Guide
472
Appendix E: Tip List Programs and Functions
504
Other manuals for Texas Instruments TI-89
User Guide
77 pages
Guide Book
623 pages
Developer's Guide
1398 pages
Software Guide
334 pages
Guide
35 pages
Notes
2 pages
Manual
7 pages
5
Based on 1 rating
Ask a question
Give review
Questions and Answers:
Need help?
Do you have a question about the Texas Instruments TI-89 and is the answer not in the manual?
Ask a question
Texas Instruments TI-89 Specifications
General
Display size (HxV)
100 x 160 mm
Memory type
639K FLASH ROM, 188K bytes RAM
Compatible operating systems
Operating System 2.09
Battery type
AAA
Related product manuals
Texas Instruments TI-83
82 pages
Texas Instruments TI-85
28 pages
Texas Instruments TI-83-Plus
188 pages
Texas Instruments TI-84 Plus
2 pages
Texas Instruments TI-82 STATS
442 pages
Texas Instruments TI-84 Plus C
66 pages
Texas Instruments TI-84 Plus CE
3 pages
Texas Instruments Titanium TI-89
1008 pages
Texas Instruments TI-89 Titanium
977 pages
TI-84 Plus Series
35 pages
TI-84 Plus CE Python
6 pages
TI-84 Plus Silver Edition
60 pages