プログラミングの勉強を手伝ってください。 - ページ 7

 
Aleksei Stepanenko:

なんということでしょう・・・。

そう、Dmitryのサイクルコールは最もエレガントとは言えないが、彼は日付から週番号を取得する面白いコードを書いている。使うときは、いつも優しい言葉で思い浮かべます。

でも、ディミトリ、もっと人に礼儀正しく、やさしくしなきゃだめだよ。

人に対しては丁寧に接する。

 

Dmitriのコードは残っていませんが、それを元に作り直したのがこちらです。

//получаем номер недели в году
int GetWeekNumber(datetime eTime)
   {
   MqlDateTime eDate;
   //получаем дату начала года
   TimeToStruct(eTime,eDate);
   eDate.mon=1;
   eDate.day=1;
   eDate.hour=0;
   eDate.min=0;
   eDate.sec=0;
   datetime StartTime=StructToTime(eDate);
   //возвращаем дату назад в структуру, чтобы определить день недели начала года
   TimeToStruct(StartTime,eDate);
   return(int((eTime-StartTime+86400*eDate.day_of_week)/604800));
   }
 
Dmitry Fedoseev:

人に対しては礼儀正しい。

なぜそんなに攻撃的なんだ、ディミトリ?

私は単にループ内でのPositionsTotal()の正しい使い方を聞いただけです。そして、あなた個人ではなく、一般的にです。そして、あなたはただキレただけ。どうしたんだ、ディミトリ?

対談相手の人間性を 奪うというあなたのコメントに言及したのは、私ではないのでしょうね?

 
Aleksei Stepanenko:

Dmitriのコードは残っていませんが、それを元に作り直したのがこちらです。

ああ、B(a)OGIES!天才的な頭脳が生み出した壮大な作品だ!信じられない!シェアしていただき、ありがとうございます。私はまだ、このような巨大な高さまで成長し、成長していないのですハッカーの手口と同じですね。すごいですね。書いてあることがよくわからない。完璧なコードです。少し変えただけで、輝きがなくなってしまったのが残念です。

 
Nikolay Mitrofanov:

ああ、B(a)OG!これは、独創的な頭脳による見事な作品です

なんという無法者なのでしょう。

 
Dmitry Fedoseev:

また、とても面白いのは、またしてもみんなが、ああ、初心者のためになんて間違ったコードを書いてしまったんだろう...と興奮することです。と、みんなに言われちゃいました。

それはなかったことに。誰もコードを批判していない。ループの好みと見解の違いです。

そして、現時点でのPositionSotal()については、すでに論争が起きています。

コードのために攻撃されているように見えたのですね。しかし、現実は誰も気にしていない。

何が正しいか、何がうまくいくかを同時に考えるバリエーションは多くない。それは、選択の問題です。


そして今、私の素晴らしいExpert Advisorが、(よく使われる3つのループのうち)どのアプローチを選ぶべきかを示してくれるので、ループの発表について議論する必要は全くなくなってしまいました)素晴らしいニュースだと思いませんか、ドミトリー?

一緒に成功を喜びましょう。何世紀にもわたるMQLフォーラムの論争を共同で解決しました!ついに!プログラマーとシンパの皆さん、万歳です。

 
Tio Nisla:
先ほど、somefunc()関数が金額を返す以外に何らかの操作を行う場合、例えば取引パラメータを計算する場合、そのような使い方をすると、捕捉しにくいアーティファクトが発生し、コード作成者を「Ht?どうして4回なんだ?O_o F$#@!!!!3回あるはずなのでは?なぜ私のEAは私に嘘をつくのか」。それが、専門家が毛根まで激怒した「シットコド」である。当たり前のことなので、私は話題にしませんでしたが、あなたは私のためにそれをやってくれました。しかし、配列の再初期化を行わずに動的に計算されたインデックスによるアドレス指定は、別のものであることを考慮に入れていません。素の sys では通常 GPF になり、プラスでは例外とそのハンドラへのスマートポインタと配列になります。mqlでは、何につながるかは不明です。

3回あるはずがなく、1回です。

どうすればそうなるのか、描けますか?

 
Dmitry Fedoseev:

人に対しては礼儀正しい。

ディミトリ、この人は非常に優秀なスペシャリストだ。

 
Nikolay Mitrofanov:

開発時の理解について書いています。まず勉強、そして行動。

逆に、まず行動、次に考える、そして櫛を入れる、と書いていますね。

同じようなものだと思われます。しかし、それならなぜコード例やドキュメントを書くのでしょうか?)害を及ぼす人が少なくなるようにですか?まさにその通りだと思います。いかがでしょうか?

開発しながら学ぶ?実は、プログラミングの初歩の初歩の話です。最初のEAを書くときこそ、まず結果を出して、コードの美しさや簡潔さを後から考えるのが一番です。

今、このダイアログボックスを残しています。すべて無駄です。

 
Aleksei Stepanenko:

Dmitriのコードは生き残れませんでしたが、それを元に作り直したのがこちらです。

もっとシンプルに、こんな感じでいいんじゃないでしょうか。

return ((int)(day_of_year/7))

日のシーケンス番号は、MqlDateTime 構造体