Функция в контексте программирования это самостоятельный элемент кода программы который

Обновлено: 07.07.2024

  • Фу́нкция в программировании — фрагмент программного кода (подпрограмма), к которому можно обратиться из другого места программы. В большинстве случаев с функцией связывается идентификатор, но многие языки допускают и безымянные функции. С именем функции неразрывно связан адрес первой инструкции (оператора), входящей в функцию, которой передаётся управление при обращении к функции. После выполнения функции управление возвращается обратно в адрес возврата — точку программы, где данная функция была вызвана.

Функция может принимать параметры и должна возвращать некоторое значение, возможно пустое. Функции, которые возвращают пустое значение, часто называют процедурами. В некоторых языках программирования объявления функций и процедур имеют различный синтаксис, в частности, могут использоваться различные ключевые слова.

Функция должна быть соответствующим образом объявлена и определена. Объявление функции, кроме имени, содержит список имён и типов передаваемых параметров (или: аргументов), а также, тип возвращаемого функцией значения. Определение функции содержит исполняемый код функции. В одних языках программирования объявление функции непосредственно предваряет определение функции, в то время как в ряде других языков необходимо сначала объявить функцию, а уже потом привести её определение.

В объектно-ориентированном программировании функции, объявления которых являются неотъемлемой частью определения класса, называются методами.

Для того, чтобы использовать ранее определённую функцию, необходимо в требуемом месте программного кода указать имя функции и перечислить передаваемые в функцию параметры. Параметры, которые передаются функции, могут передаваться как по значению, так и по ссылке: для переменной, переданной по значению создаётся локальная копия и любые изменения, которые происходят в теле функции с переданной переменной, на самом деле, происходят с локальной копией и никак не сказываются на самой переменной, в то время как изменения, которые происходят в теле функции с переменной, переданной по ссылке, происходят с самой переданной переменной.

Функция определяет собственную (локальную) область видимости, куда входят входные параметры, а также те переменные, которые объявляются непосредственно в теле самой функции.

Функции в программировании — это часть кода программы (обычно это подпрограмма), обращение к которой возможно из других программных элементов.

Введение

Программное приложение является последовательным набором символов на языке программирования. Часто возникает необходимость в многократном повторении какого-либо участка программных кодов. Чтобы избежать такие избыточные повторения однотипных участков программы, применяется понятие функции.

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

Эта подпрограмма служит упрощению выполнения больших программных структур, которые состоят из набора программных модулей.

Функции в программировании

Подпрограмма, она же функция, должна иметь связь с базовой программой, то есть с внешним для неё окружением. Для того, чтобы обеспечить такое взаимодействие с базовой программной частью функция должна иметь компоненты входа и выхода. Под входом в функцию понимается пересылка ей аргументов, которые являются данным, полученными в наружной ветви программы. После получения данных из внешней программы, функции необходимо их использовать, то есть осуществить какие-либо операции или вычисления каких-либо значений. При выходе из функции, определённое данной функцией значение, передаётся внешней программе, которая её вызывала.

Но существуют и такие функции, которые ничего не принимают и, соответственно, ничего не возвращают. Что является параметрами входа и возвращаемыми данными, определяется разработчиком программы, то есть программистом. Программист, при вводе новой функции, должен определить её, и затем может выполнять обращение к ней, которое называется вызов функции. К примеру, в JavaScript, как и во многих других программных языках, чтобы определить функцию, необходимо задать ключевое слово function, а после него указать назначенное функции имя. Затем следуют круглые скобки, в которых указывается перечень параметров, и уже далее, собственно, кодовый блок, обозначенный фигурными скобками:

Готовые работы на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимость

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

