HP Forums
Assign local variable inside for/start loop - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: Assign local variable inside for/start loop (/thread-16488.html)



Assign local variable inside for/start loop - BINUBALL - 03-17-2021 08:27 AM

I tried to calculate pi with Gauss - Legendre algorithm. So this program input repetition count. there is program code below.
Code:
<< 1 2 √ INV 4 INV -> N A B T <<
0 N FOR X A B + 2 / A B * √ T 2 X ^ A A B + 2 / - SQ * - -> A B T NEXT
>> >>
It error at "-> A B T NEXT". However I have to assign new a, b, t values for calculation.
Of course, I can assign global variable like 'A' STO, but I want to use local variable. Can't I assign a local variable inside a loop?


RE: Assign local variable inside for/start loop - MNH - 03-17-2021 09:20 AM

How about using a compiled local variable?


RE: Assign local variable inside for/start loop - BINUBALL - 03-17-2021 10:19 AM

(03-17-2021 09:20 AM)MNH Wrote:  How about using a compiled local variable?
What is EXACTLY compiled local variable? I don't know it at all.


RE: Assign local variable inside for/start loop - Joe Horn - 03-17-2021 01:35 PM

Since A, B and T already exist as local variables, don't create them again; just use STO as usual to store the new values into them. Replace the second -> A B T with something like 'A' STO 'B' STO 'T' STO (or in the opposite order, depending on the order that they are in the stack). This will store the desired values into the local variables, not into global ones. Also, note that after the inner program ends, those variables will cease to exist, so access them if needed immediately after the NEXT command.


RE: Assign local variable inside for/start loop - BINUBALL - 03-18-2021 02:58 AM

(03-17-2021 01:35 PM)Joe Horn Wrote:  Since A, B and T already exist as local variables, don't create them again; just use STO as usual to store the new values into them. Replace the second -> A B T with something like 'A' STO 'B' STO 'T' STO (or in the opposite order, depending on the order that they are in the stack). This will store the desired values into the local variables, not into global ones. Also, note that after the inner program ends, those variables will cease to exist, so access them if needed immediately after the NEXT command.
It works. Thanks Joe.