HP 33s hp 33s_user's manual_English_E_HDPM20PIE56.pdf - Page 202

Loops with Counters (DSE, ISG), The Loop-Control Number

Page 202 highlights

Loops with Counters (DSE, ISG) When you want to execute a loop a specific number of times, use the { l (increment; skip if greater than) or | m (decrement; skip if less than or equal to) conditional function keys. Each time a loop function is executed in a program, it automatically decrements or increments a counter value stored in a variable. It compares the current counter value to a final counter value, then continues or exits the loop depending on the result. For a count-down loop, use | m variable For a count-up loop, use { l variable These functions accomplish the same thing as a FOR-NEXT loop in BASIC:  variable = initial-value ! final-value . . . ! increment %! variable A DSE instruction is like a FOR-NEXT loop with a negative increment. After pressing a shifted key for ISG or DSE ( { l or | m ), you will be prompted for a variable that will contain the loop-control number (described below). The Loop-Control Number The specified variable should contain a loop-control number ±ccccccc.fffii, where: „ ±ccccccc is the current counter value (1 to 12 digits). This value changes with loop execution. „ fff is the final counter value (must be three digits). This value does not change as the loop runs. „ ii is the interval for incrementing and decrementing (must be two digits or unspecified). This value does not change. An unspecified value for ii is assumed to be 01 (increment/decrement by 1). Given the loop-control number ccccccc.fffii, DSE decrements ccccccc to ccccccc - ii, compares the new ccccccc with fff, and makes program execution skip the next program line if this ccccccc ≤ fff. 13-18 Programming Techniques

  • 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
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387

13–18
Programming Techniques
Loops with Counters (DSE, ISG)
When you want to execute a loop a specific number of times, use the
(
increment
;
skip if greater than
) or
(
decrement
;
skip if less than or equal
to
) conditional function keys. Each time a loop function is executed in a program, it
automatically
decrements
or
increments
a counter value stored in a variable. It
compares the current counter value to a final counter value, then continues or exits
the loop depending on the result.
For a count–down loop, use
variable
For a count–up loop, use
variable
These functions accomplish the same thing as a FOR–NEXT loop in BASIC:
variable
=
initial–value
final–value
increment
.
.
.
variable
A DSE instruction is like a FOR–NEXT loop with a negative increment.
After pressing a shifted key for ISG or DSE (
or
), you will be
prompted for a variable that will contain the
loop–control number
(described
below).
The Loop–Control Number
The specified variable should contain a loop–control number
±ccccccc.fffii,
where:
±ccccccc
is the current counter value (1 to 12 digits). This value
changes
with
loop execution.
fff
is the final counter value (must be three digits). This value does
not
change
as the loop runs.
ii
is the interval for incrementing and decrementing (must be two digits or
unspecified). This value does
not
change. An unspecified value for
ii
is
assumed to be 01 (increment/decrement by 1).
Given the loop–control number
ccccccc
.
fffii,
DSE decrements
ccccccc
to
ccccccc — ii
, compares the new
ccccccc
with
fff,
and makes program execution
skip the next program line if this
ccccccc
fff.