2005年08月18日

再帰呼出しの基本は階乗計算ですよ!

再帰呼出しとは、
ある目的のために作られた関数が、
自分自身を再び呼び出すことで目的が達成出来る場合、
自分自身から自分自身を関数呼出しすことを指します。

プログラミングの基礎演習分野で、
大学の講義や新人研修で広く利用される題材を例に、
今回は再帰呼出しプログラミングをDelphiで習得しましょう。

皆さん小中学校時代の算数で、「階乗」について習いましたね。
念のため復習しておきますから、思い出してくださいね。

0の階乗=1
1の階乗=1
2の階乗=2×1
3の階乗=3×2×1
4の階乗=4×3×2×1

言い換えると、
nの階乗=n×(n−1)の階乗となります。
具体的なプログラミングサンプルを見ての通り、
再帰呼出しなんて全然臆する事はありません楽勝です。
あなたも必要なタイミングで再帰呼出しを利用し、
エレガントなプログラミングを心がけてください。

ただし、MS-DOS(歳がバレますね。笑い)や、
組込みソフトウェアなどメモリ制限や制約の多い中で、
再帰呼出しは実行時スタックを消費することをお忘れなく。

See you again!

使用例
procedure TForm1.Button1Click(Sender: TObject);
 //----------------------------------------------
 function _Factorial(pNumber: Integer): Integer;
 begin
  if (pNumber = 0) or (pNumber = 1) then
   Result := 1
  else
   Result := pNumber * _Factorial(pNumber-1);
 end;
begin
 Edit2.Text :=
  IntToStr(_Factorial(StrToIntDef(Edit1.Text,0)));
end;


関連書籍


Copyright guy@かしらもんじ でぇ〜

posted by guy at 22:49 | 教育編

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。