Функция — именованный фрагмент программы с параметрами и результатом. Рекурсия — функция, вызывающая саму себя; она красиво записывает многие алгоритмы, но требует базового случая и аккуратности со стеком.
Что нужно знать
- Прототип (объявление) сообщает компилятору сигнатуру; определение содержит тело.
void— функция ничего не возвращает.- Передача по значению — копия; по ссылке (
int&) — функция меняет оригинал;const T&— без копии и без изменения. - Указатель на функцию позволяет передать функцию как параметр.
- Рекурсия: базовый случай + рекурсивный шаг, приближающий к нему.
- Каждый вызов кладётся в стек; слишком глубокая рекурсия переполняет его.
- Наивный Фибоначчи пересчитывает одни и те же значения: число вызовов растёт экспоненциально.
- Большую программу делят на файлы: объявления — в заголовочном
.h, реализация — в.cpp.
Где чаще всего ошибаются
- Писать рекурсию без базового случая.
- Ожидать, что передача по значению изменит переменную вызывающего.
- Считать наивную рекурсию Фибоначчи быстрой.
Проверить себя
По этой же теме курса есть проверочная работа из 15 заданий на 30 минут. Проверка автоматическая, результат виден сразу — и по работе целиком, и по каждой теме.