HP Forums

Full Version: Assign local variable inside for/start loop
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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?
How about using a compiled local variable?
(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.
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.
(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.
Reference URL's