Круглые скобки за именем функции ставятся в любом случае, даже если функция не имеет параметров. Определение функции в программе делается единожды, и далее её вызов возможно осуществлять необходимое число раз из любого места программы. Это исключает неоднократное повторение кодов тела функции в базовой программе. То есть базовая программа содержит и определения функций, и их вызовы. Программа, которая содержит вызовы функций, должна иметь доступ и к их определениям. Простым, но не единственным способом обеспечения этого, является помещение определения функции в код программы, в котором она будет вызываться. Обычно специалисты помещают определения функций в конце или в начале программы. Иногда требуется передача данных из базовой программы какой-то функции. Но нужно учитывать, что и сама функция может осуществлять необходимые операции без обмена информацией с базовой программой. Например, переслать информацию посредством электронной почты, вывести на экран картинку и тому подобные действия.

Итоговые результаты функции

Если базовой программе, которая обращается к функции, не нужны никакие итоговые данные её работы, то можно дать определение этой функции как не предоставляющей возврата информации. Правда, такая возможность имеется не во всех языках программирования. Поэтому, даже если не имеет значения, что способна вернуть функция, лучше всегда назначать её какое-либо значение для возврата. Для этого можно просто указать возврат нулевого значения, которое имеет обозначение null. Помимо этого, функции, которые могут делать возврат данных, возможно применят в формулах с операторами (к примеру, выполняющими арифметические операции), или как параметры другой функции. Но когда функция не имеет возврата, то её нельзя применять в операторных выражениях, поскольку это может вызвать появление ошибок. Для того, чтобы функция могла делать возврат, нужно указать в теле функции необходимый оператор возврата:

Рассмотрим ещё один пример:

Оклад = 10000; Процент = 15; Выплата = Оклад + Премия( Оклад, Процент);

В данном примере переменные Оклад и Процент вначале получают определённые численные обозначения. Далее происходит расчёт согласно формуле, которая определяет размер выплаты служащему и учитывает размер его оклада и премиальных. Размер премии определяется при помощи функции Премия (Оклад, Процент), которая получает пару параметров. А именно, оклад и процент от оклада. Эта функция выполняет в итоге возврат размера премии (знак * означает операцию умножения). Затем, полученное значение премии, суммируется с величиной переменой Оклад и итоговое значение суммы задаётся переменой Выплата. Само определение функции Премия, помещается в окончании программного текста. Эта программа представлена не некотором абстрактном программном языке (практически это почти JavaScript), но она служит хорошей иллюстрацией метода использования функций. Можно эту программу задать в любом текстовом редакторе, к примеру, использовать Блокнот Windows:

Код. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Код. Автор24 — интернет-биржа студенческих работ

Предназначение

Такой метод написания программ получил название «сверху вниз». То есть уже написанная программа постепенно обрастает нужными функциями. Модернизация таких программ в дальнейшем может быть сведена к изменению кодов уже имеющегося функционального набора и её могут делать другие специалисты, а не только разработчик программы. Естественно, нужно сохранять изначальный программный интерфейс, чтобы не нужно было менять базовую часть программы, которая содержит обращения к функциям.


Чем больше в вашей программе строк, тем сложнее она для понимания. Поскольку программу придётся актуализировать, дополнять и изменять бесконечно, то объёмный код в этой задаче не помощник. Для его упрощения есть функции. Благодаря им вы сократите время на разработку и уберёте дублирующиеся части. Понимать и тестировать программу станет проще. Как всё работает, сейчас покажем.

Сначала теория

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

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

Зачем обращаться к функции? Чтобы не прописывать тот же самый алгоритм повторно в другом месте. Вместо этого достаточно написать только имя функции. Код становится лаконичным и понятным, его легко отлаживать и сопровождать.

Объясняем

Например, вы хотите написать программу, которая проигрывает песню. И в ней 5 раз звучит игра на барабанах. Вы бы прописали следующий алгоритм для барабанщика:

1. Взять палочки.

3. Совершить удар по барабану.

4. Нажать на педаль ногой.

5. Помотать головой в такт.

Без функции вам пришлось бы прописывать 5 раз одно и то же в тех частях композиции, где нужны ударные. Но гораздо удобнее оформить этот алгоритм в функцию playDrums и вызывать её каждый раз, когда необходимо. Это экономит время.

