Компонентный Паскаль/Рекурсия на примере факториала: различия между версиями
Содержимое удалено Содержимое добавлено
Fantom78 (обсуждение | вклад) |
Fantom78 (обсуждение | вклад) |
||
Строка 42:
VAR
f: INTEGER; (* факториал *)
n: INTEGER; (*
BEGIN
Строка 50:
Log.String('BEGIN n='); Log.Int(n); Log.Ln;
f := GetFactorial(n);
Log.String('f('); Log.Int(n); Log.String('
END Start;
Строка 56:
END TestHello11.
</source>
Обратите внимание, что в этом примере можно было использовать только одну переменную для вычисления факториала, если бы вывод в "Log.Int(f)" выполнялся через вызов "Log.Int(GetFactorial(n))". Соответственно, строку выше можно было бы удалить и отказаться от объявления переменной "f".
Вывод программы представлен ниже:
<source lang="dos">
компилируется "TestHello11" 220 0
Введите основание факториала:
BEGIN n= 6
n= 6
n= 5
n= 4
n= 3
n= 2
Достигнуто дно
f( 6) = 720
</source>
Как видно из вывода переменная "n" с каждым вызовом действительно уменьшалась на "1", и это была настоящая рекурсия. )
== Примечания ==
|