Чем процедура отличается от функции в программировании?

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

Содержание статьи

Что означают  понятия функция и процедура

Функция в программировании – подпрограмма, вызываемая из других подпрограмм необходимое число раз.

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

к содержанию ↑

Сравнение функции и процедуры

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

отличие функции от процедуры в программировании

Заголовок функции содержит слово “function”, идентификатор (собственное имя функции), вариативно список параметров и обязательно – тип результата. В теле функции обязательно прописывается оператор, присваивающий значение имени функции, которое она вернет в качестве результата. Заголовок процедуры содержит слово “procedure”, идентификатор (имя процедуры) и вариативно список параметров. Вызов функции осуществляется в составе выражений там, где эти выражения применяются, вызов процедуры требует отдельного оператора. Вызов процедуры осуществляется только по имени, имя функции же связано с ее значением. На схемах алгоритмов вызов функции изображается в блоке вывода или в блоке процесса, вызов процедуры – в специальном блоке “предопределенный процесс”.

к содержанию ↑

Отличие функции от процедуры в программировании

  1. Функция возвращает значение, процедура – нет.
  2. Заголовок функции обязательно содержит тип результата.
  3. В теле функции обязательно наличие оператора, присваивающего значение имени функции.
  4. Вызов процедуры требует отдельного оператора, вызов функции возможен в составе выражений.
  5. Имя процедуры необходимо для вызова, имя функции – для присвоения значения.
  6. На схемах алгоритмов вызов процедуры изображается в отдельном блоке, вызов функции – в блоке процесса или вывода.