Plus42: The FOR Function
About the Plus42 App
Author: Thomas Okken
App:
Android: $9.99
iOS: $9.99
PC/MacOS/Linux: Free
Donations Accepted
Link: https://thomasokken.com/plus42/
Please give Okken some love! Free42 and Plus42 are both awesome apps and emulators, both emulate the HP 42S engine. The Plus42 adds the solver of the HP 17B/19B/27S and unit conversions of the HP 48/49/50 family. The Plus42 can also graph functions. You can find a lot more information on the link above!
(Disclaimer: I am not being paid.)
I am now including apps like the Plus42 in my rotation for blogs, please be on the look out for those.
Today's blog entry will cover one of the additional solver functions for the Plus42: FOR.
Plus42 FOR Syntax
FOR(INIT:COND:NEXT:EXPR)
INIT: Initial commands
COND: condition
If the condition is true: execute EXPR (there can be more than one EXPR statements), then NEXT
If the condition is false: the loop ends
NEXT: next command, this is where the counter variable is incremented or decremented
EXPR: the main loop
Examples
Example 1: Add from 1 to 4.
HP 39G/Prime Code:
A:=0;
FOR K FROM 1 TO 4 DO (STEP 1)
A:=A+K;
END;
Plus42 Equation Code:
S=FOR((L(A:0)+L(I:1))×0:G(I)≤4:L(I:G(I)+1):L(A:G(A)+G(I)))
Variables:
S = sum_final answer
A = sum
I = counter variable
Result: S = 10
S=: set the result to the variable S, S = A
INIT: (L(A:0)+L(I:1))×0; set A = 0 and I = 1
NEXT: L(I:G(I)+1); this happens at the end of the loop, this is like the general STEP incr/decr command
EXPR: L(A:G(A)+G(I))
The use of the Get function allows the variable to used automatically and not be displayed in the CALC menu.
Something that threw me off is that the order of NEXT and EXPR, which the EXPR (which I think there could be more than one EXPR statements), I am used to NEXT either at the end of the FOR loop or implied (end of indentation in Python, for example).
Example 2: Product
Calculate Π(n/4, n=1 to m) = 1/4 * 2/4 * 3/4 * ... * m/4
Plus42 Equation Code:
P=FOR((L(A:1)+L(N:1)+M)×0:G(N)≤IP(M):L(N:G(N)+1):L(A:G(A)×(G(N)÷4)))
Variables:
P = product_final answer
N = counter
M = higher limit
P=: set the result to the variable P, P = A
INIT: (L(A:1)+L(N:1)+M)×0; set A = 1, N = 1, ask for M
COND: G(N)≤IP(M); if N ≤ IP(M); if true continue, if false exit the loop
NEXT: L(N:G(N)+1)
EXPR: L(A:G(A)×(G(N)÷4))
Results:
3 → M; P → 0.0938
6 → M; P → 0.1758
12 → M; P → 28.5507
Example 3: Recursive
Given an initial condition u_0, calculate the recursion:
u_n = 2 * u_n-1 - 3
for n terms.
Plus42 Equation Code:
S=FOR((U+N+L(I:1))×0:G(I)≤N:L(I:G(I)+1):L(U:2×G(U)-3))
Variables:
S = final answer
U = recursive variable
N = number of terms
S=: final answer
INIT: (U+N+L(I:1))×0
COND: G(I)≤N
NEXT: L(I:G(I)+1)
EXPR: L(U:2×G(U)-3)
Results, enter U, N first before calculating for S:
2 → U, 3 → N; S → -5
5 → U, 2 → N; S → 11
Enjoy and hope this helps,
Eddie
All original content copyright, © 2011-2022. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.