Компонентный Паскаль/Рекурсия на примере факториала: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 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(')!)= '); Log.Int(f); Log.Ln;
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", и это была настоящая рекурсия. )
 
== Примечания ==