HP 113394 User Guide - Page 126

Looping

Page 126 highlights

126 Section 9: Branching and Looping Looping If a i instruction specifies a lower-numbered line in program memory, the instructions in the program lines between the specified line and the i instruction will be executed repeatedly. As can be seen in the illustration above under Simple Branching, once the program begins executing the "loop" it will execute it again and again. If you want to terminate the execution of a loop, you can include a go or gm instruction (described below) or an t instruction within the loop. You can also terminate execution by pressing any key while the loop is being executed. Example: The following program automatically amortizes the payments on a home mortgage without requiring you to press f! for each payment. It will amortize one month's payments each time or one year's payments each time the loop is executed, depending on whether the number 1 or 12 is in the display when you start running the program. Before running the program, we'll "initialize" it by storing the required data in the financial registers - just as we would do if we were amortizing a single payment manually. We'll run the program for a $150,000 mortgage at 4.75% for 30 years, and we'll key 1 into the display just before running it in order to amortize monthly payments. For the first two "passes" through the loop we'll execute the program one line at a time, using Ç, so that we can see the looping occurring; then we'll use t to execute the entire loop a third time before terminating execution. Keystrokes Display fs fCLEARÎ ?0 :0 Sets calculator to Program mode. 000, Clears program memory 001, 44 0 Stores the number from the display into register R0. This number will be the number of payments to be amortized. 002, 45 0 Recalls the number of payments to be amortized. This program line is the one to which program execution will later branch. It is included because after the first time the loop is executed, the number in the "display"* is replaced by the result of f!. * More precisely, the number in the X-register. File name: hp 12c pt_user's guide_English_HDPMF123E27 Page: 126 of 275 Printed Date: 2005/8/1 Dimension: 14.8 cm x 21 cm

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278

126 Section 9: Branching and Looping
File name: hp 12c pt_user's guide_English_HDPMF123E27
Page: 126 of 275
Printed Date: 2005/8/1
Dimension: 14.8 cm x 21 cm
Looping
If a
i
instruction specifies a lower-numbered line in program memory, the
instructions in the program lines between the specified line and the
i
instruction
will be executed repeatedly. As can be seen in the illustration above under Simple
Branching, once the program begins executing the “loop” it will execute it again
and again.
If you want to terminate the execution of a loop, you can include a
go
or
gm
instruction (described below) or an
t
instruction within the loop. You
can also terminate execution by pressing any key while the loop is being
executed.
Example:
The following program automatically amortizes the payments on a
home mortgage without requiring you to press
f!
for each payment. It will
amortize one month’s payments each time or one year’s payments each time the
loop is executed, depending on whether the number 1 or 12 is in the display
when you start running the program. Before running the program, we’ll “initialize”
it by storing the required data in the financial registers — just as we would do if
we were amortizing a single payment manually. We’ll run the program for a
$150,000 mortgage at 4.75% for 30 years, and we’ll key 1 into the display just
before running it in order to amortize monthly payments. For the first two “passes”
through the loop we’ll execute the program one line at a time, using
Ç
, so that
we can see the looping occurring; then we’ll use
t
to execute the entire loop a
third time before terminating execution.
Keystrokes
Display
fs
Sets calculator to Program mode.
f
CLEAR
Î
000,
Clears program memory
?
0
001,
44
0
Stores the number from the display
into register R
0
. This number will be
the number of payments to be
amortized.
:
0
002,
45
0
Recalls the number of payments to
be amortized. This program line is
the one to which program
execution will later branch. It is
included because after the first time
the loop is executed, the number in
the “display”
*
is replaced by the
result of
f!
.
*
More precisely, the number in the X-register.