コンテンツにスキップ

Decision - ディシジョン(決定)

このディシジョン コンポーネントを使用すると、条件または一連の条件を指定できます。
条件が満たされている場合はtrue、そうでない場合はfalseと見なされます。
これにより、意思決定のプロセスを自動化できます。

サポートされている機能

ディシジョン コンポーネントは次の関数と演算子をサポートします。

値は、具象要素を表す端末トークンです。

  • an integer
  • a floating point number
  • a date time
  • a boolean
  • a string
  • a function
  • a parameter

整数

これらは数字を使用して表されます。
123456
Int32 として評価されます。

浮動小数点数

ドットを使用して小数部を定義します。
123.456 .123
10 進数として評価されます。

指数表記

e を使用して、10 (10^) の累乗を定義できます。
1.22e1
1e2
1e+2
1e-2
.1e-2
1e10
Doubleとして評価されます。

日時

シャープで囲む必要があります。
#2008/01/31# // en-USカルチャの場合
日時として評価されます。NCalcは現在のカルチャを使用してそれらを評価します。

ブール値

ブール値はtruefalseです。

文字列

単一引用符「‘」の間の任意の文字は、文字列として評価されます。
‘hello’
特殊文字は\, ', \n, \r, \tを使用してエスケープできます。

パラメータ

パラメータを名前として使用し、必要に応じて角かっこ内に含めることができます。
2 + x、2 + [x]

関数

関数は、名前の後に中かっこが続き、必要に応じて任意の値を引数として含みます。
Abs(1), doSomehting(1, 'dummy')

演算子

式は演算子を使用して組み合わせることができます。各演算子を優先順位として指定します。これらの式の優先順位の一覧を次に示します。
1.プライマリ
2.単項演算子
3.べき乗演算子
4.乗法演算子
5.加法演算子
6.関係演算子
7.論理演算子

論理演算子

他の式間で論理比較を行うことができます。
or,||
and,&&

true または false
and 演算子の優先順位は or より高いため、上記の例では false と true が最初に評価されます。

関係演算子

関係演算子は、値を比較するために使用されます。これらの演算子は常にブール値になります。
=, ==, !=, <>
<, <=, >, >=
1 < 2

加法演算子

加算演算子は、加算と文字列の連結(+)と減算(-)に使用されます。加算演算子は、加算式に表示されます。
* +、-
1 + 2 – 3

乗法演算子

乗法は、乗算()、除算(/)、および剰余演算(%)に使用されます。乗法演算子は乗法式に現れます。
、/、%
1 * 2%3

ビット

10 進数は人間にとって自然です。2 進数はコンピュータ固有です。2 進数、8 進数、10 進数、または 16 進数は、同じ数値の表記にすぎません。ビット演算子は、2 進数のビットを処理します。
* & (ビットの and), | (ビットの or), ^(ビットの xor), << (左シフト), >>(右シフト)
2 >> 3

単項演算子

式またはステートメント内の単一オペランドを受け取る単項演算子
* !, not, -, ~ (ビットの not)
not true

プライマリ

2つの主要な演算子を使用して、構造体およびユニオンメンバーを指定できます。ドット(ピリオド)および矢印(マイナス記号と大なり記号で形成)演算子は、常にプライマリ式が先行し、その後に識別子が続きます。
(、)
values
2 *(3 + 2)

フレームワークには、既に実装されている関数のセットが含まれています。

名前 説明 使用法 結果
Abs 指定した数値の絶対値を返します。 Abs(-1) 1M
Acos コサインが指定した数値の角度を返します。 Acos(1) 0d
Asin サインが指定した数値の角度を返します。 Asin(0) 0d
Atan タンジェントが指定した数値の角度を返します。 Atan(0) 0d
Ceiling 指定した数値以上の最小整数を返します。 Ceiling(1.5) 2d
Cos 指定した角度のコサインを返します。 Cos(0) 1d
Exp eを指定した累乗で返します。 Exp(0) 1d
Floor 指定した数値以下の最大整数を返します。 Floor(1.5) 1d
IEEERemainder 指定した数値を別の指定した数値で除算した結果の剰余を返します。 IEEERemainder(3, 2) -1d
Log 指定した数値の対数を返します。 Log(1, 10) 0d
Log10 指定した数値の 10 を底とする対数を返します。 Log10(1) 0d
Max 指定した2つの数値のうち大きい方を返します。 Max(1, 2) 2
Min 2つの数値のうち小さい方を返します。 Min(1, 2) 1
Pow 指定した数値を指定した累乗で返します。 Pow(3, 2) 9d
Round 値を最も近い整数または指定した小数点以下の桁数に丸めます。中間数値の動作は、式オブジェクトの構築中に、 EvaluateOption.RoundAwayFromZeroを使用して変更できます。 Round(3.222, 2) 3.22d
Sign 数値の符号を示す値を返します。 Sign(-10) -1

