I've been using a TI-86 for about 20 years and wrote multiple programs for use at my work. I recently switched to a TI-84 Plus CE Python and have been converting my programs to run on this unit. I have gotten all of them working except one. It's a sub routine for another program and relies on If/Then conditions. No matter how I format the syntax I just can not get it working. Has any one else ran into this while coding TI-84s?
I haven't had this issue. I can try to help if you post the source code and some details as to the exact errors you're getting.
I would be happy to post the code. How do I transfer .8xp files into this post? Or will I need to upload them some where else?
Here is the problem program.
If A=1
THEN
.00873→B
If A=2
THEN
.001745→B
If A=3
THEN
.02618→B
If A=4
THEN
.03492→B
If A=5
THEN
.04366→B
If A=6
THEN
.05241→B
If A=7
THEN
.06116→B
If A=8
THEN
.06993→B
If A=9
THEN
.07870→B
If A=10
THEN
.08749→B
If A=11
THEN
.09629→B
If A=12
THEN
.10510→B
If A=13
THEN
.11393→B
If A=14
THEN
.12278→B
If A=15
THEN
.13165→B
If A=16
THEN
.14054→B
If A=17
THEN
.14945→B
If A=18
THEN
.15838→B
If A=19
THEN
.16734→B
If A=20
THEN
.17633→B
If A=21
THEN
.18534→B
If A=22
THEN
.19438→B
If A=23
THEN
.20345→B
If A=24
THEN
.21256→B
If A=25
THEN
.22169→B
If A=26
THEN
.23087→B
If A=27
THEN
.24008→B
If A=28
THEN
.24933→B
If A=29
THEN
.25862→B
If A=30
THEN
.26795→B
If A=31
THEN
.27732→B
If A=32
THEN
.28674→B
If A=33
THEN
.29621→B
If A=34
THEN
.30573→B
If A=35
THEN
.31530→B
If A=36
THEN
.32492→B
If A=37
THEN
.33459→B
If A=38
THEN
.34433→B
If A=39
THEN
.35412→B
If A=40
THEN
.36397→B
If A=41
THEN
.37388→B
If A=42
THEN
.38386→B
If A=43
THEN
.39391→B
If A=44
THEN
.40403→B
If A=45
THEN
.41421→B
If A=46
THEN
.42447→B
If A=47
THEN
.43481→B
If A=48
THEN
.44523→B
If A=49
THEN
.45573→B
If A=50
THEN
.46631→B
If A=51
THEN
.47697→B
If A=52
THEN
.48773→B
If A=53
THEN
.49858→B
If A=54
THEN
.50952→B
If A=55
THEN
.52057→B
If A=56
THEN
.53171→B
If A=57
THEN
.54295→B
If A=58
THEN
.55431→B
If A=59
THEN
.56577→B
If A=60
THEN
.57735→B
If A=61
THEN
.58904→B
If A=62
THEN
.60086→B
If A=63
THEN
.61280→B
If A=64
THEN
.62487→B
If A=65
THEN
.63707→B
If A=66
THEN
.64941→B
If A=67
THEN
.66188→B
If A=68
THEN
.67451→B
If A=69
THEN
.68728→B
If A=70
THEN
.70021→B
If A=71
THEN
.71329→B
If A=72
THEN
.72654→B
If A=73
THEN
.73996→B
If A=74
THEN
.75355→B
If A=75
THEN
.76733→B
If A=76
THEN
.78128→B
If A=77
THEN
.79543→B
If A=78
THEN
.80978→B
If A=79
THEN
.82434→B
If A=80
THEN
.83910→B
If A=81
THEN
.85408→B
If A=82
THEN
.86929→B
If A=83
THEN
.88472→B
If A=84
THEN
.90040→B
If A=85
THEN
.91633→B
If A=86
THEN
.93251→B
If A=87
THEN
.94890→B
If A=88
THEN
.96569→B
If A=89
THEN
.98270→B
If A=90
THEN
1.000→B
If A=91
THEN
1.0176→B
If A=92
THEN
1.0355→B
If A=93
THEN
1.0538→B
If A=94
THEN
1.0724→B
If A=95
THEN
1.0913→B
If A=96
THEN
1.1106→B
If A=97
THEN
1.1303→B
If A=98
THEN
1.1504→B
If A=99
THEN
1.1708→B
If A=100
THEN
1.1917→B
If A=101
THEN
1.2131→B
If A=102
THEN
1.2349→B
If A=103
THEN
1.2572→B
If A=104
THEN
1.2799→B
If A=105
THEN
1.3032→B
If A=106
THEN
1.3270→B
If A=107
THEN
1.3514→B
If A=108
THEN
1.3764→B
If A=109
THEN
1.4019→B
If A=110
THEN
1.4281→B
If A=111
THEN
1.4550→B
If A=112
THEN
1.4826→B
If A=113
THEN
1.5108→B
If A=114
THEN
1.5399→B
If A=115
THEN
1.5697→B
If A=116
THEN
1.6003→B
If A=117
THEN
1.6318→B
If A=118
THEN
1.6643→B
If A=119
THEN
1.6977→B
If A=120
THEN
1.7320→B
If A=121
THEN
1.7675→B
If A=122
THEN
1.8040→B
If A=123
THEN
1.8418→B
If A=124
THEN
1.8807→B
If A=125
THEN
1.9210→B
If A=126
THEN
1.9626→B
If A=127
THEN
2.0057→B
If A=128
THEN
2.0503→B
If A=129
THEN
2.0965→B
If A=130
THEN
2.1445→B
If A=131
THEN
2.1943→B
If A=132
THEN
2.2460→B
If A=133
THEN
2.2998→B
If A=134
THEN
2.3558→B
If A=135
THEN
2.4142→B
If A=136
THEN
2.4715→B
If A=137
THEN
2.5386→B
If A=138
THEN
2.6051→B
If A=139
THEN
2.6746→B
If A=140
THEN
2.7475→B
If A=141
THEN
2.8239→B
If A=142
THEN
2.9042→B
If A=143
THEN
2.9887→B
If A=144
THEN
3.0777→B
If A=145
THEN
3.1716→B
If A=146
THEN
3.2708→B
If A=147
THEN
3.3759→B
If A=148
THEN
3.4874→B
If A=149
THEN
3.6059→B
If A=150
THEN
3.7320→B
If A=151
THEN
3.8667→B
If A=152
THEN
4.0108→B
If A=153
THEN
4.1653→B
If A=154
THEN
4.3315→B
If A=155
THEN
4.5107→B
If A=156
THEN
4.7406→B
If A=157
THEN
4.9151→B
If A=158
THEN
5.1455→B
If A=159
THEN
5.3995→B
If A=160
THEN
5.6713→B
If A=161
THEN
5.9758→B
If A=162
THEN
6.3137→B
If A=163
THEN
6.6911→B
If A=164
THEN
7.1154→B
If A=165
THEN
7.5957→B
If A=166
THEN
8.1443→B
If A=167
THEN
8.7769→B
If A=168
THEN
9.5144→B
If A=169
THEN
B=10.385→B
If A=170
THEN
11.430→B
If A=171
THEN
12.706→B
If A=172
THEN
14.301→B
If A=173
THEN
16.350→B
If A=174
THEN
19.081→B
If A=175
THEN
22.904→B
If A=176
THEN
26.636→B
If A=177
THEN
38.188→B
If A=178
THEN
57.290→B
If A=179
THEN
114.590→B
If A=180
THEN
0→B
B*(R+T)→O
B*R→I
Here is the program that calls the other one.
Menu("Type","Aluminum",S,"Steel",H)
Lbl S
Input "Radius=",R
Input "Material=",T
Input "Angle=",A:(R+(T*.44))*((3.141/180)*A)→X
X/2→Y
Disp "Bend length="
Disp X
Disp Y
prgmSETBACK
Disp "Setback="
Disp O
Disp I
DelVar A
DelVar B
DelVar I
DelVar O
DelVar R
DelVar T
DelVar X
DelVar Y
Return
Lbl H
Input "Radius=",R
Input "Material=",T
Input "Angle=",A
(R+(T*.33))*((3.141/180)*A)→X
X/2→Y
Disp "Bend length="
Disp X
Disp Y
prgmSETBACK
Disp "Setback="
Disp O
Disp I
DelVar A
DelVar B
DelVar I
DelVar O
DelVar R
DelVar T
DelVar X
DelVar Y
Return
Depending on how I arrange the syntax I either get an error or the I and O just return an answer of 0 (zero).
I appreciate you help BTW.
Whenever you use a Then statement with an If, you need an End as well. However, you don't need a Then-End section for one-line if statements.
Example:
If A=1
Then
38.188→B
End
-Or-
If A=1
38.188→B
You also can do this much easier with lists so that you don't need all the if statements.
Let's take just the first four items. If we use a list it would look like this:
{.00873,.001745,.02618,.03492}→L₁
L₁(A)→B
So your entire sub-program could be:
{.00873,.001745,.02618,.03492,.04366,.05241,.06116,.06993,.07870,.08749,.09629,.10510,.11393,.12278,.13165,.14054,.14945,.15838,.16734,.17633,.18534,.19438,.20345,.21256,.22169,.23087,.24008,.24933,.25862,.26795,.27732,.28674,.29621,.30573,.31530,.32492,.33459,.34433,.35412,.36397,.37388,.38386,.39391,.40403,.41421,.42447,.43481,.44523,.45573,.46631,.47697,.48773,.49858,.50952,.52057,.53171,.54295,.55431,.56577,.57735,.58904,.60086,.61280,.62487,.63707,.64941,.66188,.67451,.68728,.70021,.71329,.72654,.73996,.75355,.76733,.78128,.79543,.80978,.82434,.83910,.85408,.86929,.88472,.90040,.91633,.93251,.94890,.96569,.98270,1.000,1.0176,1.0355,1.0538,1.0724,1.0913,1.1106,1.1303,1.1504,1.1708,1.1917,1.2131,1.2349,1.2572,1.2799,1.3032,1.3270,1.3514,1.3764,1.4019,1.4281,1.4550,1.4826,1.5108,1.5399,1.5697,1.6003,1.6318,1.6643,1.6977,1.7320,1.7675,1.8040,1.8418,1.8807,1.9210,1.9626,2.0057,2.0503,2.0965,2.1445,2.1943,2.2460,2.2998,2.3558,2.4142,2.4715,2.5386,2.6051,2.6746,2.7475,2.8239,2.9042,2.9887,3.0777,3.1716,3.2708,3.3759,3.4874,3.6059,3.7320,3.8667,4.0108,4.1653,4.3315,4.5107,4.7406,4.9151,5.1455,5.3995,5.6713,5.9758,6.3137,6.6911,7.1154,7.5957,8.1443,8.7769,9.5144,10.385,11.430,12.706,14.301,16.350,19.081,22.904,26.636,38.188,57.290,114.590,0}→L₁
L₁(A)*(R+T)→O
L₁(A)*R→I
If you wanted to reduce your total amount of code and eliminate the sub-program entirely, this would probably work:
DelVar Z
{.00873,.001745,.02618,.03492,.04366,.05241,.06116,.06993,.07870,.08749,.09629,.10510,.11393,.12278,.13165,.14054,.14945,.15838,.16734,.17633,.18534,.19438,.20345,.21256,.22169,.23087,.24008,.24933,.25862,.26795,.27732,.28674,.29621,.30573,.31530,.32492,.33459,.34433,.35412,.36397,.37388,.38386,.39391,.40403,.41421,.42447,.43481,.44523,.45573,.46631,.47697,.48773,.49858,.50952,.52057,.53171,.54295,.55431,.56577,.57735,.58904,.60086,.61280,.62487,.63707,.64941,.66188,.67451,.68728,.70021,.71329,.72654,.73996,.75355,.76733,.78128,.79543,.80978,.82434,.83910,.85408,.86929,.88472,.90040,.91633,.93251,.94890,.96569,.98270,1.000,1.0176,1.0355,1.0538,1.0724,1.0913,1.1106,1.1303,1.1504,1.1708,1.1917,1.2131,1.2349,1.2572,1.2799,1.3032,1.3270,1.3514,1.3764,1.4019,1.4281,1.4550,1.4826,1.5108,1.5399,1.5697,1.6003,1.6318,1.6643,1.6977,1.7320,1.7675,1.8040,1.8418,1.8807,1.9210,1.9626,2.0057,2.0503,2.0965,2.1445,2.1943,2.2460,2.2998,2.3558,2.4142,2.4715,2.5386,2.6051,2.6746,2.7475,2.8239,2.9042,2.9887,3.0777,3.1716,3.2708,3.3759,3.4874,3.6059,3.7320,3.8667,4.0108,4.1653,4.3315,4.5107,4.7406,4.9151,5.1455,5.3995,5.6713,5.9758,6.3137,6.6911,7.1154,7.5957,8.1443,8.7769,9.5144,10.385,11.430,12.706,14.301,16.350,19.081,22.904,26.636,38.188,57.290,114.590,0}→L₁
Menu("Type","Aluminum",S,"Steel",H)
Lbl S
Z+1→Z
Lbl H
Input "Radius=",R
Input "Material=",T
Input "Angle=",A
(R+(T*(.44-(.11*not(T))))*((3.141/180)*A)→X
Disp "Bend length="
Disp X
Disp X/2
prgmSETBACK
Disp "Setback="
Disp L₁(A)*(R+T)
Disp L₁(A)*R
DelVar A
DelVar B
DelVar R
DelVar T
DelVar X
DelVar Z
DelVar L₁
Return
I have never worked with List before but that does look much easier. I will have to learn more on that feature. I really appreciate your help and your time. Thank you so much.
You may find it worthwhile to check out our Starter Kit. You may not be too interested in the sections about games and graphics, but there's also many pages that will guide you through the basics of TI-84 BASIC and ways you can optimize programs to make them better. If that interests you and you work through our Starter Kit tutorials, you will be able to find many other pages on this site as well to help you with various things in BASIC.