Difference between revisions of "Basic Pascal Tutorial/Chapter 4/Recursion/ja"
From Free Pascal wiki
Jump to navigationJump to search (bypass redirects [cf. discussion]) |
m (bypass language bar/categorization template redirect [cf. discussion]) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{Recursion}} | + | {{Basic Pascal Tutorial/Chapter 4/Recursion}} |
4E - 再帰 (著者: Tao Yue, 状態: 原文のまま修正なし) | 4E - 再帰 (著者: Tao Yue, 状態: 原文のまま修正なし) | ||
Line 35: | Line 35: | ||
{|style=color-backgroud="white" cellspacing="20" | {|style=color-backgroud="white" cellspacing="20" | ||
|[[Basic Pascal Tutorial/Chapter 4/Scope/ja|previous]] | |[[Basic Pascal Tutorial/Chapter 4/Scope/ja|previous]] | ||
− | |[[Contents/ja|contents]] | + | |[[Basic Pascal Tutorial/Contents/ja|contents]] |
|[[Basic Pascal Tutorial/Chapter 4/Forward Referencing/ja|next]] | |[[Basic Pascal Tutorial/Chapter 4/Forward Referencing/ja|next]] | ||
|} | |} |
Latest revision as of 16: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;
3 で Summation を呼び出したとしよう。
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 になる。
- a は 6 になる。
再帰は答えが定義されているある時点に達するまで後ろ向きに働く。それから、その定義を基にした他の定義を解きながら、その定義に対しては前向きに働く???(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 |