- 構造化プログラミングでは、プログラムを関数またはモジュールに分割して、読みやすさと保守性を向上させます。
- シーケンス、選択、反復を使用し、GOTO の無差別な使用は避けてください。
- 関数とサブルーチンを通じてモジュール性と再利用性を促進し、テストとデバッグを容易にします。
- 論理の明瞭さとコードの移植性を実現するために、トップダウン設計と疑似コードを適用します。
構造化プログラミングは、プログラマーがプログラムを書くために使用する一連のルールであり、そのモットーは次のとおりです。分割統治「。プログラムを関数や手順に分割することで、理解しやすく、変更しやすくなります。構造化プログラミングは、プログラムへの単一のエントリ ポイントを強制することで、無限ループなどのよくある間違いを回避するのにも役立ちます。この記事では、構造化プログラミングとは何か、どのように機能するか、そしてそれが時間の経過とともにコードの品質を向上させるのに役立つ理由について説明します。
構造化プログラミングの特徴
構造化プログラミングは、シーケンス、決定 (if/else)、ループ (for、while) などの制御構造のみを使用して、ソフトウェアの明瞭性、品質、開発時間を向上させることを目指すプログラミング パラダイムです。このアプローチは、無差別にジャンプ(GOTOなど)を使用するプログラミングの代替として提案されました。 コードにつながる可能性がある 従うことや維持することが困難です。構造化プログラミングでは、論理的で明確に定義された制御フローが重視されるため、理解しやすくエラーの少ないプログラムの作成が容易になります。
構造化プログラミングの主な特徴
- 制御構造の使用: シーケンス、選択 (決定)、反復 (ループ) という 3 つの基本的なタイプの制御構造が使用されます。
- GOTOの使用を排除する: コード内での制御されていないジャンプの使用を回避し、より明確で保守しやすい構造に貢献します。
- モジュール式プログラム: プログラムを小さな単位またはモジュールに分割し、独立して開発およびテストすることを推奨します。
- 読みやすさと保守性: 結果として得られるコードは、読みやすく、保守も容易です。 構造 明確で整理されています。
- サブルーチンと関数の使用: コードの繰り返しを回避し、特定のタスクを実行するためのサブルーチンまたは関数の使用が推奨されます。
- トップダウン制御フロープログラム設計はトップダウンアプローチに従っており、複雑な問題はより小さく管理しやすい問題に分割されます。
- 論理的明瞭さに焦点を当てる: プログラムの論理フローの明確さに重点が置かれ、プログラムの理解とデバッグが容易になります。
- 疑似コードとフローチャートの使用プログラム構造を計画し視覚化するために、疑似コードやフローチャートなどのツールがよく使用されます。
- を促進します。 テストとデバッグ: 明確なモジュール構造により、プログラムの各部分を個別にテストおよびデバッグすることが容易になります。
- 移植性このパラダイムに従って作成されたプログラムは、明確な論理構造によりさまざまなハードウェアやオペレーティング環境に適応しやすくなり、移植性が高くなる傾向があります。 ソフトウェア.
構造化プログラミング: 知っておくべきことすべて
構造化プログラミング
構造化プログラミングは、プログラマーがプログラムを記述するために使用する一連のルールです。構造化プログラミングの主なルールは、「コードは 1 つのことだけを実行する」ということです。これは、後で理解しやすくデバッグしやすいように、ジャンプや分岐を使用してプログラムを記述しないことを意味します。
プログラマーはこのツールを使用すると、プログラムの理解、デバッグ、変更が容易になります。
構造化プログラミングは、プログラマーがプログラムの理解、デバッグ、変更を容易にするために使用できるツールです。
構造化プログラミングとは、プログラマーがプログラムの理解、デバッグ、変更を容易にするために従うことができる一連のルールです。
ループや条件などの制御構造を使用することでモジュール性、一貫性、可読性が強化されるため、コードの理解とデバッグが容易になります。
プログラムのさまざまな部分 (モジュール) を明確に分離するため、コードの変更が容易になります。つまり、必要に応じて、他のモジュールに影響を与えずに 1 つのモジュールを簡単に変更できるため、レガシー コードをリファクタリングするときに特に便利です。
主なルール
構造化プログラミングの主なルールは、「コードは 1 つのことを行う必要がある」ということです。つまり、各コード行には単一の目的があり、他のコード行に依存せずにその 1 つの目的を実行する必要があります。利点は数多くあります:
- モジュール性。プログラムを、明確に定義されたインターフェース (他のモジュールが使用する部分) を持つモジュールに分割すると、それらのモジュールを別のプログラムで再利用したり、システムの他の部分に影響を与えずにモジュールの内部動作を変更したりすることがはるかに簡単になります。これにより、コードベースの部分間の依存関係が少なくなるため、ソフトウェアを長期にわたって保守しやすくなります。読むためだけに100行を割く場合 レコード ディスクから取り出してテキスト ファイルとして書き戻すと、同じ 100 行内の他の場所にも必要な変更がない限り、その 100 行を変更しても他の部分には影響しません。
- 読みやすさと理解しやすさ: 関数が「true」や「false」などの値を返す場合、それは何を意味するのでしょうか?この関数は何も返しませんか? 「return null;」とはどういう意味ですか?一般的に言えば、この種の発言は、物事を必要以上に困難にしていると言えるでしょう。 必要な 特定の条件が満たされているのに、他の条件が満たされていない理由を理解しようとするとき。
関数または手順。
構造化プログラミングでは、 コードは関数に分割される または手順。関数は、タスクを実行して値を返すステートメントのグループです。他の関数またはプロシージャから呼び出すことができます。プロシージャは値を返さず、他のプロシージャや関数から呼び出すことはできません。
関数は再利用可能なコードです。これらは、他の場所で使用するたびに書き直す必要がなく、プログラム内のどこからでも呼び出すことができます。プロシージャは再利用できないため、この機能はありません。使用するたびにプロシージャを書き直す必要があります。
基本的なアプローチ
構造化プログラミングの基本的なアプローチは、プログラムをシンプルかつモジュール化することです。つまり、1 つのことを実行するコードをできるだけ小さくし、それらの小さなコードを組み合わせて大きなコードを作成する必要があります。
たとえば、2 つの数値を加算する関数を記述するとします。
def sumar_numeros(a, b): return a + b
エラーを修正できます
この構造により、複数のファイルではなく 1 か所でエラーを修正できるようになります。つまり、エラーが発生した場合でも、簡単に素早く修正できるということです。時間の節約にもなります 長期的には、関数を作成するときに 1 つのことをうまく行う小さくてシンプルなソリューションは、他の開発者や自分自身が後でコードを保守するのを容易にします。
1 つのことだけを適切に実行する小さくてシンプルな関数を作成すると、コードの保守が容易になります。
構造化プログラミングは、コードを 1 つの処理を適切に実行する小さな単純な関数に分割することで、コードの複雑さを最小限に抑えようとするコーディング スタイルです。たとえば、ページ上のボタンが押されたときに警告メッセージを表示する関数がある場合、ボタンが押されるたびに呼び出される「alertButtonClicked()」という別の関数を作成できます。
これにより、他のプログラマーが後から来て機能を変更したり追加したりすることが容易になります。変更を加えることができる場所は 1 つだけであり、その場合でも、変更はそれらの関数に既に書き込まれている内容によってのみ制限されるからです。
構造化されたコードの記述に慣れるまでは、1 つの処理をうまく実行する小さくて単純な関数を作成することに重点を置きます。
あなたがいるとき 構造化されたコードの書き方を学ぶ構造化されたコードの記述に慣れるまでは、1 つの処理をうまく実行する小さくて単純な関数の作成に重点を置く方がよいでしょう。
- ハードコードされた値の代わりに定数を使用します。定数は値が決して変化しない変数であり、プログラム内でリテラル数値または文字列の代わりに使用できます。例えば:
const MAX_SIZE = 10; // Crea una constante llamada 'MAX_SIZE' con el valor 10 // Puedes usar esta constante de la siguiente manera var number = MAX_SIZE * 2; // number será ahora igual a 20
結論: 構造化プログラミング: 知っておくべきことすべて
構造化プログラミングは、プログラマーがプログラムの理解、デバッグ、変更を容易にするために使用できるツールです。構造化プログラミングの主なルールは、「コードは 1 つのことだけを実行する」ということです。構造化プログラミングでは、プログラムを関数または手順に分割します。