Різниця між процедурою і функцією в програмуванні

Користувачі, далекі від програмування в принципі, стикаються з поняттями функції і процедури рідко, і асоціюються вони з чимось математичним і бюрократично-медичним. У програмуванні ж цими поняттями оперує безліч мов, правда, навіть фахівці подеколи не можуть чітко усвідомити різницю між функцією і процедурою. Як з тим сусликом: він є, але його ніхто не бачить. Подивимося, чи настільки невидимі відмінності.

Зміст статті

  • визначення
  • порівняння
  • висновки

визначення

функція в програмуванні - підпрограма, що викликається з інших підпрограм необхідне число раз.

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

до змісту ↑

порівняння

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

Заголовок функції містить слово "function", ідентифікатор (власне ім'я функції), варіативно список параметрів і обов'язково - тип результату. У тілі функції обов'язково прописується оператор, що присвоює значення імені функції, яке вона поверне в якості результату. Тема процедури містить слово "procedure", ідентифікатор (ім'я процедури) і варіативно список параметрів. Виклик функції здійснюється в складі виразів там, де ці вирази застосовуються, виклик процедури вимагає окремого оператора. Виклик процедури здійснюється тільки по імені, ім'я функції ж пов'язано з її значенням. На схемах алгоритмів виклик функції зображується в блоці виведення або в блоці процесу, виклик процедури - в спеціальному блоці "зумовлений процес".

до змісту ↑

висновки

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