MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1412

 
str+="--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", ";
 
ANDREY:

私は必要なものを手に入れた

LoY[r] = 1.6104---LoY[r] = 1.6105---LoY[r] = 1.6106---LoY[r ] = 1.6107---LoY[r] = 1.6108---LoY[r] = 1.6109---LoY[r] = 1.6110---LoY[r] = 1.6111・・・。

また、Print() [r] の代わりに インデックス 値を代入してもらうことは可能でしょうか?
言葉で説明するのではなく、そのようなコードの例を 書いていただけると大変ありがたいです。
よろしくお願いします。

これは発作の時だけなんです......今日はもう1回発作が起きたので、次はすぐには起きないでしょうけど......。

 
Aleksei Stepanenko:

どうもありがとうございました。あなたのコードはよりコンパクトなので、それを鵜呑みにして、細部まで理解するためにじっくりと勉強を進めています。

 
Aleksei Stepanenko:

あなたのコードをよく研究しました。一人一人のキャラクターを理解する。赤字の+記号だけがわからない

str+="--LoY["+IntegerToString(r)+"]--,"+DoubleToString(LoY[r],4)+",";
これらのプラスは どのような機能で どこに書いてあるか教えていただければと思います。コバレフのチュートリアルでは、それらに関する情報を見つけることができませんでした。
これらのオプションを削除すると、コンパイラはいくつかのエラーを出しました。残念ながら私は英語が苦手なので、彼がどういう意味で言ったのかわかりません。

また、情報提供のサポートに感謝します。

 
ANDREY:

あなたのコードをよく研究しました。一人一人のキャラクターを理解する。赤字の+記号だけがわからない

str+="--LoY["+IntegerToString(r)+"]--,"+DoubleToString(LoY[r],4)+",";
これらのプラスは どのような機能で どこに書いてあるか教えていただければと思います。コバレフのチュートリアルでは、それらに関する情報を見つけることができませんでした。
これらのオプションを削除すると、コンパイラはいくつかのエラーを出しました。残念ながら私は英語が苦手なので、彼がどういう意味で言ったのかわかりません。

また、情報提供のサポートに感謝します。

そして、ここからは言葉での解説をお願いします......。

例えば2.3+3.6というように数字を足すと5.9という同じ数字になり、文字列を足すと DoubleToString(2.3, 1)+. DoubleToString(3.6, 1)とすると、文字列としては2.33.6となる。

 

その通りアレクセイが言った通り、ただの紐付け です。

これは、あなたにとって興味深いかもしれません。

a+=4; -это тоже самое, что и a=a+4;
по аналогии:
a-=4;
a*=4;
a/=4;

a++; - означает a=a+1;
a--;

 
Alexey Viktorov:

でも、言葉での説明は大歓迎です......。

例えば2.3+3.6のように数字を足すと5.9という同じ数字になりますし、文字列を足すと DoubleToString(2.3, 1)+. DoubleToString(3.6, 1)とすると、文字列としては2.33.6となります。

ご指摘ありがとうございます。

 
Aleksei Stepanenko:

その通りアレクセイが言った通り、ただの紐付け です。

それは、あなたにとって興味深いことかもしれません。

ご指摘ありがとうございます。

 
Alexey Viktorov:

でも、ここで言葉での説明をお願いします.........。

2.3+3.6のように数字を足すと5.9という同じ数字になり、文字列を足すと DoubleToString(2.3, 1)+. DoubleToString(3.6, 1)とすると、文字列としては2.33.6となる。

つまり、各反復で LoY["IntegerToString(r)"] の値を 1 つ増やし、 DoubleToString(LoY[r],4) の値を 1 つ増やしたものである。

しかし、1ずつ増えていくのは、私の慣れ親しんだLoY["IntegerToString(r)"]++; ではなく、1ずつ増えていくのは、LoY["+IntegerToString(r) "+] 、つまりプラスの間に変数が置かれるように特別にアレンジされて います。

文字列変数を1ではなく2だけ増加させる場合、どのように処理すればよいのでしょうか?通常、このインクリメントはVARIABLE +=2 ですが、私のコードではどのように2によるインクリメントをフォーマットすればよいのでしょうか?

さらに、私の配列の要素の値は、今のように厳密な順序ではなく、互いに異なる方向に進みます。例えば、こんな感じでしょうか...。

LoY[0]=1.6104 ,LoY[1]=1.6114,LoY[2]=1.6100,LoY[3]=1.6120 ,LoY[4]=1.6115 ,LoY[5]=1.6115 ,LoY[6]=1.6098 ,LoY[7]=1.6085 ,LoY[8]=1.6125,...... といった感じです。つまり、これらの値は、コードの別の部分で配列の項目に代入され、必ずしもループを使用する必要はありません。
字列変数の接続を使って Print()関数でこのようなシーケンスを正しく表示できるとは思えませんが......。


ありがとうございました。

 
ANDREY:

つまり、各反復で LoY["IntegerToString(r)"] の値を 1 つ増やし、 DoubleToString(LoY[r],4) の値を 1 つ増やしたものである。

しかし、1ずつ増えていくのは、私の慣れ親しんだLoY["IntegerToString(r)"]++; ではなく、1ずつ増えていくのは、LoY["+IntegerToString(r) "+] 、つまりプラスの間に変数が置かれるように特別にアレンジされて います。

では、文字列変数を1ではなく2だけ増やす場合は、どのように処理すればよいのでしょうか。通常、このインクリメントはVARIABLE +=2 ですが、私のコードではどのように2によるインクリメントをフォーマットすればよいのでしょうか?

さらに、私の配列の要素の値は、今のように厳密ではなく、別の方向に進みます。例えば、こんな感じでしょうか...。

LoY[0]=1.6104 ,LoY[1]=1.6114,LoY[2]=1.6100,LoY[3]=1.6120 ,LoY[4]=1.6115 ,LoY[5]=1.6115 ,LoY[6]=1.6098 ,LoY[7]=1.6085 ,LoY[8]=1.6125 ,...といった感じである。つまり、これらの値は、コードの別の部分で配列の項目に代入され、必ずしもループを使用する必要はありません。
字列変数の接続を使って Print()関数でこのようなシーケンスを正しく表示できるとは思えませんが......。


よろしくお願いします。

IntegerToString() および DoubleToString() 関数は、単に数値を文字列として表現し、関数に渡します。以下はその一例です。

これはまさに、r数を文字列に変換して、文字列を「足し算」しているところです。しかし、その前にrの値が変化してしまう。

質問の意味がよくわからないのですが、配列から偶数番目の要素だけを選択したい場合は、次のようなループを組むとよいでしょう。

for(int i = 0; i <= 30; i+=2)