По сути, это алгоритм в алгоритме, который вызывается по имени с помощью команды. Например, лай собаки – это функция, которая выполняется по определённому алгоритму и вызывается командой «Голос».

Аргументы

Функциям можно передавать параметры, которые называются аргументами функции.

Когда мы пишем функцию, то указываем в ней не конкретные значения, а параметры, которые необходимо ввести при вызове функции, чтобы она заработала.

Например, если взять функцию человека ходить, то в качестве аргументов в неё передаётся «обувь».

Обувь – это параметр.

В разное время потребуется разная обувь, поэтому при каждом вызове функции аргументы меняются. Например, чтобы ходить по спортивной площадке нужна обувь «кроссовки», а чтобы перейти лужу – «сапоги».

Кроссовки и сапоги – это аргументы.

Алгоритм при этом не поменяется: каждый раз человек ходит одинаково, но в разной обуви.

При вызове функции в строке происходит следующее:

1. Язык программирования находит её в той части программы, где она прописана.

2. Выполняет команды, содержащиеся в ней, с учетом указанных при вызове аргументов.

3. Возвращается обратно к строке, которая её вызвала.

4. Переходит к следующей строке.

Некоторые функции уже встроены в язык программирования, например, console.log() в JavaScript, с которой мы уже познакомились :)

Пользовательские функции

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

В JavaScript специальное слово для определения функций – function. После него указывается:

— список аргументов в круглых скобках;

— тело функции в фигурных скобках.

Создадим простейшую функцию без параметров с именем greeting, которая будет выводить строку 'Hello!':

Справка! Перед вложенными в функцию строками принято ставить отступ с помощью клавиши <Tab>, чтобы они начинались немного дальше от края строки. Это визуально упрощает чтение кода.

Если позже нам понадобится вызвать функцию в другой части программы, то мы вызовем её только по имени – «greeting();» – и нажмём <Enter>:

Увидим в консоли результат:

Тренировка

1. Напишем на JS функцию height() с двумя аргументами: высота в полных метрах (m) и остаток в сантиметрах (cm). Объявление функции выглядит так:

(m, cm) - это параметры, которые необходимо передавать в функцию, чтобы она заработала.

При объявлении функции нам не нужно указывать значения этих параметров. Мы только обозначаем их через запятую. Когда позже мы вызовем функцию, то укажем в скобках после имени конкретные значения, которые компьютер подставит под эти параметры.

2. По нашей задумке функция height() должна вычислять общую высоту в сантиметрах и выводить её в консоль. Для этого мы составим формулу вычисления, по которой функция произведет расчёт:

100 * m + cm

Мы указали, что для расчета общей высоты в сантиметрах необходимо взять значение аргумента m, умножить его на 100, а затем прибавить значение аргумента cm.

3. Запишем эту формулу в переменную total. Наша функция теперь выглядит так:

4. Попросим функцию сразу выводить значение переменной total, которое получилось после произведённого рассчета:

5. Вызовем функцию с аргументами 1 и 70:

Что произойдёт? Компьютер понимает, что функции height(m, cm) переданы аргументы 1 и 70 и подставляет их соответственно: m = 1, cm = 70. Затем производится расчёт по формуле:

Результат вычисления 170 записывается в переменную total. Далее – значение переменной total выводится в консоль:

6. Теперь попросим функцию выводить не просто результат расчёта, а добавлять к нему обозначение результата 'cm tall' и снова вызовем функцию с теми же аргументами:

Алгоритм работы функции не поменяется. Но при выводе результата вычисления – в нашем случае 170 – выполняется конкатенация (склейка) двух строк таким образом:

— значение переменной total автоматически преобразуется в строку благодаря неявному преобразованию в JavaScript: число 170 превращается в строку '170';

— строка 'cm tall' склеивается со строкой '170'.

Теперь результат в консоли выглядит так:

Возвращение значений

Функции могут возвращать значения – результаты вычислений. Эти значения удобно присвоить переменной и использовать при необходимости для выполнения дальнейших вычислений.

