問題タブ [structured-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
32961 参照

functional-programming - 機能的プログラミング、構造化プログラミング、手続き型プログラミングの違いは何ですか?

私はすべての主題に関するいくつかの記事を読みましたが、私は完全に違いを理解していません。

0 投票する
2 に答える
96 参照

goto - goto を許可しない言語で絶対に DRY の条件を使用しますか?

goto を許可しない言語でネストしない条件文をどのように偽造しますか? 私は次のことをしたい:

それなし:

  1. 不必要に条件を複数回評価する。
  2. そのような評価の結果を不必要に変数に格納します。
  3. アクションを実行する必要があることを不必要に複数回指定する。

元のスニペットは要件 1 を満たしていません。

次のスニペットは、要件 2 を満たしていません。

また、次のスニペットは要件 3 を満たしていません。


編集:

  1. condition1とがcondition2同時に真であることは不可能です。

  2. condition2とがcondition3同時に真であることは不可能です。

元のコード (JavaScript) は次のとおりです。

0 投票する
4 に答える
1349 参照

programming-languages - 標準の条件とループを超えた制御構造?

構造化プログラミング言語には通常、、、、、、、などのいくつかの制御構造がありwhile、ソースifコードforで高レベルの構造を表現するために使用されます。doswitchbreakcontinue

ただし、何年にもわたって提案されてきた、現代のプログラミング言語に移行していない他の多くの制御構造があります。たとえば、Knuthの論文「GoToステートメントを使用した構造化プログラミング」(275ページ)では、例外処理の簡略版のように見える制御構造を参照しています。

これは便利な構造のように見えますが、標準の例外処理の特殊なケースとして、実際にそれを実装している言語は見たことがありません。

同様に、Edsger Dijkstraは、多くのコードの1つが、真である可能性のある一連の条件に基づいて非決定的に実行される制御構造を使用することがよくありました。これは、smoothsortに関する彼の論文の10ページにあります。サンプルコードは次のようになります。

歴史的に、CはC ++、C#、Javaなどの多くの現代言語に影響を与え、今日使用している多くの制御構造はCが提供する小さなセットに基づいていることを理解しています。しかし、この他のSOの質問からも明らかなように、プログラマーは考えたいと思います。私たちが望んでいるが、多くのプログラミング言語でサポートされていない代替の制御構造について。

私の質問はこれです-私が上で述べたCスタイルの制御構造とは根本的に異なる制御構造をサポートする今日使用されている一般的な言語はありますか? このような制御構造は、標準のC構造を使用して表現できないものである必要はありません。ほとんどすべてをそのようにエンコードできますが、理想的には、特定のプログラミングタスクにアプローチできるものの例を示します。 Cモデルで許可されている方法とは根本的に異なります。

いいえ、「関数型プログラミング」は実際には制御構造ではありません。

0 投票する
8 に答える
1135 参照

objective-c - Objective-C でブロックを使用して構造化プログラミングを行う方法

ブロックを返すメソッドを使用する場合、非常に便利です。ただし、それらのいくつかをつなぎ合わせる必要がある場合は、すぐに面倒になります

たとえば、4 つの URL を連続して呼び出す必要があります。

そのため、反復ごとに 1 レベル深くなり、ネストされたブロックのエラーはまだ処理していません。

実際のループがあるとさらに悪化します。たとえば、ファイルを 100 個のチャンクでアップロードしたいとします。

これは非常に直感的ではなく、すぐに非常に読みにくくなります。

.Net では、これらすべてを async および await キーワードを使用して解決し、基本的にこれらの継続を一見同期フローに展開しました。

Objective C のベスト プラクティスは何ですか?

0 投票する
3 に答える
186 参照

c - 関数内と関数外の変数値の違い

area戻り型のある関数とパラメーターのない関数を使用して、円柱の面積を見つけるプログラムを作成しました。関数answerに戻されました。mainただし、で異なる出力を取得し、mainで異なる出力を取得していareaます。関数内で小数点以下の桁数が0に置き換えられているようですmain。なんでそうなの? ここに画像の説明を入力してください

0 投票する
4 に答える
10016 参照

c++ - C++ での char の比較 - タイプ「char」の引数は、タイプ「const char *」のパラメーターと互換性がありません

C ++で2つの値を比較しようとしています(これは初めてなので、簡単に行ってください)

上記で宣言された構造体、次にこのコードを別の関数で使用しています

if ステートメントの 'styleAr[x].category' でエラーが発生しました: タイプ "char" の引数は、タイプ "const char * のパラメーターと互換性がありません

これを解決する方法についての説明は素晴らしいでしょう

0 投票する
1 に答える
318 参照

c++ - プログラムを構造化からオブジェクト指向に書き換える

私の最初のプログラミング言語が Fortran だったことを考えると (C++ に触れる何年も前から)、構造化 C++ を書いています。

次のステップに進み、オブジェクト指向プログラミングを学びたいと思っています。

私はログ ファイルを解析するための小さなアプリを作成しました。完全に新しいものを作成するのではなく、同じアプリを OOP アプローチで作成したいと考えています。副次的な利点は、2 つのアプローチの実際の比較になると考えてください。

質問は - ゼロから始める必要がありますか、それとも構造化コードを徐々に書き直すことができますか? 書き直しが必要な場合、それを行うための最良の方法は何でしょうか?

私は、OOP について少し混乱していることを認めなければなりません。