0

これは実際には のプログラムですが、labview でスクリプトをLabVIEW記述したり、 で同じようにシミュレートしたりできます。また、より多くの答えを引き付けるために。したがって、主にアルゴリズムが必要です。質問全体を読んでください。ClogicLabVIEWC

私のアプリケーションでは、次の 5 つの変数があります。

var1 -> type string,
var2 -> type string,
var3 -> type array of strings,
var4 -> type array of strings,
var5 -> type boolean 

これら 5 つの変数は、ファイルから読み取ったデータをどのようにフィルター処理するかを制御します。
そのため、これらの入力に基づいてアクションを実行するスイッチケースがあります。

スイッチを制御するには、次のようにします。

  • var1 が空の場合false
  • var2 が空の場合は false。
  • var3 が空の配列の場合false.
  • var4 が空の配列の場合false.
  • のvar5falseの場合true

したがって、5 ビットの組み合わせを取得するので、32 の値を持つことができます。つまり、32 種類のフィルター、つまり 32 ケースです!

たとえば、空である、空var1ではvar2ない、空でvar3はない、var4空である、var5真である場合、01101 (12 で 13) になります。そこで、13 番目のフィルターを選択します。

これをコーディングするのは本当に忙しいので、ケースの数を減らしたいです。どうやってするの?
私が探しているのはアルゴリズムです。

ここにlabviewコードがあります

これはケースコントロールです

var1 -> オペレーター名、var2-> スーパーバイザー名、var3-> JobID、var4-> 複数のバッチ選択、var5-> 無効な日付。

編集。; たとえば
、var1 と var3 が null でない場合、var1 と var2 のデータが含まれるようにファイルからデータを読み取る必要があります。

たとえば
、var1、var3、var5 が null でない場合は、var1 と var3 と var5 に共通のデータを持つようにデータを選択する必要があります。

例 3
var1、var3、var4、var5 がある場合、var1 var3 var4 var5 に共通のデータを含むデータをフェッチする必要があります。

たとえば、 var3
しかない場合は、var3 に関連するデータのみをフェッチする必要があります。

4

1 に答える 1

1

あなたが求めていること/改善のための提案を行う可能性はたくさんあります。

  1. 実行するテストごとに、入れ子になった Case 構造を用意します。ここでの推奨事項: 失敗する可能性が高い特定のテストがある場合は、それらを外側に置きます。そうすれば、実行を最適化できます。

  2. すでにお持ちのケース ストラクチャは、範囲を使用して複数のケースを処理できます。たとえば、[ケース セレクタ] ボックスに 1..10 と入力して、1 ~ 10 の数字を処理できます。特定のケースを連続させることで、ケースの数を減らすことができる場合があります。

  3. 使用しているLabVIEWのバージョンは正確にはわかりませんが、行っているテストのいくつかは少し簡略化できます. たとえば、LabVIEW 2011以降では、使用できる特別な空の配列のテスト関数と空の文字列のテスト関数があると思います。

  4. また、5 つの Insert Into Array 関数を使用する代わりに、ブール値の数を保持するように拡張された 1 つの Build Array 関数を試してください。

ブール値が多い場合、「指数関数的増加」がここで意味する増加のタイプだと思います。ケースの数 (理論上) は 2^(変数の数) です。

于 2013-05-30T03:15:38.957 に答える