Другое

Функция в контексте программирования: что это может значить

Lorem ipsum dolor

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

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

Функция в программировании — что это?

Пример из жизни — вождение автомобиля. Этот процесс можно описать следующим алгоритмом действий:

  1. Отключить сигнализацию.

  2. Открыть дверь.

  3. Сесть за руль.

  4. Вставить ключ в зажигание.

  5. Зажать педаль тормоза.

  6. Выставить нейтральную передачу.

  7. Завести машину.

  8. Выжать сцепление.

  9. Включить первую передачу.

  10. Плавно отпустить сцепление, параллельно нажимая на педаль газа.

Описание процесса вождения условное, но в целом алгоритм может быть описан именно так. Теперь, когда вам нужно будет в коде описывать вождение автомобиля, вам придется описывать весь этот алгоритм из «10 строк кода». Чтобы этого не делать, можно поступить проще — оформить все эти действия в функцию «driveAuto» и вызывать ее, когда это будет нужно. Несложно догадаться, что функции сильно экономят время в программировании.

Функция в программировании и аргументы

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

Аргумент функции — это некий параметр, который указывается для того, чтобы функция заработала. Аргумент — это не значение функции, потому что функция возвращает какое-то значение.

В нашем примере, чтобы функция «driveAvto» заработала, нужно указать ей параметр. Здесь параметром будет какой-то конкретный автомобиль. Причем параметр или аргумент функции — это необязательно постоянная величина. Например, в нашем случае:

  • если мы самостоятельно едем по городу, тогда мы используем двухместный электромобиль;

  • если нам нужно поехать с большой семьей, тогда мы используем минивэн или микроавтобус;

  • если нам нужно перевезти груз, тогда мы используем грузовой автомобиль;

  • и др.

Алгоритм или функция вождения у нас не поменялись. Каждый раз водитель начинает вождение одинаково — меняется лишь автомобиль. Если мы запустим функцию «driveAvto» с аргументом «грузовой автомобиль», тогда функция принесет нам обратно значение типа «какой груз и куда перевезли».

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

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

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

  3. Он выполняет нашу функцию, учитывая аргументы, которые мы указали.

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

  5. После возвращения обработчик переходит на следующие строки кода.

Функция в языке программирования и ее виды

Важно понимать, что в каждом языке программирования есть 2 основных вида функций:

  • встроенные — это те функции, которые уже находятся внутри языка, тогда вам остается только пользоваться ими или не пользоваться;

  • пользовательские — это те функции, которые пользователь создает самостоятельно.

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

А вот на пользовательских функциях мы немного остановимся. Кстати, функция «driveAvto» это пользовательская функция. Пользовательская функция состоит из 3-х блоков:

  • название;

  • набор аргументов, который указывается в круглых скобках;

  • тело функции, которое указывается в фигурных скобках.

То есть наша функция могла бы выглядеть так, если бы мы писали ее на JavaScript:

function driveAvto (track) {

   /*тело функции, где описывается все, что должна выполнить наша функция*/

}

 

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

  • перевезти груз из точки «А» в точку «Б»;

  • поехать в порт и погрузить контейнер;

  • поехать в поле и загрузить овощи;

  • и др.

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

В коде это могло бы выглядеть примерно так:

function MakeMoney (1000000, dollars) {

    function driveAvto (track) {

       /*Описываем в теле, что нужно сделать грузовику, чтобы заработать столько денег*/

    }

}

 

Заключение

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

С другой стороны, сейчас очень сложно представить современный язык программирования без использования функций. У функций есть даже собственное направление в разработке — функциональное программирование, которое предполагает применение функций по особым принципам.

Схожие статьи

Регулярные выражения C, Java, PHP, JS, Excel: зачем они используются?
Другое

Регулярные выражения C, Java, PHP, JS, Excel: зачем они используются?

Haiku OS: обзор экзотической операционной системы и ее установка
Другое

Haiku OS: обзор экзотической операционной системы и ее установка

Big Data: с чего начать и как освоить большие данные самостоятельно
Другое

Big Data: с чего начать и как освоить большие данные самостоятельно

Сглаживание FXAA и SSAA: что это в играх и за что оно отвечает?
Другое

Сглаживание FXAA и SSAA: что это в играх и за что оно отвечает?