SenseTalkの算術計算
SenseTalkでは、数学的な演算子やさまざまなコマンドや関数を使用して数学的な操作を実行することができます。演算子の使用方法についての詳細な情報は、Expressions ページを参照してください。このページではSenseTalkで表現を使用する基本的な方法を説明し、特定の数学演算子(+、-、*、その他の演算子)と比較や論理演算子などの他の有用な概念について説明するページへのリンクがあります。
SenseTalkの算術コマンドと関数は、数値を操作するための便利なツールを提供しています。算術コマンドは、コンテナに格納された数値 を変更するために使用できます。これらのコマンドは+、-、*、/の演算子と同じ算術関数を実行します。違いは、これらのコマンドがオペランドの一つをコンテナから取り出し、計算結果をそのコンテナに戻すことです。算術関数は数値を操作します。これらの関数を使用して、さまざまな方法で数値を操作することができます。
算術計算に関連する話題であるPoints and Rectanglesでは、SenseTalkが幾何学的な点と矩形の概念をどのように理解しているかについて説明しています。任意の2つの数のリスト、またはコンマで区切られた2つの数からなるテキスト文字列は、点として扱うことができます。Points and Rectanglesのページで説明されている関数は、点や矩形の各成分値を抽出するために使用できます。
算術コマンド
算術コマンドは4つあります:
これらを使用して、コンテナに格納された値を変更します。これらのコマンドは+、-、*、/の演算子と同じ算術関数を実行します。違いは、これらのコマンドがオペランドの一つをコンテナから取り出し、計算結果をそのコンテナに戻すことです。
Add
コマンド
動作: add
コマンドは、コンテナ内の値に数値を追加し、合計によりコンテナ内の値を置き換える場合に使用します。値のリストを追加することもできますが、ソースリストと宛先リストの両方が同じ数のアイテムを含んでいる必要があります。ソースリストからの各アイテムは、宛先コンテナの対応するアイテムに追加されます。 NumExpr はソース表現です。これは数値、任意の数式、または他のコンテナであることができます。 Chunk は、コンテナの一部を説明するチャンク表現です(行、単語、アイテム、または文字)。 Container は任意のコンテナです。
文法:
add numExpr to {chunk of} container
例
add amount to dollarsVariable
例
add 37 to item 2 of line 3 of scores
例
add speed * time to item 1 of distances
例:
add [10,5] to centerPoint
関連項目:
Subtract
コマンド
動作: subtract
コマンドは、コンテナ内の値から数値を引く場合に使用します。結果によりコンテナ内の値を置き換えます。値のリストを引くことができますが、ソースリストと宛先リストの両方が同じ数のアイテムを含んでいる必要があります。ソースリストからの各アイテムは、宛先コンテナの対応するアイテムから引かれます。 NumExpr はソース表現です。これは数値、任意の数式、または他のコンテナであることができます。 Chunk は、コンテナの一部を説明するチャンク表現です(行、単語、アイテム、または文字)。 Container は任意のコンテナです。
文法:
add numExpr to {chunk of} container
例:
subtract checkAmt from accountBalance
例
subtract 1 from property CountDown of gameController
例
subtract rate * pmt from line 4 of amortization
例:
subtract [1,2] from boxDimensions
関連項目:
Multiply
コマンド
動作: multiply
コマンドは、コンテナ内の値を別の数値で掛ける場合に使用します。結果によりコンテナ内の値を置き換えます。値のリストを掛けることができますが、ソースリストと宛先リストの両方が同じ数のアイテムを含んでいる、またはソースが単一の値であることが必要です。宛先コンテナの各アイテムは、ソースリストの対応するアイテム、またはソース値で掛けられます。 NumExpr はソース表現です。これは数値、任意の数式、または他のコンテナであることができます。 Chunk は、コンテナの一部を説明するチャンク表現です(行、単語、アイテム、または文字)。 Container は任意のコンテナです。
構文:
multiply {chunk of} container by numExpr
例
multiply score by weightingFactor
Example
multiply accountBalance by 1 + interestRate
例
multiply item 3 of line x of table by 2
関連項目:
Divide
コマンド
動作: divide
コマンドは、コンテナ内の値を別の数値で除算する場合に使用します。結果によりコンテナ内の値を置き換えます。値のリストを除算することができますが、ソースリストと宛先リストの両方が同じ数のアイテムを含んでいる、またはソースが単一の値であることが必要です。宛先コンテナの各アイテムは、ソースリストの対応するアイテム、またはソース値で除算されます。 NumExpr はソース表現です。これは数値、任意の数式、または他のコンテナであることができます。 Chunk は、コンテナの一部を説明するチャンク表現です(行、単語、アイテム、または文字)。 Container は任意のコンテナです。
文法:
divide {chunk of} container by numExpr
例
divide score by totalCount
例
divide item 1 of balances by 12
関連項目:
算術関数
これらの関数を使用して数値を操作します。
abs of numFactor
動作: 数値パラメータの絶対値を返します。絶対値はその数値の大きさであり、その符号に関わらず常に正またはゼロです。
構文: the abs of numFactor
abs( numExpr )
numFactor as a positive number
numFactor as a negative number
例
put abs(-11) -- 11を表示
例:
if height is a negative number then put abs(height) into height
例
put (3 - 16) as a positive number --> 13
例
put 500 as a negative number --> -500
関連: annuity
関数
動作: 指定された期間ごとの利息率と期間数に基づき、一単位の支払いを伴う普通年金の現在価値を計算します。
構文: annuity( interest, periods )
例:
put annuity(1%, 32)
関連項目:
ATan
関数
動作: パラメータの逆三角関数をラジアンで表現した角度として返します。
構文: the atan of numFactor
atan( numExpr )
例:
put atan(19) -- 1.518213を表示
関連:
abs
関数
動作: パラメータの平均を返します。 _numList_は、数値のリスト、カンマで区切られた数値のリストを評価する式、またはこれらの組み合わせを任意の深さでネストしたものであることができます。
[**構文:**md {the} average of numList
average( numList )
例:
put average(8, 10, 12) -- 10を表示
例:
if the average of [x,y,z] is greater than z then
put "Z is below average!"
end if
関連:
関連: compound
関数
動作: 指定された利率と期間に基づいて、1単位の投資に対する元本プラス利息を計算します。
構文: compound( interest, periods )
例:
put compound(7,25%, 6) -- 1.521892を表示
例:
put initialInvestment * compound(6.7%, 12) into currentValue
関連項目:
cos( numExpr )
動作: パラメータの三角関数コサインを返します。このパラメータはラジアンで表現される角度です。
構文: {the} average of numList
cos( numExpr )
例:
put cos(18) -- 0.660317を表示
関連項目:
Cube Root
関数
動作: パラメータの立方根を計算します。
構文:
cube root( number )
{the} average of numList
Example
put cube root (27)--3
例:
put the cube root of 8--2
関連項目:
abs( numExpr )
動作: パラメータの自然指数(つまり、数学定数eをパラメータの冪に上げたもの)を返します。
構文:
{the} exp of numFactor
exp( numExpr )
例:
put exp2(8) -- 256
関連項目:
exp1( numExpr )
動作: パラメータの値を最も近い整数に四捨五入して返します。オプションで第二パラメータを提供することで、四捨五入する小数点以下の桁数を指定することができます。負の桁数は小数点の左側で四捨五入します。
構文:
exp1( numExpr ) {the} exp1 of numFactor
例:
put expl(2) -- 6.389056
関連項目:
exp2( numExpr )
動作: パラメータに1を加えた自然対数を返します。
Syntax: exp2( numExpr ) {the} exp2 of numFactor
例:
put exp(2) -- 7.389056
関連項目:
関連項目: frac
関数
動作: 数値の小数部分を返します。値の整数部分を取得するには trunc
関数を使用します。trunc(x) + frac(x)
は常に x
と等しいように trunc
と frac
関数が定義されています。
構文:
{the} average of numList
frac( numExpr )
例:
put frac(81.236) -- .236
文法:
ln( numExpr )
動作: パラメータの自然対数を返します。
構文: {the} average of numList
ln( numExpr )
例:
put ln(2) -- 0.693147
関連項目:
{the} ln1 of numFactor
動作: パラメータの自然指数の1引いたものを返します(つまり、数学定数eをパラメータの冪に上げ、1を引いたもの)。
構文: {the} average of numList
ln1( numExpr )
例
put ln1(2) -- 1.098612
関連項目:
log2( numExpr )
動作: パラメータのベース2の対数を返します。
構文: {the} log2 of numFactor
log2( numExpr )
例
put log2(256) -- 8
関連項目:
Maximum
, Max
, HighestValue
, LargestValue
関数
{the} log2 of numFactor
構文: {the} log2 of numFactor
[max | maximum | highestValue | largestValue]( numExpr )
例:
put max(4, 6, 5, 7, 3) -- 7
例
if the maximum of [x,y,z] is z then
put "Z is the greatest!"
end if
例:
put largestValue of [2,23,45,76] --76
例:
put highestValue of [3,9,13,21,42] --42
関連項目:
Median
関数
{the} log2 of numFactor
Options:
{the} log2 of numFactor
median( numList )
例:
put median(1, 8, 9, 12) -- 8
Example
put the median of "2,7,8,10" -- 7.5
関連項目:
Minimum
, Min
, LowestValue
, SmallestValue
関数
{the} log2 of numFactor
構文:
{the} log2 of numFactor
[min | minimum | lowestValue | smallestValue]( numList )
例:
put min(4,6,5,7,3) -- 3
Example
if the min of [x,y,z] is z then put "Z is the smallest!"
例:
put lowestValue of [3,9,13,21,42] --3
例:
put smallestValue of [9,13,21,56,72] --9
関連項目:
round( numExpr {, decimalPlaces} )
{the} log2 of numFactor
構文: {the} log2 of numFactor
payment( loanProperties ) payment( _principal,rate, term {, frequency} )
もし_loanProperties_がプロパティリストとして与えられた場合、以下を含める必要があります:
- sum( numList )
- annuity( interest, periods )
- sqrt( numExpr )
- frac( numExpr )
もし_principal_が特定の通貨の単位で与えられた場合、返される支払金額も同じ単位になります。もし_term_が期間の単位で指定され、_frequency_が省略された場合、期間の単位が支払いの頻度として使用されます。
例:
put payment(amount:$1000, rate: 6.5% per year, term:60 months) --> $19.566148
put payment($10000,7.5%,60,"months") --> $200.379486