По швидкодії і по обсягу оперативної пам'яті комп'ютера, який вимагає виконання кожної з цих функцій, вони приблизно рівні.
Hові поняття:
Рекурсивний об'єкт, факторіал числа, рекурсивний виклик, рекурсія, рекурсивна функція, глибина рекурсії, рекурсивний спуск, рекурсивний підйом.
Питання для роздумів
- Як буде змінюватися значення змінної Добуток на рекурсивному спуску при роботі функції Факторіал 1, якщо максимальна глибина рекурсії дорівнює п'яти?
- Чи будуть розрізнятися значення максимальної глибини рекурсії при роботі функцій Факторіал 2(0) і Факторіал 2(1)?
- Як Ви думаєте, чому у визначенні функції Факторіал 2 (код 3.6) її аргумент має тип Integer, а значення — тип Long?
Вправи
- За аналогією з кодом 3.5 і 3.6 напишіть визначення двох функцій, що обчислюють суму квадратів натуральних чисел від 1 до N. Створіть невеликий проект у середовищі Visual Basic, за допомогою якого Ви зможете перевірити роботу цих функцій.
- Перевірте твердження, що міститься в 3-у питанні до даного розділу. Для цього визначте функцію, що викликає саму себе без умов, напишіть програму з визначенням цієї функції і запустіть її.
- Напишіть визначення і перевірте працездатність процедур, за допомогою яких обчислюється факторіал числа. (Їхня єдина відмінність від функцій Факторіал 1 і Факторіал 2 — наявність вихідного параметра.)