Слайд 2Функция это
Именованная часть программы, которая может быть многократно вызвана из другого участка

программы.
Слайд 4Учим умные слова
Формальные параметры – параметры описанные в функции.
Фактические параметры – параметры

передаваемые в функцию.
Формальные параметры
Фактические параметры
Слайд 5Учим умные слова
Сигнатура функции – определяет правила использования функции. Обычно сигнатура представляет

собой описание функции, включающее имя функции, перечень формальных параметров с их типами и тип возвращаемого значения.
Слайд 6Учим умные слова
Семантика функции – определяет способ реализации функции. Обычно представляет собой

тело функции.
Слайд 7Что происходит во время вызова функции?
Текущий адрес выполнения кладется в стек
Переход выполнения

на новый адрес
Выполнения тела функции
Взятия из стека адреса и возврат к выполнению основного кода.
Слайд 8Возврат из функции
Любая функция должна завершаться возвращением к месту вызова.
Возврат происходит

с помощью ключевого слова return.
При возврате функция может так же вернуть один параметр в место вызова.
Слайд 10Типы функций
Системные – хранятся в стандартных библиотеках, и пользователю не нужно вдаваться

в подробности их реализации. Достаточно знать лишь их сигнатуру. Примером системных функций, используемых ранее, являются функции printf() и scanf().
Собственные – функции, написанные пользователем для решения конкретной подзадачи.
Слайд 11Зачем?
Функцию можно вызвать из различных мест программы, что позволяет избежать повторения программного

кода.
Одну и ту же функцию можно использовать в разных программах.
Функции повышают уровень модульности программы и облегчают ее проектирование.
Использование функций облегчает чтение и понимание программы и ускоряет поиск и исправление ошибок.
Слайд 12Практика
Функция определения максимального значения из двух переданных

Слайд 13Расположение функции
Функция должна быть создана до функции вызывающей ее.
Правильно
Не правильно

Слайд 14Определение функции
Что бы иметь возможность создавать функцию в любом месте, используют определение

функции. Для этого нужно написать сигнатуру функции, как правило в начале файла.
Слайд 15Варианты фактических аргументов
По значению – передается только значение аргумента, при изменении этого

значения в вызванной функции оригинал не изменится.
По ссылке – в функцию передается ссылка на переменную, при изменении значения по адресу этой ссылке, изменится и оригинал.
Слайд 16Практика
Функция возведения в степень

Слайд 17Всего лишь набор байт
Функции можно записывать в переменный
Функции можно передавать как параметр

Слайд 19Практика
Сделать так что бы предыдущая функция вызывала переданную ей функцию.

Слайд 20Рекурсия
Прямая рекурсия – функция, которая вызывает саму себя.
Косвенная рекурсия – одна или

более функций вызывающих друг друга
Условие выхода – условия при выполнении которого рекурсия завершает свою работу. В случае отсутствия такого условия рекурсия не закончится до тех пор пока не переполнится стек вашего приложения.
Слайд 21Пример
Прямая рекурсия
Косвенная рекурсия

Слайд 22Практика
Посчитать число Фибоначчи
