MQL5言語をゼロから独学で学ぶ - ページ 33

 
Vladimir Simakov:

そして、パターンも...。

ああ、三項演算子も あるんだ)

この道(理解し、書き方を知る)くらいから、実は開発者の道は始まっているのです。IMHO

列挙関数やテンプレート関数の中括弧の後のセミコロンは必要ですか、それとも読みやすくするためだけですか?

 
Реter Konow:
それが私の言いたいことです。これで列挙や不要な構文が不要になりました。
では、何のための端末APIなのでしょうか?そこには、fに比べれば、もう少し多くの列挙がある。...および要求/結果構造などが豊富にあります)
 
Реter Konow:
"...でも、まだ正解してないんだよね..."

Valeriyはすでに彼のスクリプトコードで先に回答しています。

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
bool достаточно_времени=true;
bool достаточно_терпения=true;
//---
   if(достаточно_времени && достаточно_терпения)
     {
      Print("я выучу язык MQL 5");
     }
  }
//+------------------------------------------------------------------+

ウラジミールさん、謹んで申し上げます。

 
MrBrooklin:

Valeriyはすでに彼のスクリプトコードで先に回答しています。

ウラジミールさん、謹んで申し上げます。

そう、この変形は構文的には正しいのですが、やはり論理性に欠けます。昨日、Vasilyは関数についていろいろと書きました。そこで必要とされているのが

bool Sufficient_time = Sufficient_time()。

bool Sufficient_time = Sufficient_time()。

if(Sufficient_time && Sufficient_patience)Print("I will learn the language!");

else Print ("I won't.");

時間や忍耐力を計算してからコンディションに入れるのであって、デフォルトで設定するのではありません。コンディションを持つ意味がなくなってしまうので、常に真実であることが求められます。
 
Valeriy Yastremskiy:

列挙とテンプレート機能の中括弧の後のセミコロンとカンマは必須ですか、それとも読みやすくするためですか?

誤字です。当初はマクロバインディングのあるテンプレートオブジェクトが欲しかったのですが、悪化させないことにしました)。

そして、列挙のためには、そう、必要なのです。

 
Реter Konow:
...そこで必要とされているのです。

bool Sufficient_time = Sufficient_time()。

bool Sufficient_patience = Sufficient_patience()です。

if(Sufficient_time && Sufficient_patience)Print("I will learn the language!");

else Print ("I won't.");

Peterさん、逆に質問なのですが、bool 型は 真偽値を格納 するためのものですが、なぜ sufficiency_time()とsufficiency_patience()を指定 したのでしょうか?

敬具 ウラジミール
 
MrBrooklin:

Peterさん、逆に質問なのですが、なぜ sufficiency_time()とsufficiency_patience()bool 型で 指定 したのですか?bool 型は、論理値 trueや falseを格納する ためのものです。

ウラジミールさん、ありがとうございます。
これは,変数Enough_timeとEnough_patienceの実数値を計算するために書かなければならない関数であるためです.

これらの関数には、論理的な「はい」「いいえ」の答えを導き出すパラメータ計算が含まれていなければならず、その答えを変数で返します。これらの関数は、結果を論理的な真/偽の値として返す必要があります。
 
Реter Konow:
"...たしかに、この変形は構文的には正しいが、やはり論理性に欠ける..."

論理値を格納するのに必要なbool型が 使われているのに、なぜ論理がないのでしょうか?では、何がノーロジックなのか、明らかにしてください。

ウラジミールさん、ありがとうございます。

 
MrBrooklin:

論理値を格納するのに必要なbool型が 使われているのに、なぜ論理がないのでしょうか?何が論理的でないのか、明らかにしてください。

ウラジミールさん、謹んで申し上げます。

見てください:あらかじめ(条件の前に)両方の変数をtrueに設定していますね。そのため、スクリプトを開始するたびに常に真となる。では、なぜコンディションが必要なのでしょうか?このプログラムでは、明示的にtrueで初期化された変数がtrueにならないことがあるのでしょうか?- いいえ!なぜなら、あなたはこの値を書き込んでしまったので、コードのどこでも変更することができないからです。

この場合、スクリプトの結果は常に「I will learn the language」という文字列になるから、条件も変数自体も必要ない。

しかし、追加の関数で変数値を計算させると、一方がtrueを、もう一方がfalseを返す、あるいは両方がfalseを、あるいは両方がtrueを返すなど、異なる組み合わせの結果を導くことができる......。この場合、変数の値によって異なる文字列が印刷される可能性があるため、書き込まれた条件は正当化されます。
 
MrBrooklin:

論理値を格納するのに必要なbool型が 使われているのに、なぜ論理がないのでしょうか?何が論理的でないのか、明らかにしてください。

敬具 ウラジミール

これらはスクリプトで設定された変数であるため、ロジックは存在しない。インスタンスを介してユーザが設定する変数か、関数から派生したものであるべきで、その方がより論理的です。

つまり、スクリプトの効用は常にそこにあるべきものなのです。テキストを表示するスクリプトだけでは意味がない。そして、データ入力で、このスクリプトは、あなたが言語を学ぶことができるかどうかを教えてくれます)そして、関数で、彼らは単に存在しない、彼らは書かれていない、とあなたが書いた場合、例えば、数学の知識のレベルから計算、他の言語の知識、どのくらいの空き時間、欲求のレベルと記憶する能力、関数は計算に基づいて真または偽を返すだろう、有用性が高くなります))))))。