Функция в контексте программирования это самостоятельный элемент кода программы который
Фу́нкция — в программировании — это поименованная часть программы, которая может вызываться из других частей программы столько раз, сколько необходимо. Функция, в отличие от процедуры, обязательно возвращает значение.
С точки зрения теории систем, функция в программировании — отдельная система (подсистема, подпрограмма), на вход которой поступают управляющие воздействия в виде значений аргументов. На выходе функция возвращает результат, который может быть как скалярной величиной, так и векторным значением (структура, индексный массив и т.п.). По ходу выполнения функции могут выполняться, также, некоторые изменения в управляемой системе, причём как обратимые, так и необратимые.
Содержание
Побочный эффект
Побочным эффектом функции называется любое изменение функцией состояния программной среды, кроме возвращаемого значения: изменение значений глобальных переменных, выделение и освобождение памяти, ввод-вывод и тому подобного. Теоретически наиболее правильным является использование функций, не имеющих побочного эффекта (то есть таких, в результате вызова которых возвращается вычисленное значение, и только). В функциональной парадигме программирования любая программа представляет собой набор вложенных вызовов функций, не вызывающих побочных эффектов. Наиболее известный язык программирования, реализующий эту парадигму — Лисп. В нём любая операция, любая конструкция языка, любое выражение, кроме константы, являются вызовами функций. Наиболее полно парадигма функционального программирования реализуется в языке Хаскелл.
Функции и процедуры
В некоторых языках программирования (например, в Паскале) функции и процедуры (подпрограммы, не возвращающие значения) чётко разграничены синтаксисом языка. В других — например, в языке Си, — процедуры являются частным случаем (подмножеством) функций, возвращающими значение типа (псевдотипа [источник не указан 757 дней] ) void — пустое значение.
Аргументы и параметры
При вызове функции, ей передаются аргументы. Если аргумент является ссылкой на область памяти (переменной, указателем или ссылкой), то функция, в зависимости от типа своего параметра, может либо воспользоваться её значением (например, создать переменную, скопировать туда значение аргумента), либо самим аргументом (создать ссылку на область памяти, на которую ссылается аргумент).
Функция без аргументов
Такая функция не требует никаких аргументов.
См. также
Ссылки
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
- Переработать оформление в соответствии с правилами написания статей.
- Концепции языков программирования
- Функции
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое "Функция (программирование)" в других словарях:
Функция — В Викисловаре есть статья «функция» Функция многозначный термин, который означает такое отношение между элементами, в котором изменение в одном влечет измен … Википедия
Функция заглушка — Функция заглушка в программировании функция не выполняющая никакого осмысленного действия, возвращающая пустой результат или входные данные в неизменном виде. Аналогичное английское слово stub . Используется: Для наглядности при… … Википедия
функция психическая высшая: восстановление — (восстановление высших психических функций) раздел нейропсихологии, посвященный изучению механизмов и методов восстановления функций психических высших, нарушенных вследствие поражений локальных мозга головного. На базе представлений об… … Большая психологическая энциклопедия
Программирование математическое — Математическое программирование математическая дисциплина, изучающая теорию и методы решения задач о нахождении экстремумов функций на множествах конечномерного векторного пространства, определяемых линейными и нелинейными ограничениями… … Википедия
Программирование сетевых задач — В области компьютеризации понятие программирования сетевых задач или иначе называемого сетевого программирования (англ. network programming), довольно сильно схожего с понятиями программирование сокетов и клиент серверное программирование,… … Википедия
Функция высшего порядка — Функция высшего порядка функция, принимающая в качестве аргументов другие функции или возвращающая другую функцию в качестве результата. Основная идея состоит в том, что функции имеют тот же статус, что и другие объекты данных.… … Википедия
ПРОГРАММИРОВАНИЕ МАТЕМАТИЧЕСКОЕ — комплекс математич. моделей и методов решения задач отыскания экстремума (максимума или минимума) функций многих переменных при ограничениях в виде неравенств. Имеется в виду, что переменные характеризуют какие либо аспекты механизма… … Российская социологическая энциклопедия
ПРОГРАММИРОВАНИЕ ТЕОРЕТИЧЕСКОЕ — математическая дисциплина, изучающая математич. абстракции программ, трактуемых как объекты, выраженные на формальном языке, обладающие определенной информационной и логич. структурой и подлежащие исполнению на автоматич. устройствах. П. т.… … Математическая энциклопедия
Функция (информатика) — Функция в программировании один из видов подпрограммы. Особенность, отличающая её от другого вида подпрограмм процедуры, состоит в том, что функция возвращает значение, а её вызов может использоваться в программе как выражение. С точки зрения… … Википедия
ПРОГРАММИРОВАНИЕ, МАТЕМАТИЧЕСКОЕ — раздел прикладной математики, применяющийся в качестве метода в экономических исследованиях. Разрабатывает теорию и методы решения условных экстремальных задач, является основной частью формального аппарата анализа разнообразных задач управления … Большой экономический словарь
Функция в программировании — это часть программного кода, который несет в себе набор инструкций или команд, решающих конкретную задачу. В программирование их ввели для того, чтобы сократить количество строк кода. Чтобы не описывать какую-то задачу десятками строк кода, можно использовать функцию, которая опишет задачу в одну строку.
К функциям можно обращаться из разных мест программы, а они в ответ возвращают какие-то значения. За счет этой возможности один и тот же алгоритм действий не нужно прописывать в разных частях кода, потому что достаточно будет только написать имя функции.
Функция в программировании — что это?
Отключить сигнализацию.
Открыть дверь.
Сесть за руль.
Вставить ключ в зажигание.
Зажать педаль тормоза.
Выставить нейтральную передачу.
Завести машину.
Выжать сцепление.
Включить первую передачу.
Плавно отпустить сцепление, параллельно нажимая на педаль газа.
Функция в программировании и аргументы
если мы самостоятельно едем по городу, тогда мы используем двухместный электромобиль;
если нам нужно поехать с большой семьей, тогда мы используем минивэн или микроавтобус;
если нам нужно перевезти груз, тогда мы используем грузовой автомобиль;
и др.
Функция располагается в определенной части программы, где нам нужно вызвать действия определенного алгоритма.
При обработке нашего кода обработчик сталкивается с нашей функцией и возвращается в ту часть программы, где у нас прописан алгоритм.
Он выполняет нашу функцию, учитывая аргументы, которые мы указали.
После выполнения нашей функци и о бработчик «берет» или «не берет» результат выполнения функции и возвращается к той строке кода, которая вызвала функцию. То ест ь к той строке, где мы написали имя функции с аргументами.
После возвращени я о бработчик переходит на следующие строки кода.
Функция в языке программирования и ее виды
встроенные — это те функции, которые уже находятся внутри языка , тогда вам остается только пользоваться ими или не пользоваться;
пользовательские — это те функции, которые пользователь создает самостоятельно.
название ;
набор аргументов, который указывается в круглых скобках ;
тело функции, которое указывается в фигурных скобках.
перевезти груз из точки «А» в точку «Б»;
поехать в порт и погрузить контейнер;
поехать в поле и загрузить овощи;
и др.
Заключение
Функции в программировании имеют важное значение. Не зря первые функции появились еще задолго до появления персональных компьютеров — в 60-х годах. Функции в контексте программирования — это возможность писать код быстрее и делать программы читабельней и короче.
С другой стороны, сейчас очень сложно представить современный язык программирования без использования функций. У функций есть даже собственное направление в разработке — ф ункциональное программирование, которое предполагает применение функций по особым принципам.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Итак, что такое парадигма программирования? Парадигма — это совокупность правил, принципов и методик, которые применяются при написании программ. Парадигма определяет стиль написания программы и никак не связана с каким-то конкретным языком программирования. В одной парадигм е п рограммный код могут писать разные языки программирования , т акже один язык может писать код в различных парадигмах.
Если представить условную иерархию, тогда парадигмы программирования будут на самой вершине. Именно они будут определят ь п равила написания, свойства, шаблоны, паттерны, структуру, архитектуру программы и др. То ест ь и значально идет парадигма, которая влечет все остальные собственные составляющие.
Основные парадигмы программирования
Если покопаться в сети, тогда можно найти множество определений выражению «парадигмы программирования». В разные год ы разные программисты описывали это выражение своими словами. Изучив их все, можно заметить , что парадигмы, по сути , являются моделями программирования. Изучив, какие бывают основные парадигмы программирования, вы поймете , о чем речь.
Парадигма объектно-ориентированного программирования
абстракция,
инкапсуляция,
наследование,
полиморфизм.
Парадигма функционального программирования
Парадигма функционального программирования заняла почетное второе место по популярности после объектно-ориентированного программирования. Главная идея такой модели заключается в том, что программа создается под одну конкретную задачу, поэтому от нее ждут конкретный результат.
Программисты, которые отдельно используют ООП или ФП, часто спорят о том, какая из этих двух парадиг м лучше. Но невозможно выделить лучшую, потому что выбор парадигмы зависит от требований к программе и языка, на котором она будет писаться. Язык, который был разработан для функционального программирования , — Haskel l . Однак о н еплохо с этой парадигмой справляется Python.
В ООП основной компонент программы — объект. В функциональном программировании — функция. В функциях прописывается, какую информацию она должна получить в качестве входящего значения, а какую должна отдать. Функции могут быть вложенными — это когда одна функция является аргументом другой функции.
Программы, написанные по такой модели, обычно легче тестировать и читать, если сравнивать с ООП.
Процедурная парадигма программирования
Процедурная парадигма программирования основывается на процедурах. Процедура — это инструкция, которая используется для воздействи я на состояние памяти. После исполнения всего набора инструкци й п рограмма выдает результат.
Процедурное программирование не так распространено, как первые две парадигмы, однако поддерживается в таких популярных языках , как С и Go. Такая парадигма по своей простоте схо ж а с функциональным программированием. Однак о п рограммы , написанные в такой модели , сложнее масштабировать.
Парадигма декларативного программирования
В такой парадигме программист описывает проблему и ожидаемый результат, но не дает инструкций программе, как достичь этого результата. В таком подходе отсутствуют переменные, состояния программы и операторы присваивания.
К примеру, если написать программу в такой парадигме, которая будет вычислять из большого массива чисел все числа, которые больше 5, но меньше 500 , тогда программисту нужно будет только написать что-то подобное: «Вычислить из «myArray» числа, которые больше 5, но меньше 500». При это м программисту не нужно будет описывать инструкции, каким образом программа должна найти эти числа , т о ест ь о н просто описывает результат.
Логическая парадигма программирования
Логическое программировани е является подвидом декларативного. Это достаточно редкая парадигма. В ее основе лежит использование математической логики и математических принципов , т о ест ь и нформация в программе выводится на основе заданных фактов, расчетов и набора математических правил. Если упростить понимание этой парадигмы до минимума, тогда можно сказать так: программа строится по принципу «вопрос-ответ».
Такой вид программирования используется языками Prolog и Planner.
Заключение
структурное программирование,
компонентно-ориентированное,
прототипно-ориентированное,
агентно-ориентированное,
аппликативное,
обобщенное,
доказательное,
порождающее программирование,
и др.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Чем больше в вашей программе строк, тем сложнее она для понимания. Поскольку программу придётся актуализировать, дополнять и изменять бесконечно, то объёмный код в этой задаче не помощник. Для его упрощения есть функции. Благодаря им вы сократите время на разработку и уберёте дублирующиеся части. Понимать и тестировать программу станет проще. Как всё работает, сейчас покажем.
Сначала теория
Программы состоят из алгоритмов. А они в свою очередь из команд, переменных и функций.
Функция – это часть кода, совокупность команд, которая решает конкретную задачу. Чтобы легко обратиться к функции из разных частей программы, ей присваивают имя.
Зачем обращаться к функции? Чтобы не прописывать тот же самый алгоритм повторно в другом месте. Вместо этого достаточно написать только имя функции. Код становится лаконичным и понятным, его легко отлаживать и сопровождать.
Объясняем
Например, вы хотите написать программу, которая проигрывает песню. И в ней 5 раз звучит игра на барабанах. Вы бы прописали следующий алгоритм для барабанщика:
1. Взять палочки.
3. Совершить удар по барабану.
4. Нажать на педаль ногой.
5. Помотать головой в такт.
Без функции вам пришлось бы прописывать 5 раз одно и то же в тех частях композиции, где нужны ударные. Но гораздо удобнее оформить этот алгоритм в функцию playDrums и вызывать её каждый раз, когда необходимо. Это экономит время.
По сути, это алгоритм в алгоритме, который вызывается по имени с помощью команды. Например, лай собаки – это функция, которая выполняется по определённому алгоритму и вызывается командой «Голос».
Аргументы
Функциям можно передавать параметры, которые называются аргументами функции.
Когда мы пишем функцию, то указываем в ней не конкретные значения, а параметры, которые необходимо ввести при вызове функции, чтобы она заработала.
Например, если взять функцию человека ходить, то в качестве аргументов в неё передаётся «обувь».
Обувь – это параметр.
В разное время потребуется разная обувь, поэтому при каждом вызове функции аргументы меняются. Например, чтобы ходить по спортивной площадке нужна обувь «кроссовки», а чтобы перейти лужу – «сапоги».
Кроссовки и сапоги – это аргументы.
Алгоритм при этом не поменяется: каждый раз человек ходит одинаково, но в разной обуви.
При вызове функции в строке происходит следующее:
1. Язык программирования находит её в той части программы, где она прописана.
2. Выполняет команды, содержащиеся в ней, с учетом указанных при вызове аргументов.
3. Возвращается обратно к строке, которая её вызвала.
4. Переходит к следующей строке.
Некоторые функции уже встроены в язык программирования, например, console.log() в JavaScript, с которой мы уже познакомились :)
Пользовательские функции
Помимо стандартных встроенных в язык функций, мы можем создавать свои – пользовательские. Для этого необходимо записать алгоритм в определённой форме и придумать ему имя.
В JavaScript специальное слово для определения функций – function. После него указывается:
— список аргументов в круглых скобках;
— тело функции в фигурных скобках.
Создадим простейшую функцию без параметров с именем greeting, которая будет выводить строку 'Hello!':
Справка! Перед вложенными в функцию строками принято ставить отступ с помощью клавиши , чтобы они начинались немного дальше от края строки. Это визуально упрощает чтение кода.
Если позже нам понадобится вызвать функцию в другой части программы, то мы вызовем её только по имени – «greeting();» – и нажмём :
Увидим в консоли результат:
Тренировка
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, которая бы считала количество минут в днях.
Программа представляет собой последовательность выражений языка. Нередко случается, что какая-то часть программы (блок кода) неоднократно повторяется. Чтобы устранить подобного рода избыточность программного кода, используют понятие функции. Функция — это именованный блок кода, который вызывается в нужных местах программы по имени. Другими словами, функция представляет собой подпрограмму, которую можно вызвать из основной программы, причем неоднократно. Повторяющийся (да и не только) блок программного кода обычно обозначают некоторым уникальным именем, чтобы потом при необходимости обратиться к нему по этому имени. Как видно, это простая и естественная идея, направленная на облегчение реализации сложных проектов, состоящих из более простых программ.
Подпрограмма или, другими словами, функция должна быть связана (интегрирована) с основной программой, так сказать, со своим внешним окружением. С целью обеспечения взаимодействия с остальной частью программы для функции можно предусмотреть так называемые вход и выход.
Функция, создаваемая разработчиком, должна иметь определение, а ее применение в программе называют вызовом функции. Например, в JavaScript и РНР (а также в большинстве других языков) такое определение начинается с ключевого слова function , за которым следуют имя функции, пара круглых скобок, внутри которых можно указать список параметров, а затем блок кода, заключенный в фигурные скобки:
Замечу попутно, что блок кода в фигурных скобках называют еще телом функции. В нем записывают выражения языка, которые функция должна выполнить, если будет вызвана из основной программы. Таким образом, само по себе определение функции в программе еще ничего не выполняет. Оно только указывает интерпретатору, что должно быть выполнено при обращении к данной функции.
Для вызова функции в том или ином месте программы указывают следующее выражение:
Круглые скобки после имени функции записывают независимо от того, предусмотрены для нее входные параметры или нет. В программе вы можете один раз задать определение функции, а затем, по мере необходимости, вызывать ее столько раз, сколько требуется. Таким образом, вам не придется многократно воспроизводить в программе код тела функции.
Отсюда следует, что основная программа может содержать как определения, так и вызовы функций. В программе, содержащей вызовы функций, должны быть доступны их определения. Простейший, но не единственно возможный способ обеспечить это заключается в том, чтобы заключить определения функций в тот же программный код, в котором они где-то вызываются. Опытные программисты обычно размещают определения функций в одном месте, например, в конце или, наоборот, в начале программного кода.
Результат работы функции
Чтобы функция что-то возвращала, необходимо записать в ее теле специальный оператор возврата:
В этом примере переменным Оклад и Процент сначала присваивают некоторые числовые значения. Затем вычисляют выражение, определяющее объем выплаты некоторому сотруднику с учетом его оклада и премии. Премия рассчитывается с помощью функции Премия (Оклад, Процент) , принимающей два параметра: оклад и процент от оклада; данная функция возвращает величину премии (символом * обозначен оператор арифметического умножения). Возвращаемое значение прибавляется к значению переменной Оклад , а полученный результат присваивается переменной Выплата . Определение функции Премия (Оклад, Процент) размещено в конце текста программы.
Данный программный код написан на вымышленном (абстрактном) языке. Я хотел сказать, что рассмотренный пример иллюстрирует принцип применения функции, а потому не важно, какой именно язык выбрать. Главное, что все изложенное ранее должно позволить вам понять данный код. Тем не менее, признаюсь, что приведенный мной пример написан и на языке JavaScript. Напишите в обычном текстовом редакторе, например, в Блокноте Windows следующие строки:
Оклад = 10000; function Премия(Оклад, Процент) < return Оклад * Процент / 100; >alert("Выплата Выплата reading-position-indicator-end">
Читайте также: