WPROWADZENIE
W matematyce pod pojęciem funkcji rozumiemy twór, który pobiera pewną liczbę argumentów i zwraca wynik. Jeśli dla przykładu weźmiemy funkcję sin(x) to x będzie zmienną rzeczywistą, która określa kąt, a w rezultacie otrzymamy inną liczbę rzeczywistą - sinus tego kąta.
Funkcja w języku C/C++ to podprogram, który może być wykorzystywany wielokrotnie w naszej aplikacji, a także wykorzystuje się go do podziału dużego programu na mniejsze co jest łatwiejszy do implementacji. Jeśli w naszym programie jakaś czynność jest wykonywana wielokrotnie, możemy ją napisać raz (w postaci funkcji) i w odpowiedniej sytuacji odwoływać się do niej.
Argumentami są natomiast dane przekazywane do funkcji.
W dzisiejszym temacie przedstawię:
1. Budowa funkcji i przykłady;
2. Wywołanie funkcji;
3. Funkcja typu VOID;
3. Funkcja typu VOID;
4. Przekazywanie argumentów do funkcji;
5. Zmienne lokalne i globalne funkcji;
6. Przydatne funkcje dostępne w rożnych bibliotekach;
7. Funkcje rekurencyjne;
8. Odpowiedzi na ciekawe pytania;
9. Przykładowe programy wykorzystujące funkcje;
6. Przydatne funkcje dostępne w rożnych bibliotekach;
7. Funkcje rekurencyjne;
8. Odpowiedzi na ciekawe pytania;
9. Przykładowe programy wykorzystujące funkcje;
BUDOWA FUNKCJI
Każda funkcja posiada trzy własności:
1. posiada nazwę;
2. może posiadać dowolną liczbę argumentów wejściowych (lub może nie mieć żadnego, jeśli tego nie chcemy).
3. zwraca dane (lub nie jeśli tego nie chcemy);
Przykład 1 - funkcja obliczająca pole kwadratu, przyjmująca jeden argument typu int, zwracająca wynik typu int :
Przykład 2 - funkcja obliczająca pole prostokąta, przyjmująca dwa argumenty typu float, zwracająca wynik typu float:
1. posiada nazwę;
2. może posiadać dowolną liczbę argumentów wejściowych (lub może nie mieć żadnego, jeśli tego nie chcemy).
3. zwraca dane (lub nie jeśli tego nie chcemy);
Przykład 1 - funkcja obliczająca pole kwadratu, przyjmująca jeden argument typu int, zwracająca wynik typu int :
Przykład 2 - funkcja obliczająca pole prostokąta, przyjmująca dwa argumenty typu float, zwracająca wynik typu float:
WYWOŁYWANIE FUNKCJI
Wywoływanie funkcji jest bardzo proste - wystarczy wpisać jej nazwę i przekazać wartości do funkcji. Ogólna postać wywołania funkcji wygląda następująco:
Najprostsza funkcja w językach C i C++, która nie przyjmuje argumentów i nie zwraca wartości. Słowo kluczowe void informuje kompilator, że funkcja nie zwraca żadnej wartości.Wewnątrz klamr umieszczamy kod, który ma się wykonać w chwili gdy zostanie wywołana funkcja.
Przyjęło się, że procedura od funkcji różni się tym, że ta pierwsza nie zwraca żadnej wartości.
PRZEKAZYWANIE ARGUMENTÓW DO FUNKCJI
#przez wartość
Najpopularniejszą metodą budowania funkcji jest przekazywanie argumentów przez wartość. Funkcja musi zawierać argumenty wraz z ich typami oddzielone przecinkami. Kiedy przekazujemy do funkcji jakąś zmienną, zostaje utworzona w pamięci jej kopia, czyli wszystko co dzieje się wewnątrz funkcji odbywa się tak na prawdę na kopii zmiennej przekazanej w argumencie poprzez wartość.
#przez referencję
Przekazywanie argumentów przez referencję występuje jedynie w języku C++. W funkcji tworzymy dowolną ilość argumentów wraz z typami. Nazwy argumentów poprzedzone są ampersandem (&). Zmienne wewnątrz funkcji nie są kopią, oznacza to że operując na zmiennych referencyjnych operujemy także na zmiennej oryginalnej z pod której wywołana została funkcja.
ZMIENE LOKANLNE I GLOBALNE FUNKCJI
Zmienna lokalna to zmienna o zasięgu obejmującym pewien blok, podprogram czyli znajduje się w funkcji, wewnątrz, której została zdefiniowana. Nie jest widoczna na zewnątrz funkcji (czyli np. w wywołującym ją programie). Jeśli zmienna lokalna ma w podprogramie taką samą nazwę jak zmienna globalna, to w podprogramie nastąpi przesłonięcie zmiennej globalnej przez tę lokalną i zmienna globalna wewnątrz takiego podprogramu nie będzie widoczna.
Zmienna globalna to zmienna istniejąca przez cały czas życia programu i widziana z wielu miejsc w programie.Widoczna w całym obszarze programu od momentu jej zadeklarowania.Czyli jest to zmienna deklarowana w każdym bloku nadrzędnym do tego w którym jest umieszczony podprogram.
PRZYDATNE FUNKCJE DOSTĘPNE W ROŻNYCH BIBLIOTEKACH
#biblioteka: <stdio.h>
printf - formatowanie danych wyjściowych
scanf - formatowane przekształcanie danych wejściowych
fopen - funkcja otwiera plik
scanf - formatowane przekształcanie danych wejściowych
fopen - funkcja otwiera plik
#biblioteka: <stdlib.h>
div - obliczanie ilorazu oraz reszty dzielenia liczb całkowitych
exit - normalne zakończenie programu
srand - generator liczb losowych
#biblioteka: <math.h>
sqrt - pierwiastek kwadratowy
cbrt - pierwiastek sześcienny
isnormal - sprawdza czy argument jest liczbą rzeczywistą
#biblioteka: <string.h>
strcat - połączenie dwóch łańcuchów
strlen - oblicza długość łańcucha
strncpy - kopiuje łańcuch znaków
FUNKCJE REKURENCYJNE
Funkcje rekurencyjne są to funkcje wywołujące same siebie. Jedną z takich funkcji rekurencyjnych będzie funkcja obliczających silnię z liczby. Silnia to iloczyn kolejnych liczb mniejszych od tej liczby i tej liczby. Oto prosty program korzystający z silni:
ODPOWIEDZI NA CIEKAWE PYTANIA
#Jak zwrócić kilka wartości?
Aby funkcja zwracała kilka wartości należy na przykład zwrócić tablicę, strukturę albo obiekt.
#Jak można przeciążyć funkcję?
Przeciążyć funkcje można poprzez przeciążanie nazw funkcji. Polega to na wielokrotnym wykorzystaniu takiej samej jej nazwy, różniącej się tylko typem i ilością argumentów. Funkcje mogą mieć różne zwracane wartości, natomiast takie same argumenty wynikiem będzie zwrócenie błędu przez kompilator.
















Brak komentarzy:
Prześlij komentarz