サブルーチン
サブルーチンは、名前があり、独自の別個のタスクを解決するプログラムの別個の部分です。サブルーチンはメインプログラムの先頭に配置されており、メインプログラムから名前を指定して起動(呼び出し)できます。
サブルーチンを使用すると、プログラム内の別の場所に同じコードを記述する必要がある場合に、コードの重複を避けることができます。
プログラムにインポートされるライブラリ (たとえば、数学ライブラリ
сmath.h
) は、誰かがすでにコンパイルしたサブルーチンで構成されています。プログラマーは、どのようなアルゴリズムを実装するかを考える必要はなく、正確に何をしているのかだけを考えて、単にアルゴリズムを適用するだけです。これにより時間を大幅に節約できます。すでに誰かが書いたアルゴリズムを自分で書く必要は
ありません。
各ルーチンは
タスクを 1 つだけ実行する必要があります。単に何かを計算するか、データを出力するか、あるいは他のことを行うかのいずれかです。
サブルーチンには、
プロシージャ と
関数の 2 つのタイプがあります。
サブルーチンは、結果を特定の形式で画面に表示するなど、いくつかのアクションを実行します (簡単な例として、演算子
printf()
は、情報を画面に出力する標準サブルーチンです)。
関数サブルーチンは
メイン プログラムで使用できる結果 (数値、文字列など) を返します。
簡単な手順を書いてみましょう。
文字列「
Error」を表示するとします。ユーザーの過失(間違ったデータを入力した場合など)によりコード内でエラーが発生する可能性があるたびに
これはステートメントを書くことで実行できます
cout << "エラー";
そして、そのような行をプログラム内の多くの場所に挿入する必要があると想像してください。もちろんどこにでも書いて大丈夫です。ただし、この解決策には 2 つの欠点があります。
1) この文字列は何度もメモリに保存されます
2) エラー時の出力を変更したい場合は、プログラム全体でこの行を変更する必要があり、かなり不便です
このような場合には手続きが必要
になります。
プロシージャを含むプログラムは次のようになります。
#include
名前空間 std を使用します。
void printError() // プロシージャの説明
{
cout << "エラー"; // プロシージャ本体 - プロシージャが実行するコマンド
}
主要()
{
...
printError() // 実行のためのプロシージャを開始します。実行したいプロシージャの名前を指定するだけです。
...
printError()
...
}
プレ>
プロシージャは void
という単語で始まります。プロシージャ名の後には空の括弧があります。
プロシージャ内で実行されるすべてのステートメントはインデントされます。
プロシージャはメイン関数 main()
の前に記述されます
プロシージャを実行するには、メイン プログラムでプロシージャを名前で呼び出し、 かっこを忘れずに記述する必要があります。
プログラム内のプロシージャは何度でも呼び出すことができます。