- •3 Аттестация
- •Понятие подпрограммы. Функции как способ записи подпрограмм. Функции как расширение понятия операции и оператора. Правила записи функций.
- •Заголовок функции, правила его записи. Тип функции. Формальные параметры функции. Передача параметров по значению и по ссылке.
- •Тело функции. Локальные объекты функции. Возвращаемое значение и его тип.
- •Тело функции как блок. Принцип вложенности блоков. Правила видимости для программных объектов.
- •Вызовы функций. Фактические параметры (аргументы) функции. Передача параметров по значению и по ссылке. Правила соответствия между формальными и фактическими параметрами.
- •Механизм вызова функций.
- •11. Выражения, значения выражений и правила их вычислений. Тип выражения.
- •12. Приоритеты операций при вычислении выражений.
- •14. Синтаксис и семантика оператора выражения. Примеры применения оператора выражения.
- •15. Синтаксис и семантика условного оператора. Примеры применения условного оператора.
- •16. Синтаксис и семантика оператор выбора. Примеры применения оператор выбора.
- •18. Синтаксис и семантика оператора цикла с предусловием. Примеры применения оператора цикла с предусловием.
- •20. Синтаксис и семантика оператора цикла с параметром. Примеры применения оператора цикла с параметром.
- •21. Структурные типы данных. Массивы. Описание массива. Размер и размерность массива.
- •22. Задача поиска в массиве. Алгоритмы поиска.
- •23. Задача сортировки массива.
- •24. Задача сортировки массива. Алгоритм сортировки методом включения.
- •25. Задача сортировки массива. Алгоритм сортировки методом обмена.
- •26. Строки, их структура. Основные операции над строками.
Тело функции. Локальные объекты функции. Возвращаемое значение и его тип.
Тело функции.
Тело функции является составным оператором или блоком, если в нем есть определения констант и/или переменных
Представляет собой некоторую последовательность операторов, выполняющих необходимые действия над параметрами (операндами) функции
Для удобства в теле функции могут быть введены дополнительные переменные (локальные).
Локальные переменные.
При вызове функции, как и при входе в любой блок, в системном стеке выделяется память под локальные объекты
При выходе из функции соответствующий участок стека освобождается, поэтому значения локальных переменных между вызовами одной и той же функции не сохраняются
Такие локальные переменные называются автоматическими; они инициализируются при каждом вызове функции
Локальная переменная может быть объявлена с модификатором static; такая переменная называется статической
Статические переменные размещаются в области оперативной памяти, называемой сегментом данных
Они сохраняют свои значения между вызовами функции и инициализируются один раз при первом выполнении операторов, содержащих их определения
Возращаемое значение.
Если функция возвращает какое либо значение (функция-операция), то в ее теле должен содержаться хотя бы один оператор возврата:
return возвращаемое_значение
Тип возвращаемого значения должен совпадать с типом функции
Этот тип может быть любым, кроме типа массива и функционального типа, т.е. функции не могут возвращать массивы и другие функции.
Тип возращаемого значения.
Если функция не должна возвращать значение (функция-оператор), то для нее в качестве типа указывается служебное слово void, что означает «пустой»
В теле такой функции не должно быть ни одного оператора возврата.
Тело функции как блок. Принцип вложенности блоков. Правила видимости для программных объектов.
Определение блока.
Фрагмент исходного текста, ограниченный фигурными скобками и содержащий объявление каких-либо идентификаторов, называется блоком
Объявляемые идентификаторы могут быть именами различных программных объектов: констант, переменных, типов данных, функций
Примером блока может служить тело функции, в которой объявлены внутренние переменные
Принцип вложенности.
Внутри блока может присутствовать другой блок, так что возникает набор вложенных блоков
Соответственно, различают внешний (охватывающий) блок и внутренние блоки.
Правила видимости.
В каждом блоке программы доступны для использования объекты, объявленные во внешних блоках, и недоступны объекты, объявленные во внутренних блоках
Внутренние описания отменяют внешние описания
Объекты, описанные в данном блоке, называются локальными для этого блока
Объекты, описанные во внешних по отношению к данному блоках, называются глобальными для данного блока
Вызовы функций. Фактические параметры (аргументы) функции. Передача параметров по значению и по ссылке. Правила соответствия между формальными и фактическими параметрами.
Вызов функции.
Осуществляется путем указания имени функции со списком фактических параметров – литералов, констант, переменных – являющихся параметрами при соответствующем вызове.
Примерами таких вызовов могут служить обращения к функциям стандартных библиотек.
Фактические параметры.
Фактические параметры (аргументы функции) должны совпадать по типу с формальными параметрами, но не обязаны иметь совпадающие с ними имена
Правила соответствия.
Число фактических параметров, задаваемых при вызове, должно совпадать с числом формальных параметров, указанных в описании процедуры или функции
Между списками формальных и фактических параметров устанавливается однозначное соответствие, определяемое порядком их перечисления.
Типы соответствующих формального и фактического параметров должны быть совместимыми.
Формальному параметру-значению должен соответствовать фактический параметр, являющийся выражением.
Формальному параметру-переменной должен соответствовать фактический параметр, являющийся переменной .