Чтобы «научить» функцию возвращать значения потребуется ввести ключевое слово return. А после него указать значение какой переменной необходимо вернуть.

Напишем функцию с именем calc(), которая бы принимала два числовых параметра и суммировала их. Запишем алгоритмическое выражение в переменную total:

Справка! Переменной присваивается не само выражение a + b, а результат, который в итоге получится.

Теперь попросим функцию возвращать значение переменной total:

При вычислении функция получит результат, присвоит его переменной total и вернёт это значение как результат функции.

Например, вызовем функцию calc() с параметрами 4 и 5:

Такие хитрости упрощают жизнь разработчика. Без функций на прописывание повторов в коде уходило бы время, за которое программист напишет еще 30-40% программы.

Домашнее задание

Напишите функцию на языке JavaScript, которая бы считала количество минут в днях.

f (x)

Программа представляет собой последовательность выражений языка. Нередко случается, что какая-то часть программы (блок кода) неоднократно повторяется. Чтобы устранить подобного рода избыточность программного кода, используют понятие функции. Функция — это именованный блок кода, который вызывается в нужных местах программы по имени. Другими словами, функция представляет собой подпрограмму, которую можно вызвать из основной программы, причем неоднократно. Повторяющийся (да и не только) блок программного кода обычно обозначают некоторым уникальным именем, чтобы потом при необходимости обратиться к нему по этому имени. Как видно, это простая и естественная идея, направленная на облегчение реализации сложных проектов, состоящих из более простых программ.

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

Функция, создаваемая разработчиком, должна иметь определение, а ее применение в программе называют вызовом функции. Например, в JavaScript и РНР (а также в большинстве других языков) такое определение начинается с ключевого слова function , за которым следуют имя функции, пара круглых скобок, внутри которых можно указать список параметров, а затем блок кода, заключенный в фигурные скобки:

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

Для вызова функции в том или ином месте программы указывают следующее выражение:

Круглые скобки после имени функции записывают независимо от того, предусмотрены для нее входные параметры или нет. В программе вы можете один раз задать определение функции, а затем, по мере необходимости, вызывать ее столько раз, сколько требуется. Таким образом, вам не придется многократно воспроизводить в программе код тела функции.

Отсюда следует, что основная программа может содержать как определения, так и вызовы функций. В программе, содержащей вызовы функций, должны быть доступны их определения. Простейший, но не единственно возможный способ обеспечить это заключается в том, чтобы заключить определения функций в тот же программный код, в котором они где-то вызываются. Опытные программисты обычно размещают определения функций в одном месте, например, в конце или, наоборот, в начале программного кода.

Результат работы функции

Чтобы функция что-то возвращала, необходимо записать в ее теле специальный оператор возврата:

В этом примере переменным Оклад и Процент сначала присваивают некоторые числовые значения. Затем вычисляют выражение, определяющее объем выплаты некоторому сотруднику с учетом его оклада и премии. Премия рассчитывается с помощью функции Премия (Оклад, Процент) , принимающей два параметра: оклад и процент от оклада; данная функция возвращает величину премии (символом * обозначен оператор арифметического умножения). Возвращаемое значение прибавляется к значению переменной Оклад , а полученный результат присваивается переменной Выплата . Определение функции Премия (Оклад, Процент) размещено в конце текста программы.

Данный программный код написан на вымышленном (абстрактном) языке. Я хотел сказать, что рассмотренный пример иллюстрирует принцип применения функции, а потому не важно, какой именно язык выбрать. Главное, что все изложенное ранее должно позволить вам понять данный код. Тем не менее, признаюсь, что приведенный мной пример написан и на языке JavaScript. Напишите в обычном текстовом редакторе, например, в Блокноте Windows следующие строки:

<html> <script> Оклад = 10000; function Премия(Оклад, Процент) < return Оклад * Процент / 100; >alert("Выплата Выплата reading-position-indicator-end">

Читайте также: