Функции в программировании — это часть кода программы (обычно это подпрограмма), обращение к которой возможно из других программных элементов.
Введение
Программное приложение является последовательным набором символов на языке программирования. Часто возникает необходимость в многократном повторении какого-либо участка программных кодов. Чтобы избежать такие избыточные повторения однотипных участков программы, применяется понятие функции.
Под функцией понимается кодовый модуль, имеющий своё имя, по которому он может быть вызван из других участков программы. То есть, функция является подпрограммой, к которой можно обращаться из главной части программы любое количество раз.
Эта подпрограмма служит упрощению выполнения больших программных структур, которые состоят из набора программных модулей.
Функции в программировании
Подпрограмма, она же функция, должна иметь связь с базовой программой, то есть с внешним для неё окружением. Для того, чтобы обеспечить такое взаимодействие с базовой программной частью функция должна иметь компоненты входа и выхода. Под входом в функцию понимается пересылка ей аргументов, которые являются данным, полученными в наружной ветви программы. После получения данных из внешней программы, функции необходимо их использовать, то есть осуществить какие-либо операции или вычисления каких-либо значений. При выходе из функции, определённое данной функцией значение, передаётся внешней программе, которая её вызывала.
Входные данные являются параметрами, а выходные данные называются возвращаемым значением.
Но существуют и такие функции, которые ничего не принимают и, соответственно, ничего не возвращают. Что является параметрами входа и возвращаемыми данными, определяется разработчиком программы, то есть программистом. Программист, при вводе новой функции, должен определить её, и затем может выполнять обращение к ней, которое называется вызов функции. К примеру, в JavaScript, как и во многих других программных языках, чтобы определить функцию, необходимо задать ключевое слово function, а после него указать назначенное функции имя. Затем следуют круглые скобки, в которых указывается перечень параметров, и уже далее, собственно, кодовый блок, обозначенный фигурными скобками:
funсtion имя_функции(перечень_парамeтров) {
кодовый блок
}
Следует отметить, что кодовый блок, помещённый в фигурные скобки, иначе называется телом функции. В него входят команды конкретного языка, подлежащие выполнению данной функцией при вызове её из базовой программной части. То есть, собственно определение функции в программе никаких практических действий не осуществляет, но сообщает программе интерпретации, что необходимо сделать при вызове этой функции. Вызов функции в нужном месте базовой программы задаётся следующим образом:
имя_функции(параметры)
Круглые скобки за именем функции ставятся в любом случае, даже если функция не имеет параметров. Определение функции в программе делается единожды, и далее её вызов возможно осуществлять необходимое число раз из любого места программы. Это исключает неоднократное повторение кодов тела функции в базовой программе. То есть базовая программа содержит и определения функций, и их вызовы. Программа, которая содержит вызовы функций, должна иметь доступ и к их определениям. Простым, но не единственным способом обеспечения этого, является помещение определения функции в код программы, в котором она будет вызываться. Обычно специалисты помещают определения функций в конце или в начале программы. Иногда требуется передача данных из базовой программы какой-то функции. Но нужно учитывать, что и сама функция может осуществлять необходимые операции без обмена информацией с базовой программой. Например, переслать информацию посредством электронной почты, вывести на экран картинку и тому подобные действия.
Итоговые результаты функции
Если базовой программе, которая обращается к функции, не нужны никакие итоговые данные её работы, то можно дать определение этой функции как не предоставляющей возврата информации. Правда, такая возможность имеется не во всех языках программирования. Поэтому, даже если не имеет значения, что способна вернуть функция, лучше всегда назначать её какое-либо значение для возврата. Для этого можно просто указать возврат нулевого значения, которое имеет обозначение null. Помимо этого, функции, которые могут делать возврат данных, возможно применят в формулах с операторами (к примеру, выполняющими арифметические операции), или как параметры другой функции. Но когда функция не имеет возврата, то её нельзя применять в операторных выражениях, поскольку это может вызвать появление ошибок. Для того, чтобы функция могла делать возврат, нужно указать в теле функции необходимый оператор возврата:
return \ значение возврата\;
Рассмотрим ещё один пример:
Оклад = 10000; Процент = 15; Выплата = Оклад + Премия( Оклад, Процент);
function Премия (Оклад, Процент) {
return Оклад * Процент / 100;
}
В данном примере переменные Оклад и Процент вначале получают определённые численные обозначения. Далее происходит расчёт согласно формуле, которая определяет размер выплаты служащему и учитывает размер его оклада и премиальных. Размер премии определяется при помощи функции Премия (Оклад, Процент), которая получает пару параметров. А именно, оклад и процент от оклада. Эта функция выполняет в итоге возврат размера премии (знак * означает операцию умножения). Затем, полученное значение премии, суммируется с величиной переменой Оклад и итоговое значение суммы задаётся переменой Выплата. Само определение функции Премия, помещается в окончании программного текста. Эта программа представлена не некотором абстрактном программном языке (практически это почти JavaScript), но она служит хорошей иллюстрацией метода использования функций. Можно эту программу задать в любом текстовом редакторе, к примеру, использовать Блокнот Windows:
Рисунок 1. Код. Автор24 — интернет-биржа студенческих работ
Здесь выполнена вставка сценария на языке JavaScript в код HTML. Сценарный код помещается среди тегов и имеет отличие от приведённого выше примера лишь вставленной функцией alert (), которая выводит сообщение в окне диалога. Если сохранить этот текст в файле, имеющем расширение htm или html, а потом открыть его в веб-браузере, то можно увидеть появление окна диалога и в нём сообщение «Выплата =11500».
Предназначение
В шестидесятых годах прошлого века в программных языках типа ALGOL и FORTRAN появилась возможность использовать функции. Это сделало программы более понятными по своей структуре и существенно меньшими в объёме. В идеальном случае программное приложение возможно было сформировать из набора вызываемых функций и среди них несколько операторов, управляющих работой базовой части программы (условные переходы и циклы). Процесс проектирования и отладки этих программ существенно ускорился и облегчился. Специалист имел возможность создавать программы, которые используют вызов функций ещё не имеющих фактического тела. Подпрограммы могут быть написаны позже. Но чтобы была возможность запустить и проверить такую программу без остановок по ошибкам, вместо реального тела функции возможно вставить специальные программные заглушки. К примеру, это может выводиться сообщение специалисту, отлаживающему программу, «выполняется функция _ имя функции». Вывод таких сообщений позволяет увидеть выполнения обращения к функции без сообщений об ошибках в базовой части программы. После формирования главной части программы в обобщённом формате, выполняется доработка её составных частей. То есть пишутся кодовые тела соответствующих функций, и они вставляются вместо заглушек.
Такой метод написания программ получил название «сверху вниз». То есть уже написанная программа постепенно обрастает нужными функциями. Модернизация таких программ в дальнейшем может быть сведена к изменению кодов уже имеющегося функционального набора и её могут делать другие специалисты, а не только разработчик программы. Естественно, нужно сохранять изначальный программный интерфейс, чтобы не нужно было менять базовую часть программы, которая содержит обращения к функциям.