数学演算子
SenseTalkは、数多くの数学演算子を提供します。以下で概要を説明します。
+ , Plus 演算子
動作: 二つの数字または数字のリストを足します。
構文:
operand1 + operand2
operand1 plus operand2
例:
put 12 + 97 into someSum
例:
put a squared plus b squared into sumOfSquares
例:
put [12,8] + [4,7] into vectorSum
- , Minus 演算子
動作: 一つの数字または数字のリストから別の数字またはリストを引きます。日付/時間から別の日付/時間を引くと、その差分が秒単位の時間間隔として与えられます。
構文:
operand1 - operand2
operand1 minus operand2
例:
put c^2 - sumOfSquares into difference
例:
put (1,3,5,6) - (1,1,0,2) into diffList
* , Times, Multiplied By 演算子
動作: 二つの数値やリストを掛け算します、またはリストをスカラーで掛け算します。等しい長さの二つのリストを使って使用すると、結果は二つのリストの対応する要素の積の一連のものになります。一つのオペランドがリストで、もう一つが単一(スカラー)の値である場合、結果は、各元のリストの要素をスカラー値で掛け算した値のリストになります。
構文:
operand1 * operand2
operand1 times operand2
operand1 multiplied by operand2
例:
put 2 * radius into diameter
例:
put pi times diameter into circumference
例:
put [1,2,3,4] * [2,2,1,3]-- result is [2,4,3,12]
例:
put [1,2,3md ,4] * 4 -- result is [4,8,12,16]
例:
put 7 multiplied by 3 -- result is 21
/ , Divided By 演算子
動作: 一つの数字またはリストを別の数字またはリストで割ります、またはリストをスカラーで割ります。結果は、全数でない可能性のある商になります。これをdiv演算子と比較してください、これは全数を生成します。等しい長さの二つのリストを使って使用すると、結果は二つのリストの対応する要素の商の一連のものになります。最初のオペランドがリストで、二つ目が単一(スカラー)の値である場合、結果は各リスト要素をスカラー値で割った値のリストになります。第二のオペランドがゼロである場合、この演算子はinfinity(無限大)、表示されるとInfの値を返します。無限の値を他の計算で使用すると、一般的に予想される結果が得られます。
構文:
operand1 / operand2
operand1 divided by operand2
例:
put pi / 2 into halfPi
例:
put [1,2,3,4] / [2,1,1,2] -- result is [0.5,2,3,2]
例:
put [2,4,5,8] / 2 -- Result is [1,2,2.5,4]
^ , To The Power Of , Squared , Cubed 演算子
動作: 数値を指定したべき乗にします。
構文: オペランド1 ^ オペラン ド2 オペランド1 to the power of オペランド2 オペランド1 squared オペランド1 cubed
例:
put a squared + b squared into sumOfSquares
例:
put 6 * x^4 - 2 * y^3 into z
% , Percent 演算子
動作: 数値をパーセンテージとして扱ったり、追加や割引のパーセンテージを計算します。簡単な形式では、%は値の後に続き、その値を100で割る(したがって、6%は.06と同じです)。しかし、%が+または-演算子の後に使用される場合、その演算子の左側の値の対応するパーセンテージが指定されたパーセンテージ分増加または減少します。
構文: factor % factor percent value [ + | - | plus | minus ] factor [ % | percent ]
例:
put 4% -- .04
例:
put 50 * 4% -- 2
例:
put 50 + 4% -- 52
例:
put 50 - 4% -- 48
例:
put sales plus ten percent into projectedSales
Div 演算子
動作: 1つの数値を別の数値で割り、結果を整数で返します。同伴のrem演算子は、そのような操作の余りを見つけるために使用できます。ゼロでの除算は、結果としてInfを生じます。
構文: operand1 div operand2
例:
put cookieCount div numberOfPeople into cookiesForEach
Rem 演算子
動作: 除算の整数の余りを計算します。これはdiv演算子の補完です。rem演算子の結果は常にその最初のオペランドと同じ符号を持ちます。
構文: operand1 rem operand2
例:
put cookieCount rem numberOfPeople into extrasForMe
Modulo, Mod 演算子
動作: 数学的なモジュロ演算を行います。ある数が別の数の次に低い偶数の倍数を超える量を得ます。modulo演算子はrem演算子とは異なり、整数の除算の余りを与えます。両方のオペランドが正の整数である場合、remとmoduloは同じ結果をもたらします。しかし、負の数や非整数の値は、2つの演算子によって大きく異なる方法で扱われます。
構文: operand1 modulo operand2 operand1 mod operand2
例:
put someValue mod modulusValue into extrasForMe
Is a Multiple Of, Is Divisible By 演算子
動作: これらの演算子は一つの数が他の数の正確な倍数であるかどうかをチェックします。つまり、一つを他の数で割った結果が余りのない整数になるかどうかをチェックします。
構文: value is {not} {a | an} {exact | even} multiple of divisor value is {not} {exactly | evenly} divisible by divisor
例:
put 2895 is a multiple of 5-- true
例:
put 169 is divisible by 13 -- true
例:
put 98.6 is an exact multiple of 3.14-- false
例:
もしcookieCountがnumberOfPeopleでちょうど割り切れるなら "Hooray!" を出力する
Rounded To, Rounded to Nearest 演算子
振る舞い: 値を小数点以下の桁数、または別の値の最近傍倍数に丸めます。また、単位名、または単位名の値を持つ変数にも丸めることができます。これらの演算子は、round()関数とroundToNearest()関数を呼び出すための代替構文を提供します(算術計算を参照)。
構文:
値 を 小数点以下の桁数 {{まで}} に丸める
値 を {最} 近傍の {倍数に} 最近傍の倍数 まで丸める
値 を {最} 近傍の 単位 まで丸める
例:
put 123.4567を2桁まで丸める-- 123.46