プロシージャまたは関数には、その中に別のプロシージャへの呼び出しが含まれる場合があります。サブルーチン自体を呼び出すこともできます。この場合、コンピュータは気にしません。また、彼はいつものように、出会った命令を上から下まで一貫して実行します。
数学を覚えているなら、そこで数学的帰納法の原理に出会うことができます。それは以下の通り
です。
特定のステートメントは、すべての自然なn に当てはまります。
1.n = 1 および
の場合に有効です。
2. 任意の自然な n = k に対するステートメントの妥当性から、n = k+1
に対してそれが真であることがわかります。
プログラミングではこの手法を再帰
と呼びます。
再帰は、指定された単純な基本ケースに基づいて、セット自体に関してオブジェクトのセットを定義する方法です。
再帰的は、それ自体を直接、または他のプロシージャや関数を通じて呼び出すプロシージャ (関数)とも呼ばれます
再帰的プロシージャの例:
<プレ>
<コード>プロシージャ Rec(a: 整数);
始める
>の場合0 その時
Rec(a - 1);
書き込み(a);
終了;
再帰の作業はフローチャートで概略的に表すことができます。
Rec() プロシージャはパラメータ 3 で実行されます。次に、パラメータ 3 のプロシージャ内でパラメータ 2 のプロシージャが呼び出され、パラメータ 0 のプロシージャが呼び出されるまで同様に続きます。パラメータ 0 が呼び出された場合、再帰呼び出しはすでに行われず、パラメータ 0 を持つプロシージャは数値 0 を出力して終了します。次に、制御はパラメータ 1 を持つプロシージャに戻り、数値 1 を出力して作業を終了します。パラメータ 3 のプロシージャの前。
呼び出されたすべてのプロシージャは、作業が完了するまでメモリに保存されます。同時プロシージャの数は、再帰の深さ
と呼ばれます。