Naucz się programować!     |      -40% przy zakupie min. 2 kursów     |      Tylko przez:

1 dni 13 godzin
close
Cart icon
User menu icon
User icon
Skontaktuj się z nami:
+48 888-916-333
Lightbulb icon
Jak to działa?
FAQ icon
FAQ
Contact icon
Kontakt
Terms of service icon
Regulamin zakupów
Privacy policy icon
Polityka prywatności
Czy wiesz czym różni sę funkcja od procedury

Czym się różni funkcja od procedury?

Funkcja i procedura to dwa ważne pojęcia w programowaniu. Niektórzy używają ich zamiennie, choć w rzeczywistości są pomiędzy nimi istotne różnice. Mamy nadzieję, że po przeczytaniu tego artykułu, zrozumiesz na czym te różnice polegają.

Zwracanie wartości

Funkcja zwykle zwraca wartość, która może być używana w dalszych obliczeniach lub operacjach. Z kolei procedura nie zwraca wartości, może jedynie wykonywać operacje, manipulować danymi itp.

Zostań programistą: interaktywne kursy z ćwiczeniami

Argumenty

Funkcja może przyjmować argumenty (parametry), które są przekazywane do funkcji w celu wykonania operacji na nich i zwrócenia wyniku. Procedura także może przyjmować argumenty, ale ich przekazanie ma na celu jedynie manipulację nimi w obrębie procedury, niekoniecznie zwracanie jakiejkolwiek wartości.

Czystość funkcji

Czysta funkcja nie wpływa na stan zmiennych poza swoim zakresem, a wynik zależy tylko od jej argumentów. Oznacza to, że funkcja nie ma żadnych efektów ubocznych. Procedura może zmieniać stan zmiennych poza swoim zakresem lub mieć inne efekty uboczne.

Przykłady

Najlepiej będzie zilustrować te różnice za pomocą prostego przykładu.

Funkcja

Funkcja obliczająca silnie, funkcja obliczająca odległość między dwoma punktami itp.

Procedura

Procedura sortująca listę, procedura przeliczająca kwoty walutowe itp..

Funkcje, procedury i języki programowania

Większość popularnych języków programowania, takich jak Python, C++, Java, umożliwia stosowanie zarówno funkcji jak i procedur. Z technicznego punktu widzenia często nie ma pomiędzy nimi żadnych różnic - stosowane są te same mechanizmy języka.

Realne różnice polegają na stosowaniu odpowiednich konwencji i podejścia do pisania kodu. Na przykład w Pythonie, można użyć słowa kluczowego def do zdefiniowania bloku kodu, który może być zarówno procedurą jak i funkcją. Jeśli nasza funkcja nie będzie zwracała wartości, to będzie koncepcyjnie zbliżona raczej do procedury niż typowej funkcji. W nowoczesnym funkcyjnym podejściu do kodu zdecydowanie częściej stosuje się funkcje zwracające wartość (funkcje czyste). Sama koncepcja procedury jest uznawana za przestarzałą bo utrudnia zrozumienie i wielokrotne wykorzystanie kodu.

Zostań programistą: interaktywne kursy z ćwiczeniami