Procedural Programming Example
This function, Factors(x), computes the prime factors of an integer «x». It illustrates many of Analytica's key constructs for procedural programming:
This table identifies key constructs from the function definition above, with a number
Numbers identify
features belowFunction Factors(x)
Definition:1 VAR result := [1];2 VAR n := 2;3 WHILE n <= x DO4 BEGIN2 VAR r := Floor(x/n);IF r*n = x THEN
5 (result := Concat(result, [n]);x := r)
6 ELSE n := n + 1
4, 7 END;7, 8 result /* End Definition */
This definition illustrates these features:
VAR x := edefines a local identifierxthat refers to the value obtained by evaluatinge. See Defining a Local Value.- You can group several expressions (statements) into a definition by separating them using “;” (semicolons). Expressions can be on the same line or successive lines. See Begin-End for Grouping Expressions.
While test Do bodytests conditionTest, and, if True, evaluatesBody, and repeats until conditionTestis False. See While(Test) Do Body.BEGIN e1; e2; … ENDgroups a sequence of expressions separated by semicolons “;” — in this case as the body of a While loop. See Begin-End for Grouping Expressions.(e1; e2; …)is another way to group expressions — in this case, as the action to be taken in the Then case. See Begin-End for Grouping Expressions.x := eassigns the value of expressioneto a local valuexor, as in the first case, to a parameter of a function. See Assigning to a local value.- You can add a comment (text that Analytica ignores) between
{and}or between/*and*/. - The value returned from a group of expressions is the value of the last expression — here the function
Factorsreturns the local valueresult— whether the group is delimited byBeginandEnd, by parentheses,(and), or, as here, by nothing.
See Also
- Defining a Local Value
- Assigning to a local value
- Begin-End for Grouping Expressions
- For and While Loops
- Function calls and parameters
Comments
Enable comment auto-refresher