同じ動作をさせる条件において、多くの "or"(|)を避けることは可能でしょうか? - ページ 5

 
borilunad:


そして、この意味がわからないのです。この数字はどこから持ってきたのですか?また、短い変数名に興味があるなら、私は長いより短い方が好きです。それとも他に?そうそう、今気づいたのですが、私の数式にcloの前とcloの後の最後に2つの括弧が追加されていましたね。そんなの全然必要ない、計算が乱れる。でも、ありがとうございました。

<--- 10,444 = 8,087 > 3,908は何語ですか?


double a; <------------ は数値 です。

(isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo);<-------- これはメンバー比較です

a = (isCloseLastPosByTake() == True && Profit> ProClo / clo - GetProfitCloseLastPosByTake() * clo)

number = number > number これをどう理解するか?

 
pako:


double a; <------------ この数値

(isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo);<-------- これはメンバーの比較です

a = (isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo)

数 = 数 > clo

そして、アドバイスいただいた通り、boolは既に実行済みです。

bool a = false;

if(isCloseLastPosByTake() == True && Profit > ProClo / clo - GetProfitCloseLastPosByTake() * clo) a = true;


//Кстати, isCloseLastPosByTake() это член, а GetProfitCloseLastPosByTake() это число

そして、前ページですでにお伝えしたように、効果があるのですありがとうございました。
 
borilunad:
私の場合、1つの条件を満たせば十分です。もし私が間違っているならば、それを正当化してください!私はいつでも新しいことを聞くのが好きなのです。ありがとうございます。

いいえ、そんなことはありません。

いずれかの条件(A、B、C、D)=真であれば、Requestは真となる。

all =falseの場合、Requestはfalseになります。

 
icas:

いいえ、そんなことはありません。

いずれかの条件(A、B、C、D)=真であれば、Requestは真となる。

all =falseの場合、Requestはfalseになります。

こちらも試してみます!もし、速度が良ければ、そちらを選びます。ありがとうございました。

試しに、Request()関数をスタートの外に置いてみましたが、コンパイラから警告が出ました。

'Request' - インポートした関数に 対応するDLLが定義されていません C:\Program Files

以上、動作するようになりましたが、Rakoさんのバリエーションの方が、追加の関数Request()を入力する必要がないので、良いと思います。 ありがとうございました。

 
Request() return() の意味
 
pako:
Request() return() の意味
ありがとうございます。しかし、icasさんのバリアントを試したところ、私のミスでRequest() の後に; を入れてしまい 今は動作していますが、先にお伝えしたように、あなたのバリアントの方が 良いと思います。 ありがとうございます。
 
borilunad:
ありがとうございます。しかし、icasさんのバリアントを試したのは私で、私のミスでRequest() の後に; を入れてしまったため、 現在は動作していますが、先にお伝えしたように、あなたのバリアントの方が 良いと思います。 ありがとう ございます。

バリアントでは

 if((A + B + C + D + E) > 0) Action;

は、常にすべての条件A, B, C, D, Eを定義する必要があります。

私のバリアントでは、これはすべての条件がfalseのときだけ行われます。

スピードについて今一度考えてみてください。

 
icas:

バリアントでは

は、常にすべての条件A, B, C, D, Eを定義する必要があります。

私のバリアントでは、これはすべての条件がfalseのときだけ行われます。

今、速さを考える。

ありがとうございました。で、どうなんだ?このような条件を最初に決めておき、その後にあなたのRequest() を呼び出すのです。どこで、どうすればいいのかわからない。:(

すべての条件は相互に排他的であり、常にすべてが偽、または1つだけが真で残りが偽になることに留意してください。

 

アイカス

テスターでは、このオプションをチェックしても実行時間が短縮されなかったので、私のやり方が正しくなかったのだと思います。

何をどこに置けばいいのか、説明してくれるかもしれませんよ。ありがとうございます!!!

 

borilunad 関数呼び出しは、不必要なブレーキをかけることになります。したがって、最高速度を求めるなら、一文字の演算を行うRequest()関数をすべて取り除く必要があります。 ループについても同様です。 ループ内の条件チェックは、単にネストしたif()の連続よりも常にはるかに遅いのです。