甲府方重信Blog

...Shigenobu Koufugatas Blog

  • Increase font size
  • Default font size
  • Decrease font size
Error
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
Home 業務日誌 Adaプログラミング Adaチュートリアル セクション17.2 - 再帰

Adaチュートリアル セクション17.2 - 再帰

E-mail Print PDF

セクション 17.2 - 再帰

サブプログラムは、処理のためにほかのサブプログラムを呼び出すことができます。時には、サブプログラムが自分自身を呼び出すことも有益です。自分自身を呼び出すサブプログラムの利用テクニックを再帰と呼びます。

 

 

再帰の標準的なサンプルコードは、整数の階乗を計算するものです。ある数 n の階乗は、次のように定義されます。:

  1. n が 0 ならば、nの階乗は1 である。
  2. n が 0 より大きければ、nの階乗はn - 1の階乗にnをかけたものと等しい。

再帰サブプログラムは、比較的標準的なフォーマットでかかれます。: 最初に、再帰を停止するかの判断のためのチェックが来ます。もし、停止の判断が下されなかった場合、処理を実行するために、次にタスクを完了するために、「自分自身」を呼び出します。

ここで、階乗のプログラムを示します。:

function Factorial(A : in Integer) return Integer is
begin
 if A < 0 then                -- Stop recursion if A <= 0.
   raise Constraint_Error;
 elsif A = 0 then
    return 1;
 else
   return A * Factorial(A - 1);   -- recurse.
 end if;
end Sum;

実際、プログラマーは「for」ループを使って、もっと簡単に階乗を実装することができます。しかし、より複雑なプログラムでは、再帰を利用するほうが取り扱いが容易な場合があります。

出典: http://www.adahome.com/Tutorials/Lovelace/s17s2.htm

Last Updated on Tuesday, 22 January 2013 14:49  

ニュース速報

株式会社リナックスアカデミー主催、IPA(独立行政法人 情報処理推進機構)共催

Hadoop利用者向け研修「Hadoopの特徴と周辺技術および活用事例」