Difference between revisions of "Basic Pascal Tutorial/Chapter 4/Recursion/ja"
From Lazarus wiki
Jump to navigationJump to search (bypass [previously missed] redirect [cf. discussion]) |
|||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | {{Recursion | + | {{Recursion}} |
4E - 再帰 (著者: Tao Yue, 状態: 原文のまま修正なし) | 4E - 再帰 (著者: Tao Yue, 状態: 原文のまま修正なし) | ||
Line 6: | Line 6: | ||
数学における大文字の ''sigma'' (Σ) で示される合計関数は再帰的に書くことができる。 | 数学における大文字の ''sigma'' (Σ) で示される合計関数は再帰的に書くことができる。 | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
function Summation (num : integer) : integer; | function Summation (num : integer) : integer; | ||
begin | begin | ||
Line 16: | Line 16: | ||
<tt>3</tt> で <tt>Summation</tt> を呼び出したとしよう。 | <tt>3</tt> で <tt>Summation</tt> を呼び出したとしよう。 | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
a := Summation(3); | a := Summation(3); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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]] |
− | |[[ | + | |[[Basic Pascal Tutorial/Chapter 4/Forward Referencing/ja|next]] |
|} | |} |
Revision as of 14:24, 6 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 |