Opis
Funkcje to części kodu, które wykonują ustalone czynności po ich wywołaniu. Te czynności są tylko wykonywane wtedy, kiedy zostanie wywołana dana funkcja. Tworzenie funkcji w kodzie pozwala zautomatyzować wykonywanie pewnych, powtarzających się czynności (i tym samym zmniejszyć ilość kodu).
Lwia część języków umożliwia obecnie definiowanie własnych funkcji / metod, czyli zbioru czynności który możemy zdefiniować poza główną strukturą programu i wywołać ją zarówno w głównej strukturze programu jak i w innej funkcji/metodzie. W niektórych językach przyjmuje się zapis funkcji za pośrednictwem camelCase.
Przykładowa funkcja:
void funkcjaWypisz(){ Wypisz "Podaj liczbę."; // nie zwraca wartości; }
Rodzaje funkcji
Funkcje często dzielimy na te niezwracające wartości, tj. void i zwracające wartości liczbowe (zapoczątkowane nazwą zmiennej).
W funkcjach możemy definiować zmienne wejściowe, które są wykorzystywane w danej funkcji/metodzie. Wpisujemy je do nawiasu, który kończy funkcję, definiując je wewnątrz funkcji. Kiedy wywołujemy funkcje, nie możemy definiować typu zmiennej wewnątrz wywołania funkcji (czyli w nawiasie).
Wywoływanie funkcji w funkcji głównej
void funkcjaWypisz(){ // funkcja funkcjaWypisz Wypisz "Podaj liczbę."; // nie zwraca wartości; } int matSzescian(int x){ // funkcja matSzescian x = x*x*x; // wykonuje obliczanie sześcianu; return x; // zwraca wartość x; } int Main(){ // funkcja główna; funkcjaWypisz(); // wypisuje "Podaj liczbę"; int a; Wpisz a; Wypisz matSzescian(a); // wypisuje wynik funkcji; }
By pokazać wywołanie jakiejś części programu zdefiniowanej odrębnie, używamy bloku wywołania podprogramu, który jest ukazany w postaci prostokąta zawartego w szerszym prostokącie.
Wywołanie funkcji w funkcji głównej:
Rekurencja
Zjawisko wywoływania metody w tej samej metodzie nazywamy rekurencją. Za pośrednictwem rekurencji możemy między innymi zrealizować obliczanie silni.
Obliczanie silni:
int matSilnia(int x){ if ( x == 0 || x == 1 ) x = 1; // warunek silni else x = x * matSilnia(x-1); } int Main(){ // funkcja główna int liczba; Wpisz liczba; // wpisujemy liczbę matSilnia(liczba); // wypisuje silnię danej liczby } /* rekurencja tworzy kolejne odwołania do funkcji, w których wartość x jest dekrementowana, aż do momentu w którym x będzie równe 1, wtedy to nastąpi warunek silni */
Autor tekstu: Jacek Woźniak