Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Has anyone experienced using TI-89 BASIC programming to solve math problems? I want to create an array using TI-89 but I don't know how?

Update
I tried both

{0, 0, 0, 0}->A

and

[0, 0, 0, 0]->A

Basically, I want to create a boolean array to check for duplicate digits of a number.

Update 1

dup(n)
Prgm
    {0,0,0,0,0,0,0,0,0,0}->a
    1->d // digit
    While n > 0
        mod(10,n)->d
        If a[d] = 0 Then 1->a[d]
        Else Return 1
        EndIf
        floor(n/10)->n
    EndWhile    
    Return 0
EndPrgm

Thanks,
Chan

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

I don't have an 89 at hand to check, but I suspect that you can use lists (contained in {}, comma-separated) in much the same way you'd use an array, including subscript-based accessing.


As it turns out, I do have a TI Voyage 200, which is functionally identical to a TI-89 Titanium (runs the same OS, but more memory, better screen, QWERTY keyboard). I am able to store a list into a variable:

{2,4,6,8}->a (where -> is the "sto>" key)

and access items in that list:

a[3] is reformatted as $a_3$ and returns 6.

In what way was {0, 0, 0, 0}->A not working for you?


Okay, here are some relatively messy thoughts, but hopefully some of it will be helpful. You can create a list of the digits in a number n with

seq(mod(floor(n/10^k),10),k,0,floor(log(n)))->digitList

(the ones digit will be the first item in the list, ...)

Now, having a list of the digits, you can sort the list using

SortA digitList

Construct a list of the differences between successive terms of digitList (where there will be 0s for duplicated digits):

∆List(digitList)->deltaList

Now, you can do something like looping over deltaList and whenever you find a zero, check the corresponding location in digitList to see which digit is repeated.

Alternately, you could step through the sorted digitList, tracking the previous entry, and find duplicates that way.

share|improve this answer
    
@Issac: Thanks for your quick reply. However, I tried the {}, it did not work. –  Chan Feb 4 '11 at 2:44
    
@Chan: Could you be more specific about what exactly you tried? (For instance, posting your code might help.) It also might be helpful to post what you're trying to achieve, as there may be some other way to get to your end goal. –  Isaac Feb 4 '11 at 2:46
    
@Issac: Thanks, see my update. –  Chan Feb 4 '11 at 3:49
    
@Issac: I checked it again, it worked. But how can we do assignment for array. Let's say I want to set a[i] = 1. I did 1->a[i], but TI-89 said "syntax error". Could you help? Thanks in advance. –  Chan Feb 4 '11 at 5:11
    
@Chan: That's strange—that kind of assignment works on my calculator. I've added some other thoughts about the problem as a whole, though I'm not sure if they're quite what you're looking for. –  Isaac Feb 4 '11 at 6:26
show 3 more comments

I don't know about TI-89 but as for TI-83+,84, they have Lists stored in L1, L2, etc that can be written to by {1,2,3,4}->L1. You can find L1 as 2nd 1, 2nd 2, 2nd 3, etc on the older models. I can't say exactly for the 89.

You can also do things like seq(Y1,X,0,4,.2)->L1 to quickly evaluate sequences and store in Lists.

share|improve this answer
    
On the 83/84, lists had to be in special L-variables (with a small-caps L), and L1-L6 were the most-often used, but you could name a list L-anything, pretty much. (I'm pretty sure this doesn't apply to the 89, but as I don't have one at hand to check...) –  Isaac Feb 4 '11 at 4:49
1  
Confirmed: on the 89 (and similar), lists can be stored in arbitrarily-named variables. –  Isaac Feb 4 '11 at 4:56
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.