Przejdź do treści

Funkcje

Wyobraźmy sobie czarne magiczne pudełko. Takie pudełko, do którego coś wrzucamy i coś innego z niego wypada. Wkładamy do niego wejście, a wychodzi wyjście:

Inaczej mówiąc, wkładamy do pudełka pewne dane, a wyciągamy z niego wynik:

Takie pudełko reprezentuje nam właśnie funkcję.

Czym jest funkcja?

W programowaniu pojęcie funkcji możemy rozumieć wielorako. Najłatwiej myśleć o tym jak o pewnym fragmencie programu, który ma konkretne zadanie i swoją własną nazwę. Do funkcji przekazujemy dane w postaci parametrów, a w odpowiedzi dostajemy wynik zgodny ze specyfikacją funkcji.

Danger

Nie należy mylić funkcji w programowaniu i funkcji w matematyce, to dwa zupełnie różne twory!

Schematyczny zapis funkcji przedstawia się następująco:

funkcja NazwaFunkcji(parametr1, parametr2, ...):
    Operacja1
    Operacja2
    ...
    Zwróć wynik

Przykład - automat do kawy

Wyobraźmy sobie automat do kawy, taki jaki stoi na korytarzach wielu biur, szkół i dworców kolejowych. Możemy powiedzieć, że reprezentuje ona pewną funkcję, zgodną z poniższą specyfikacją:

Specyfikacja

Dane

  • wybór - wybrany napój
  • pieniądze - należna kwota

Wynik

  • Wybrany napój.

Info

Oczywiście jest to bardzo uproszczona specyfikacja. W rzeczywistości taki automat nie wyda nam napoju, jeśli nie uiścimy odpowiedniej opłaty. Czasem oprócz napoju dostaniemy też resztę. Taka specyfikacja wystarczy nam jednak do przykładu.

Spróbujmy zapisać fragment funkcji realizowanej przez taki automat w postaci pseudokodu:

funkcja AutomatDoKawy(wybór, pieniądze):
    1. Jeżeli wybór = "latte" i pieniądze = 3.0, to:
        2. Zwróć Latte i zakończ   

Procedura

W przeciwieństwie do funkcji procedura nie zwraca konkretnego wyniku. Jaki więc może być jej cel? Procedurę możemy zastosować, by np. zmienić wartości zmiennych przekazanych jako parametry (jeżeli je odpowiednio przekażemy), zmienić wartości zmiennych globalnych, albo wypisać komunikat na ekranie. Możemy łatwo wyobrazić sobie procedurę powitanie, która przyjmuje imię użytkownika i wyświetla na ekranie stosowny komunikat:

procedura Powitanie(imie):
    1. Wypisz "Witaj "
    2. Wypisz imie
    3. Wypisz "!"
    4. Wypisz znak nowej liniii
    5. Zakończ

Warning

Współcześnie już praktycznie nie rozróżniamy pomiędzy funkcją a procedurą. W wielu językach programowania występują tylko funkcje, w tym też takie, które nie zwracają wyniku (albo których wynik ignorujemy).

Prezentacja

Funkcje - wprowadzenie