Przeczytaj
Funkcje są podprogramami, czyli fragmentami kodu odpowiedzialnymi za zrealizowanie wybranych części algorytmu. Najczęściej stosujemy je w przypadkach, kiedy pewne sekwencje poleceń są wykonywane wielokrotnie.
Wyobraź sobie, że pisząc program musisz sprawdzić, czy pewna liczba jest podzielna przez 3 i wyświetlić na ekranie odpowiedni komunikat. Załóżmy, że takie zadanie należy wykonać w różnych częściach programu dla różnych liczb. Zastanów się, czy wielokrotne zapisywanie identycznych ciągów instrukcji jest dobrym pomysłem?
W takich sytuacjach bardzo pomocne okazują się funkcje. Pozwalają one:
znaczne skrócić kod programu dzięki wyeliminowaniu powtórzeń ciągów instrukcji (zastępują je wywołania funkcji),
uczynić kod czytelnym i łatwiej zrozumiałym,
uporządkować kod programu dzięki podzieleniu algorytmu na mniejsze części,
ułatwić pracę programisty (na przykład podczas nanoszenia poprawek w kodzie).
Dzięki funkcjom możemy wykonywać ciągi poleceń, a także zwracać programowi wynik jej działania (na przykład obliczoną przez funkcję wartość).
Zanim użyjemy funkcji w programie, musimy napisać jej definicję. Najczęściej składa się ona z:
nagłówka funkcji, zawierającego jej nazwę, zwracany typ i – ewentualnie – listę parametrów,
ciała funkcji, zawierającego zestaw instrukcji.
Polecenia składające się na ciało funkcji są wykonywane po wywołaniuwywołaniu funkcji w wybranym miejscu programu. Wywołanie polega na podaniu nazwy funkcji oraz (ewentualnie) jej parametrów.
Parametry formalne i aktualne
Parametry są wartościami przekazywanymi funkcji. Za przykład niech posłuży zestaw liczb, które mają zostać zsumowane przez funkcję. Innymi słowy, parametry są informacjami, na podstawie których wykonywane są instrukcje zapisane w ciele funkcji.
Parametry możemy podzielić na formalne i aktualne.
Parametry zapisane w nagłówku definicji funkcji nazywane są parametrami formalnymiparametrami formalnymi. Definicja funkcji może wyglądać następująco:
Kiedy wywołujemy funkcję nazwaFunkcji()
musimy podać odpowiednie parametry; zostaną one przekazane funkcji i zastąpią parametry formalne. Właśnie te konkretne wartości nazywamy parametrami aktualnymiparametrami aktualnymi. A oto wywołanie funkcji z listą parametrów aktualnych:
Sposoby przekazywania parametrów
Przekazywanie parametrów funkcji może się odbywać przez wartość lub przez referencjęreferencję.
Jeśli podczas wywołania funkcji parametr jest przekazywany przez wartość, tworzona jest nowa zmienna lokalnazmienna lokalna. Zajmuje ona miejsce w pamięci wyłącznie na czas działania funkcji.
Następnie wartość parametru aktualnego jest kopiowana do zmiennej lokalnej – i to nią właśnie posługuje się funkcja. Dzięki temu wszystkie operacje są wykonywane tylko na zmiennej widocznej wewnątrz funkcji. Natomiast wartość parametru aktualnego nie ulega zmianie.
W przypadku przekazywania parametru przez referencję parametr formalny jest zastępowany przez referencję do parametru aktualnego. Referencja przechowuje adres, pod którym znajduje się parametr aktualny. Oznacza to, że wszystkie instrukcje zapisane w ciele funkcji wykonywane są bezpośrednio na wskazywanym obiekcie – parametrze aktualnym.
Przykłady ilustrujące przedstawione sposoby przekazywania parametrów, a także wady i zalety każdego z nich poznasz w kolejnej części lekcji.
Słownik
parametr przekazywany funkcji w momencie jej wywołania
parametr znajdujący się w nagłówku definicji funkcji
informacja na temat obszaru pamięci, w którym przechowywany jest obiekt (np. zmienna)
polecenie wykonania instrukcji zapisanych w ciele funkcji
zmienna widoczna tylko wewnątrz funkcji (mająca przydzielone miejsce w pamięci na czas działania funkcji)