Różnica między procedurą a funkcją w programowaniu

Użytkownicy, którzy zasadniczo nie są programistami, rzadko spotykają się z pojęciami funkcji i procedur oraz są kojarzeni z czymś matematycznym i biurokratyczno-medycznym. W programowaniu wiele języków posługuje się tymi pojęciami, jednak nawet specjaliści czasami nie mogą jasno zrozumieć różnicy między funkcją a procedurą. Jak w przypadku tego susaka: on jest, ale nikt go nie widzi. Zobaczmy, czy różnice są tak niewidoczne.

Treść artykułu

  • Definicja
  • Porównanie
  • Wnioski

Definicja

Funkcja w programowaniu podprogram wywoływany z innych podprogramów tyle razy, ile to konieczne.

Procedura - nazwana część programu (podprogram), wielokrotnie wywoływana z kolejnych części programu wymaganą liczbę razy.

do treści ↑

Porównanie

Główną różnicą między funkcją a procedurą jest wynik zwracany. W rzeczywistości obie funkcje i procedury są logicznie niepodzielnymi blokami, które składają się na kod programu. Funkcja zwraca wartość, procedura w większości języków programowania nie, lub (na przykład w C) zwraca pustą wartość. W tym drugim przypadku (w C) procedurę uważa się za podrzędną funkcję.

Nagłówek funkcji zawiera słowo „funkcja”, identyfikator (poprawna nazwa funkcji), listę parametrów i opcjonalnie typ wyniku. W treści funkcji należy przepisać operator, przypisując wartość do nazwy funkcji, która w rezultacie zwróci. Tytuł procedury zawiera słowo „procedura”, identyfikator (nazwa procedury) i listę parametrów zmiennie. Wywołanie funkcji jest wykonywane jako część wyrażeń, w których te wyrażenia są stosowane; wywołanie procedury wymaga osobnej instrukcji. Procedura jest wywoływana tylko z nazwy, nazwa funkcji jest powiązana z jej wartością. Na schematach algorytmów wywołanie funkcji jest wyświetlane w bloku wyjściowym lub w bloku procesu, a wywołanie procedury w bloku specjalnym „predefiniowany proces”.

do treści ↑

Wnioski

  1. Funkcja zwraca wartość, procedura nie.
  2. Nagłówek funkcji musi zawierać typ wyniku..
  3. W treści funkcji wymagany jest operator, który przypisuje wartość do nazwy funkcji.
  4. Wywołanie procedury wymaga osobnego operatora, wywołanie funkcji jest możliwe jako część wyrażeń.
  5. Nazwa procedury jest potrzebna do wywołania, nazwa funkcji ma przypisać wartość.
  6. Na schematach algorytmów wywołanie procedury pokazano w osobnym bloku, wywołanie funkcji pokazano w bloku procesu lub wyjścia.