Lekcja 36
Wywołanie funkcji. Funkcje rekurencyjne. Zwracanie wartości przez funkcję.
Wprowadzenie
Wiesz już doskonale czym są funkcje oraz w jaki sposób przekazywać do nich argumenty. Czy zastanawiałeś się jednak nad miejscami wywoływania funkcji? W tej lekcji przedstawię Ci informacje na temat wywoływania funkcji, a także przedstawię funkcje, które wywołują same siebie - funkcje rekurencyjne.
Dodatkowo przekażę Ci podstawowe informacje na temat zwracania wartości przez funkcję. Temat ten zostanie poruszony dokładniej w kolejnej lekcji, dlatego już teraz postaraj się opanować podstawowe informacje.
Wywołanie funkcji
Przypomnij sobie wszystkie przykłady, w których występowały funkcje, jakie Ci do tej pory przedstawiłem - gdzie były wywoływane funkcje? Jeśli przyjrzysz się dokładnie, zauważysz, że wszystkie funkcje były wywoływane w funkcji main - głównej części programu.
Czy to oznacza, że wszystkie funkcje muszą być wywoływane właśnie w funkcji main? Jak się okazuje, nie jest to konieczne. Funkcja w języku C++ może być wywołana w dowolnej innej funkcji programu (w tym również oczywiście w funkcji main).
Co dzięki temu zyskujemy? Dzięki takiej konstrukcji języka C++, dowolna funkcja (z wyjątkiem funkcji main) może zostać uruchomiona tak naprawdę w dowolnym miejscu programu i nie musimy się martwić żadnymi ograniczeniami - projektując funkcję zakładamy, że będzie po prostu wykorzystana i przyjmujemy, że może zostać uruchomiona w dowolnym miejscu naszego programu.
Wiedząc, że funkcje mogą być wywoływane w dowolnym miejscu programu, można dzielić program dowolnie na mniejsze fragmenty, czyli funkcje, a same bardziej skomplikowane funkcje dzielić również na jeszcze mniejsze funkcje. Dzięki temu tworząc program w języku C++, można go podzielić na funkcje tak, aby każda z funkcji odpowiadała za wykonanie danej, konkretnej czynności. Dzięki takiemu podejściu, programowanie w języku C++ jest znacznie łatwiejsze. Łatwiejsze jest również testowanie, bo znacznie łatwiej przetestować jest poprawność danej funkcji niż poprawność działania całego programu.