例: 算術演算を実行する

  1. *、優先順位。次の例の最初の @Prompt は 15 と出力します。4 * 3 の乗算が最初に計算されるためです。2 番目の @Prompt は 21 と出力します。カッコによって 3 + 4 が先に計算されるためです。
    @Prompt([Ok]; "3 + 4 * 3"; @Text(3 + 4 * 3)); @Prompt([Ok]; "(3 + 4) * 3"; @Text((3 + 4) * 3))
  2. / *。次の例の最初の @Prompt は 0.333333333333333 と出力します。除算の結果が小数点以下 15 桁に丸められるかです。2 番目の @Prompt は 1.2635268885E+17 と出力します。乗算の結果が有効桁が 11 桁の指数で表されるからです。
    @Prompt([Ok]; "1 / 3"; @Text(1 / 3)); @Prompt([Ok]; "123456789 * 1023456789"; @Text(123456789 * 1023456789))
  3. @Abs。次の例は、どちらが大きいかに関係なく、符号なしの数値として Score1 と Score2 の差を計算します。
    @Abs(Score1 - Score2)
  4. @Abs。次の例は、Sales と CostOfSales との差の絶対値を計算し、負数の結果をカッコで囲んだ形式で出力します。
    GP := @Abs(Sales - CostOfSales); @If(Sales >= CostOfSales; @Text(GP); "(" + @Text(GP) + ")")
  5. @Sign。次のエージェントの例は [Total] フィールドを表示します。フィールド値が負なら、絶対値をカッコで囲みます。0 の場合は、"Zero" を表示します。
    sign := @Sign(Total);
    display := @If(sign = 1; @Text(Total); sign = -1; "(" + @Text(@Abs(Total)) + ")"; "Zero");
    @Prompt([Ok]; "Total"; display);
    SELECT @All
  6. @Sum。次の例は 15 を出力します。これは、リスト One23、変数 Four、定数 5 の合計です。
    One23 := 1 : 2 : 3; Four := 4;
    S := @Sum(One23; Four; 5); @Prompt([Ok]; "Sum of 1-5"; @Text(S))
  7. @Integer。次の例は、3.12 を 3、6.735 を 6 に切り捨てます。
    @Prompt([Ok]; "@Integer(3.12)"; @Text(@Integer(3.12))); @Prompt([Ok]; "@Integer(6.735)"; @Text(@Integer(6.735)))
  8. @Integer。次の例は、リスト内の Sales と Commission を整数に切り捨てます。
    @Integer(Sales : Commission)
  9. @Round。次の例は、3.12 を 3、6.735 を 7、7.5 を 8 に丸めます。753 は 10 の位で丸めて 750 にします。リストの要素 3.12、6.735、7.5 はそれぞれ 3、7、8 になります (表示のために文字列に変換されます)。
    @Prompt([Ok]; "@Round(3.12)"; @Text(@Round(3.12))); @Prompt([Ok]; "@Round(6.735)"; @Text(@Round(6.735))); @Prompt([Ok]; "@Round(7.5)"; @Text(@Round(7.5))); @Prompt([Ok]; "@Round(753; 10)"; @Text(@Round(753; 10))); @Prompt([Ok]; "@Round(3.12 : 6.735 : 7.5)"; @Implode(@Text(@Round(3.12 : 6.735 : 7.5))))
  10. @Max。次の例は、99、2、3 の最大値である 99 を出力します。また、1 と 3 の最大値 3 を出力します。そして、2 つのリスト内の並列の要素の最大値 99 6 7 8 を出力します。
    @Prompt([Ok]; "@Max(99 : 2 : 3)"; @Text(@Max(99 : 2 : 3))); @Prompt([Ok]; "@Max(1; 3)"; @Text(@Max(1; 3))); @Prompt([Ok]; "@Max(99 : 2 : 3; 5 : 6 : 7 : 8)"; @Implode(@Text(@Max(99 : 2 : 3; 5 : 6 : 7 : 8))))
  11. @Min。次の例は、99、2、3 の最小値である 2 を出力します。また、1 と 3 の最小値 1 を出力します。そして、2 つのリスト内の並列の要素の最小値 5 2 3 3 を出力します。
    @Prompt([Ok]; "@Min(99 : 2 : 3)"; @Text(@Min(99 : 2 : 3))); @Prompt([Ok]; "@Min(1; 3)"; @Text(@Min(1; 3))); @Prompt([Ok]; "@Min(99 : 2 : 3; 5 : 6 : 7 : 8)"; @Implode(@Text(@Min(99 : 2 : 3; 5 : 6 : 7 : 8))))
  12. @Modulo。次の例は、4/3 の余りである 1 と、-14/3 の余りである -2 を出力します (被除数が負のとき、余りは負になります)。また、3 行目では、最初のリストの各要素を 2 番目のリストの要素で割った余りである 1 2 3 3 を出力します。
    @Prompt([Ok]; "@Modulo(4; 3)"; @Text(@Modulo(4; 3))); @Prompt([Ok]; "@Modulo(-14; 3)"; @Text(@Modulo(-14; 3))); @Prompt([Ok]; "@Modulo(4 : 6 : 8 : 9; 3 : 4 : 5 : 6)"; @Implode(@Text(@Modulo(4 : 6 : 8 : 9; 3 : 4 : 5 : 6))))
  13. @Modulo。次の例は、入力された値が偶数 (2 で割った余りが 0) か奇数かを判定します。
    n := @TextToNumber(@Prompt([OkCancelEdit]; "Input Number"; "Type a number"; "")); @Prompt([Ok]; "The number is ..."; @If(@Modulo(n; 2) = 0; "Even"; "Odd"))
  14. 次の例は、フィールド [SpecifiedLength] と [MeasuredLength] を比較し、差が 0.01 を超えている場合にメッセージを表示します。
    @If(@FloatEq(SpecifiedLength; MeasuredLength; 0.01); "";
    @Prompt([Ok]; "Length is out of spec";
    @Text(MeasuredLength)))
  15. @Power。次の例は、2 の 3 乗である 8、-2 の 3 乗である -8、2 の -3 乗である 0.125 を出力します。
    @Prompt([Ok]; "@Power(2; 3)"; @Text(@Power(2; 3))); @Prompt([Ok]; "@Power(-2; 3)"; @Text(@Power(-2; 3))); @Prompt([Ok]; "@Power(2; -3)"; @Text(@Power(2; -3)))
  16. @Sqrt、@Power。次の例は計算結果フィールドの値式です。[Length] と [Width] の各フィールドで指定された辺に基づいて四角形の対角線を計算します。
    @If(Length = "" | Width = ""; ""; @Sqrt(@Power(Length; 2) + @Power(Width; 2)))
  17. @Pi、@Power。次の例は計算結果フィールドの値式です。[Radius] フィールドで指定された半径に基づいて円の面積を計算します。
    @If(Radius = ""; ""; @Pi * @Power(Radius; 2))
  18. @Log。次の例は、4 の常用対数 0.602059991327962 と、1014 の常用対数 14 を出力します。
    @Prompt([Ok]; "Common log of 4"; @Text(@Log(4))); @Prompt([Ok]; "Common log of 1.0E+14"; @Text(@Log(1.0E+14)))
  19. @Ln。次の例は、2 の自然対数 0.693147180559945 を出力します。
    @Prompt([Ok]; "Natural log of 2"; @Text(@Ln(2)))
  20. (@Exp) 次の例は、最初の @Exp 関数で 2.71828182845904 (e の値)、2 番目の @Exp 関数で 3.49034295746184 (1.25 に対する e の値)、3 番目の @Exp 関数で 0.28650479686019 (-1.25 に対する e の値) を計算します。
    @Prompt([Ok]; "e to 1"; @Text(@Exp(1))); @Prompt([Ok]; "e to 1.25"; @Text(@Exp(1.25))); @Prompt([Ok]; "e to -1.25"; @Text(@Exp(-1.25)))
  21. @Random。次のビューアクションの例は、ユーザーから数値を取得し、1 から 99 までの乱数と比較します。
    userNumber := @Prompt([OkCancelEdit]; "Number"; "Must be 1-99"; "");
    winningNumber := @Text(@Integer(98 * @Random + 1));
    @Prompt([Ok]; "Result"; @If(userNumber = winningNumber; "YOU WIN"; "Sorry - winning number is " + winningNumber))
  22. @Sin、@Cos。次の例は、2 つの計算結果フィールドを対象にした式を示します。最初の式は、四角形の長辺を計算し、2 番目の式では短辺を計算します。
    Diagonal * @Sin(Angle * @Pi / 180)
    Diagonal * @Cos(Angle * @Pi / 180)