ProgrammingII report#3 |
||||||||||||||||||||
|
||||||||||||||||||||
実行結果
(2)2種以上の表面積を求めるクラスを作成し、同様に実行せよ。 表面積ソース(Hyomenseki.java)
実行結果
(3)例題を参考に、階乗計算を再帰プログラムにより作成し、for文による階乗計算との違いを考察せよ。 階乗ソース(Kaijo.java)
実行結果
再帰は処理の流れを追うのが非常に困難である。 for文みたくループが一周するたびに制御変数の変動を考え、処理を理解する方法は通じないのである。 何かの処理をくり返したいようなとき、for 文や while 文のようなくり返し構文を使うことが多いわけだが、そうした構文 を使わずに再帰的な定義により計算することも可能である。実際、ある種の処理はくり返しを使うよりも再帰的に定義したほう が自然かつ簡潔に記述できることがある。for文では入力した自然数の数になるまで1から1ずつ増やしていってそれを毎回か けているが、再帰では38行目の計算が完結するために毎回自分を呼び出しnumberが0になるまでつづけている。再帰呼び出しは イメージで理解できやすいと思う。それぞれにはそれぞれのいいところがあると思う。 感想 今回のレポートはいつもよりスムーズにできたと思います。再帰呼び出しという新しいことを学んだけど、それ以前に基礎 力がまだまだたりないなあと思う課題でもありました。これからはもっとむずかしくなると思うので、今のうちに基礎を固め ようと思います。 |