Difference between revisions of "Basic Pascal Tutorial/Chapter 4/Recursion/ja"

From Free Pascal wiki
Jump to navigationJump to search
m (Kai Burghardt moved page Recursion/ja to Basic Pascal Tutorial/Chapter 4/Recursion/ja: tidy up main name space: create subpage hierarchy for basic Pascal tutorial [cf. [[Special: PermaLink/149778#Clut...)
m (bypass language bar/categorization template redirect [cf. discussion])
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Recursion}}
+
{{Basic Pascal Tutorial/Chapter 4/Recursion}}
  
 
4E - 再帰 (著者: Tao Yue, 状態: 原文のまま修正なし)
 
4E - 再帰 (著者: Tao Yue, 状態: 原文のまま修正なし)
Line 34: Line 34:
  
 
{|style=color-backgroud="white" cellspacing="20"
 
{|style=color-backgroud="white" cellspacing="20"
|[[Scope/ja|previous]]   
+
|[[Basic Pascal Tutorial/Chapter 4/Scope/ja|previous]]   
|[[Contents/ja|contents]]  
+
|[[Basic Pascal Tutorial/Contents/ja|contents]]  
|[[Forward_Referencing/ja|next]]
+
|[[Basic Pascal Tutorial/Chapter 4/Forward Referencing/ja|next]]
 
|}
 
|}

Latest revision as of 15:20, 20 August 2022

български (bg) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

4E - 再帰 (著者: Tao Yue, 状態: 原文のまま修正なし)

再帰 とは関数や手続きがある条件が満たされるまで自分自身を呼び出すことである。

数学における大文字の sigma (Σ) で示される合計関数は再帰的に書くことができる。

function Summation (num : integer) : integer;
begin
  if num = 1 
  then Summation := 1
  else Summation := Summation(num-1) + num
end;

3Summation を呼び出したとしよう。

a := Summation(3);
  • Summation(3)Summation(2) + 3 になる。
  • Summation(2)Summation(1) + 2 になる、
  • 1 になると、再帰は終了し、 1 になる。
  • Summation(2)1 + 2 = 3 になる。
  • Summation(3)3 + 3 = 6 になる。
  • a6 になる。

再帰は答えが定義されているある時点に達するまで後ろ向きに働く。それから、その定義を基にした他の定義を解きながら、その定義に対しては前向きに働く???(Recursion works backward until a given point is reached at which an answer is defined, and then works forward with that definition, solving the other definitions which rely upon that one.)。

再帰手続きや再帰関数はすべてその再帰が基準条件で止まるかテストするべきである。基準条件以外のすべての条件では再帰はどんどん深くなっていくだろう。もし、基準条件がないと、再帰は全く起きないか、無限状態のいずれかになるだろう。

上の例では、基準条件は if num = 1 である。

previous contents next