Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
bb:redbook:204 [2017/08/30 09:36] prospero78 [2. Вычисление факториала] |
bb:redbook:204 [2017/08/30 09:46] prospero78 [2. Вычисление факториала] |
||
---|---|---|---|
Строка 29: | Строка 29: | ||
как можно вычислить произвольный факториал рекурсией. *) | как можно вычислить произвольный факториал рекурсией. *) | ||
- | IMPORT In, Log, Math; | + | IMPORT |
+ | мЛог := Log; | ||
PROCEDURE Факт_Получ (пцФактор: | PROCEDURE Факт_Получ (пцФактор: | ||
BEGIN | BEGIN | ||
IF пцФактор = 1 THEN | IF пцФактор = 1 THEN | ||
- | Log.String(' | + | мЛог.String(' |
RETURN 1 | RETURN 1 | ||
ELSE | ELSE | ||
- | Log.String(' | + | мЛог.String(' |
RETURN пцФактор * Факт_Получ(пцФактор - 1); | RETURN пцФактор * Факт_Получ(пцФактор - 1); | ||
END; | END; | ||
Строка 48: | Строка 49: | ||
BEGIN | BEGIN | ||
- | Log.String(' | + | мЛог.String(' |
- | In.Open; | + | мВв.Open; |
- | In.Int(цБаза); | + | мВв.Int(цБаза); |
- | Log.String(' | + | мЛог.String(' |
цФактор := Факт_Получ(цБаза); | цФактор := Факт_Получ(цБаза); | ||
- | Log.String(' | + | мЛог.String(' |
END Старт; | END Старт; | ||
Строка 65: | Строка 66: | ||
- | Обратите внимание, | + | Обратите внимание, |
Вывод программы представлен ниже: | Вывод программы представлен ниже: | ||
+ | компилируется " | ||
+ | Введите основание факториала: | ||
+ | BEGIN цБаза= 6 | ||
+ | пцФактор= 6 | ||
+ | пцФактор= 5 | ||
+ | пцФактор= 4 | ||
+ | пцФактор= 3 | ||
+ | пцФактор= 2 | ||
+ | Достигнуто дно | ||
+ | f( 6)= 720 | ||
| | ||
Как видно из вывода переменная " | Как видно из вывода переменная " |