Lista wyjaśnień
Funkcje i uogólnianie
Podtematy
Funkcje i uogólnianie
Funkcje są podstawowym elementem, za pomocą którego tworzymy programy. Stanowią konkretną realizację ogólnej zasady rozkładu problemu na części.
Mówiąc obrazowo, funkcja jest jak magiczne zaklęcie, któremu coś przekazujemy (dane wejściowe), a ono wyczarowuje dla nas coś innego (wynik).
- Przykład bajkowy: Powiększająca magiczna różdżka, którą dotkniemy warzywo, a ona powiększy je do dwukrotnie większego rozmiaru.
- Przykład matematyczny: Funkcja pierwiastka kwadratowego, której podajemy na wejściu liczbę, a ona zwraca inną liczbę (np. dla wartości wejściowej 25 zwraca wynik 5).
- Przykład programistyczny: Funkcja
polygon(n, długość), której przekazujemy na wejściu dwie liczby (liczbę boków i długość boku), a ona rysuje obraz wielokąta.
Proste funkcje bez parametrów pozwalają jedynie na wielokrotne wykonanie dokładnie tego samego kodu (np. zawsze kwadratu o takim samym rozmiarze). Funkcje mogą jednak zawierać również parametry, które wpływają na ich działanie (np. rozmiar kwadratu). Funkcje mogą wywoływać inne funkcje, a czasami nawet same siebie – takie funkcje nazywamy rekurencyjnymi.
Przy wprowadzaniu funkcji musimy umieć abstrahować – czyli pomijać nieistotne szczegóły – a następnie uogólniać kod – czyli zastępować zmienne szczegóły zmiennymi, z których później tworzymy parametry funkcji. Złożony program, szczególnie taki, w którym powtarza się podobny kod, można rozłożyć na kilka funkcji, dzięki czemu staje się prostszy i bardziej przejrzysty.
Do góryAbstrakcje
Abstrakcja to umiejętność pomijania szczegółów, które nie są istotne dla rozwiązania analizowanego problemu. Skupiamy się na wspólnych elementach i właściwościach, dzięki którym możemy znaleźć bardziej ogólne rozwiązanie.
Przykład z życia codziennego: Toffik, Bruno i Reks to trzy konkretne zwierzęta domowe. Możemy je nazwać abstrakcyjnym pojęciem „pies” – pomijamy w ten sposób wiele ich cech (np. wiek, kolor sierści czy rasę) i koncentrujemy się tylko na tym, co mają wspólnego. Gdybyśmy mieli w domu również kota Mruczka, to do nazwania ich wszystkich moglibyśmy użyć na przykład kategorii „ssak”.
Przykład z programowania: Podczas rysowania obrazków możemy napisać funkcję squareA(), która rysuje niebieski kwadrat o boku 100, oraz squareB(), która rysuje żółty kwadrat o boku 200. Lepszym rozwiązaniem jest jednak stworzenie bardziej abstrakcyjnej funkcji square(length, color), która narysuje kwadrat o dowolnym rozmiarze i kolorze (zgodnie z przekazanymi parametrami). Możemy też pójść jeszcze dalej i napisać funkcję, która narysuje dowolny wielokąt (o określonej liczbie wierzchołków).