Funkcje w C++

Do tej pory wszystkie polecenia znajdowały się w nawiasach int main(). Jest to naprawdę główna funkcja programu, od którego zaczyna on działanie. W C++ możemy tworzyć podprogramy, które będą wykonywać określone czynności. Właśnie takie podprogramy nazywamy funkcjami.

Do funkcji podajemy parametry wejściowe > Następnie wykonuje się ciało funkcji > A następnie funckcja zwraca „wartość”. Możemy stworzyć funkcję, która wyświetli nam menu, a także taką która dokona obliczeń.

Główną funkcjonalnością funkcji jest możliwość wykorzystania jej w wielu miejscach w programie na różnych danych.

Wzrór ogólny funckji;

Typ_funkcji nazwa (zestaw parametrów formalnych)
{
Wnętrze funkcji;
}


Zestaw parametrów formalnych – może występować, kiedy do naszej funkcji wprowadzamy jakieś dane lub może być pusty.

Typ_funkcji nazwa(typ_prar1 nazwa_zmiennej1, typ_par2 nazwa_zmiennej2 … itd.) {
Wnętrze funkcji;
return zwraca nam wartość w przypadku funkcji z parametrami
}


Funkcję tworzymy pomiędzy przestrzenią nazw, a funkcją główną.

Aby wywołać funkcję należy podać jej nazwę i nawiasy, w zależności bez lub z parametrami. Np. funkcja().

W C++ występują dwa typy funkcji.

Funkcja, która nie zwraca wartości:

Typ_funkcji – void

Funkcje tego typu zazwyczaj nie mają parametrów. Jednak można ich użyć.

Przykładowy program zawierający funkcję typu void bez parametrów.

19.cpp


1: #include<iostream>
2: #include<conio.h>
3: #include<windows.h>
4:
5: using namespace std;
6:
7: void wizytowka()
8: {
9:      cout<<"Program wykonal: "<<endl;
10:      cout<<"Imie i nazwisko"<<endl;
11:      cout<<"Klasa"<<endl;
12:      cout<<"Adres zamieszkania"<<endl;
13: }
14:
15:
16: int main()
17: {
18:      cout<<"Pierwsze wywolanie funckji:"<<endl<<endl;
19:      wizytowka();
20:
21:      cout<<endl;
22:      cout<<"Drugie wywolanie funckji:"<<endl<<endl;
23:      wizytowka();
24:      getch();
25: }


Wynik działania programu:

Pierwsze wywolanie funkcji:

Program wykonal:
Imie i nazwisko
Klasa
Adres zamieszakania

Drugie wywolanie funkcji:

Program wykonal:
Imie i nazwisko
Klasa
Adres zamieszakania

Jak widzimy w linijkach 7 -13. mamy deklarację funkcji oraz jej ciało. Wywołanie funkcji następuje w linijkach 19. i 23.

Przykładowy program zawierający funkcję typu void z parametrami.

Teoretycznie nie powinno się stosować takiego programu, lecz trzeba pamiętać, aby nie nadużywać funkcji void z argumentami w szczególności, gdy ma wykonywać nam jakieś obliczenia. Funkcja ma być małym podprogramem uniwersalnym. Jeśli się uprzemy, to cały program możemy zamieścić w funkcji, a w main ją tylko wywołać. Jest to jednak mało praktyczne.

20.cpp


1: #include<iostream>
2: #include<conio.h>
3: #include<windows.h>
4:
5: using namespace std;
6:
7: void dana(int liczba)
8: {
9:      cout<<"Liczba, ktora jest parametrem ... "<<liczba<<endl;
10: }
11:
12:
13: int main()
14: {
15:      int iCyfra = 10;
16:      cout<<"Wywolanie funkcji void z parametrem"<<endl<<endl;
17:      dana(iCyfra);
18:
19:
20:      getch();
21: }


Wynik działania programu:

Wywolanie funkcji void z parametrem
Liczba, która jest parametrem … 10

Funkcja zwracająca wartość

Taka funkcja jest jednego z typów zmiennych np. int, float w zależności jakie dane ma zwracać. Możemy potraktować ją także jak void, ale znowu zaprzeczamy jej funkcjonalności. Funkcja tego typu musi zwracać dane najczęściej słowem kluczowym return.

Poniżej przykład prostego programu, który zsumuje dwie liczby i zwróci wynik do programu.

21.cpp


1: #include<iostream>
2: #include<conio.h>
3: #include<windows.h>
4:
5: using namespace std;
6:
7: int suma(int liczba1, int liczba2)
8: {
9:      return liczba1+liczba2; //zwraca wartosc sumy dwoch liczb
10: }
11:
12: int main()
13: {
14:      int iCyfra1 = 10;
15:      int iCyfra2 = 5;
16:      cout<<"Suma dwoch liczb: "<<endl;
17:      cout<<suma(56, 3);
18:
19:      cout<<endl;
20:      cout<<"Suma dwoch liczb w zmiennych: "<<endl;
21:      cout<<suma(iCyfra1, iCyfra2);
22:
23:      getch();
24: }


Wynik działania programu:
Suma dwoch liczb:
59
Suma dwoch liczb w zmiennych:
15


Jak widzimy do funkcji możemy przenieść zarówno liczby bez zmiennej, jak i liczby w zmiennych. Typ funkcji musi być odpowiedni do liczb. Błędem jest do funkcji typu int wprowadzać wartości float, gdyż typ zwracany będzie int.

Zadania
17. Napisz program, który będzie dodawał trzy liczby podane przez użytkownika w funkcji.
© Mateusz Ratajczak         www.commitcode.pl