また、他の汎用的なものも含まれています。

名前 説明 使用法 結果
in 要素が値のセット内にあるかどうかを返します。 in(1 + 1, 1, 2, 3) TRUE
If 条件に基づいて値を返します。 if(3 % 2 = 1, 'value is true', 'value is false') 'value is true'

ポート

ディシジョン コンポーネントは、既定でコントロール入力ポートとコントロール出力ポートを公開し、動的に作成されたデータ入力ポートを公開します。

ポート 説明
Control In 1つ以上のコンポーネントのコントロール出力ポートに接続する必要があります。
Control Out 他のコンポーネントの コントロール入力 ポートに接続する必要があります。
ディシジョン コンポーネントは、次の 2 種類のコントロール出力ポートを公開します。
* 成功: データ型が同じである限り、他のコンポーネントの コントロール入力 ポートに接続されます。
* 失敗: データ型が同じである限り、他のコンポーネントの コントロール入力 ポートに接続されます。
Data In ディシジョン コンポーネント内の変数のデータを収集する別のコンポーネントのデータ出力ポートに接続できます。このポートは、ディシジョン コンポーネントで指定した変数の名前で動的に作成されます。

プロパティ

ディシジョン コンポーネントのプロパティを編集するには、右下のペインで必要なプロパティを変更します。
これは、ディシジョン コンポーネントを使用して実行するアクションを選択するために必要です。
次のプロパティを編集可能です。

プロパティ 説明
Search それぞれのプロパティを検索します。
Delay After Execution アクションが実行された後の(秒単位)待機時間を指定します。
Delay Before Execution アクションが実行されるまでの待機時間(秒単位)を指定します。
Name ディシジョンコンポーネントの名前を指定します。操作しているアプリケーション フィールドと一致するように名前を設定します。

数値が40以上かどうかを判断する例を見てみましょう。

ディシジョンコンポーネントを使用するには:

  1. ツールボックスで、Conditions(条件)を展開します。
  2. ディシジョンコンポーネントをドラッグし、デザインサーフェイスにドロップします。
  3. タイトル バーの下に、論理条件を入力します。たとえば、条件 x>=40。データ入力ポートは、ディシジョン テキスト ボックスで指定した変数の名前で動的に作成されます。
    この例では、'X' の値を定義する数値を追加し、条件が満たされているかどうかを確認します。アクションを実行するには、ユーザーは変数コンポーネントを追加する必要があります。
  4. 変数コンポーネントを追加するには:
    • ツールボックスで、全般を展開します。
    • 変数コンポーネントをドラッグし、デザインサーフェイスにドロップします。
    • 変数コンポーネントをダブルクリックし、数値を入力します。
      また、条件を満たさない場合に成功と失敗の通知を表示する 2 つの MessagBox Show コンポーネントを追加する必要があります。
  5. MessagBox Show コンポーネントを追加するには:
    • ツールボックスで、全般を展開します。
    • MessagBox コンポーネントを展開し、Showコンポーネントをドラッグしてデザインサーフェイスにドロップします。
    • Showコンポーネントのテキストボックスをダブルクリックして、成功の通知で表示されるメッセージを入力します。
    • 別のShowコンポーネントを追加して同じ手順を繰り返し、失敗の通知で表示されるメッセージを追加します。
  6. 接続します:
    • Startコンポーネントのコントロール出力ポート変数コンポーネントのコントロール入力ポートへ。
    • 変数コンポーネントのコントロール出力ポート``をディシジョンコンポーネントのコントロール入力ポートへ
    • 変数コンポーネントのデータ出力ポートディシジョンコンポーネントのデータ入力ポートへ。
    • ディシジョンコンポーネントのTrueコントロール出力ポートpass MessagBox コンポーネントへ。
    • ディシジョンコンポーネントのFalseコントロール出力ポートfail MessagBox コンポーネントへ。
  7. ツールバーの、Runをクリックします。
    条件が正常に満たされると、成功メッセージが表示されます。

    条件が満たされない場合、失敗メッセージが表示されます。