Funkcje
W c++ mamy 2 rodzaje funkcji:
- takie, które zwracają wynik (i same w sobie zwykle nic nie wyświetlają)
- takie, które nie zwracają wyniku
Funkcje void
to takie, które nie zwracają wyniku
void funkcja(){
}
Funkcje int
zwracają wynik. int można zamienić innym typem danych, to poprostu oznacza typ w jakim zwrócimy dane
int funkcja(){
return 12;
}
Operowanie funkcjami
możemy je wywołać poprzez funkcja();
Do funkcji można również podawać argumenty
void funckja(int a, int b){
cout<<a<<"\t"<<b<<endl;
}
funckcja(12,5);
Podane w ten sposób argumenty są kopiowane do funkcji, zatem funkcja może je zmienić wewnątrz siebie, ale nie to poza nią
int a = 2;
int b = 7;
void funkcja(int a, int b){
a+=12;
cout<<a+b<<endl;
}
funkcja(a,b);
cout<<a+b<<endl;
na ekranie pojawią się liczby
21
9
gdyż zmienna a nie została zmieniona poza funkcją
Aby funkcja zmieniła nam zmienną możemy ją linkować w następujący sposób
int x=12;
int y=55;
void funkcja(int& a, int& b){
...
}
funkcja(x. y);
Jak funkcja zwraca wynik to możemy jej wynik przypisać do zmiennej
int funkcja(){
return 12;
}
int a = funkcja();
Można też dodać domyślną wartość argumentu funkcji
void funkcja(int a = 60, int b = 12){
...
}
funkcja();
Rekurencja
Jeśli funkcja uruchamia samą siebie to nazywamy to rekurencją.
Przy rekurencji trzeba uważać, żeby nie stworzyć niekończącej się pętli.
Praktycznie zawsze szybiej będzie działał kod nie-rekurencyjny niż ten z rekurencją.
Przykład na funkcji liczącej silni:
int silnia(int n){
if(n<2)
return 1;
return n*silnia(n-1);
}
Cała ta pętla uruchamiania samej siebie skończy się w momencie gdy n<2