プロのプログラマーとして「端末」に求めること。またMQL5への願いが込められたスレッドですね。 - ページ 6

 
Korey писал (а)>>
数値計算アルゴリズムの約4分の1がgotoを使用しているそうです。
をgoto無しでMTにする?

機能をDLLに詰め込むか、gotoを削除する。

やはり、どのようなアルゴリズムなのか気になりますね。

 

コーレーに 合流する。誰もgotoで実装された気の利いたアルゴリズムを見ていないのか?このゴトヒステリーは、実際のニーズというより、ある種の宗教に過ぎないのです。有能なコーダーは、gotoを使ったコードでも明確で正確なコードを書くことができ、条件ジャンプを使った同等のコードよりも読みやすくすることができます。

追伸:gotoを批判したWirth自身も、とりあえず脳内変換で残したようです。そして、「最も構造化された言語」であるC++においても、gotoは消滅していないようだ。Cとの後方互換性という反論は認めない。

 
TheXpert писал (а)>>

実際、gotoを使うのは悪いプログラミングスタイルで、99%の場合、gotoを使ったコードは、既存の条件文による同様のコードに置き換えることができます。

私はそうは思いません。

書き換えることができます。しかし、ある言語でgotoがないのは悪いスタイルであり、99%のコードはその使い方を基準に書き換えることができるとも言える。

例えば、ループを使った複雑なネストされたif-else構造を終了するためのgotoが本当に恋しいです。もし、構造の深いところに出口解析の必要性が計算されているとしたら、私はこれらのアタッチメントのために出口フラグの解析を追加で書かなければならず、不便に感じるのです。コードをオーバーロードさせる。フラグの状態を覚えておいて、解析の外でゴニョゴニョする方がよっぽど簡単です。

マークまで通過する必要はない。すでに議論されていたことです。外部(名前付き)ブロック(演算子、ループなど、中括弧で囲まれた本体を持つもの)の後ろに渡すことができます。

 

さて、私が正しいスタイルの狂信者に聞きたかったこと(例えば、5重にネストされたif-elseの深みから抜け出すこと)は、すでにSK. さんが書いてくださっています。

 
TheXpert писал (а)>>

機能をDLLに詰め込むか、gotoを削除してください。

やはり、どのようなアルゴリズムなのか気になりますね。

数値計算手法のメインとなるFortranについてです。
そのすべてが、米国エンジニア協会によるテストと承認を受けています。
DLLで作業しているので問題ありません)))
と、まるでそうであるかのように、MQのコードに直接挿入したいのに、アルゴリズムを突っ込まなければならず、かなり時間がかかるのです。

追伸:そして何より危険なのは

 
Mathemat писал (а)>>

コーレーに 合流する。誰もgotoで実装された気の利いたアルゴリズムを見ていないのか?このゴトヒステリーは、実際のニーズというより、ある種の宗教に過ぎないのです。有能なコーダーは、gotoでも明確できれいなコードを書くことができますし、条件付きジャンプを使った同等のコードよりも読みやすいかもしれません。

追伸:gotoを批判したWirth自身も、とりあえず脳内変換で残したようです。そして、「最も構造化された言語」であるC++においても、gotoは消滅していないようだ。への異議申し立て

Cとの後方互換性は認めない。

反対するつもりはない。そうなんです。

SK. さんが書きました(a) >> です。

私はそうは思いません。

書き換えることが可能です。しかし、言語にgotoがないのはスタイルが悪いとも言えるし、99%のコードはその使い方で書き換えることができる。

例えば、ループを使った複雑なネストされたif-else構造を終了するためのgotoが本当に恋しいです。もし、構造の深いところに出口解析の必要性が計算されているとしたら、私はこれらのアタッチメントのために出口フラグの解析を追加で書かなければならず、不便に感じるのです。コードをオーバーロードさせる。フラグの状態を覚えておいて、解析の外でゴニョゴニョする方がよっぽど簡単です。

マークまで通過する必要はない。すでに議論されていたことです。名前付き)ブロック(演算子、ループ、中括弧の中に本体があるもの)の外側に渡すことができました。

ブレークが効かない?


結局のところ、人それぞれスタイルがあり、理解もある、それで終わりなのです。

SK. もし、これに関して何か問題があれば、私に連絡してください。時間の都合がつけば、お手伝いしますよ。

 
TheXpert писал (а)>> ブレイクじゃダメなんですか?

これは、ループやスイッチの場合のみです(ちなみに、あまり必要な構造ではなく、if...elseチェーンでちょうどエレガントに置き換えることができます)。すべては相対的なものです。

 
TheXpert писал (а)>>

ブレイクではダメなのでしょうか?

一般的に言えば、人それぞれのスタイルや理解があるので、この辺で話題を終わりにしましょう。

SK. 何か困ったことがあれば、時間があればお手伝いしますよ。

ブレイクではダメです。効果は限定的です。

そして、失礼のないようにすることです。

 
SK. писал (а)>>

そして、失礼のないようにすることです。

まさか、そんなことがあるなんて......。

 
Korey писал (а)>>

は、数値計算手法の主要なソースとしてのFortranについてです。
米国エンジニア協会でテストされ、承認されたものです。
そして、ここでは、問題はありません - 私たちは、DLLで動作し、それです)))
と、まるで存在するかのように、MQのコードに直接挿入したいのに、アルゴリズムを書き直さなければならず、かなり時間がかかってしまうのです。

P.S. そして何より、危険です。

Fortranでは、gotoがありました。しかし、それは数値計算方法の効率とは関係ない。MatLabではそれと同等(それ以上)に実装されており、そこではgotoはありません。Goto の歴史は、アセンブリ言語のプログラミングスタイル(move to label)にまでさかのぼります。この演算子は一見シンプルに見えるが、誤解を招く。if 添付ファイル else が5つあるとします。そして、 、必要なところに 、それで終わりでしたが、その後、ローカル変数、グローバル変数、スタック、ポインタ、配列などがあります。どうしたらいいんだろう?想定されるすべてのエラーを考慮して、 のアタッチメントからアセンブラで正しい出力を実装する((.高級言語でもどうやったら正しくできるかを考えるのは難しいのに、アセンブラでは本当に大変です。

私が開発者なら、MQL5で MathCad(MatLab)で書かれたプログラムをアタッチできるようにしたいですね。シンプルで簡単なものでしょう(左耳に右手ということもない)。これは、数十億時間の工数削減と、データ処理能力の大きな進歩です。この機能を持たせるために、そして端末を改善するための主な取り組みとして