Funkcje - Część Druga

2016-04-03 00:02
Jacek Labudda
												

1. Krótkie wprowadzenie

Aby przejść do dalszej części kursu musimy zapoznać się z nowym słowem kluczowym return. Return(z ang. powrót) zwraca wartość danej funkcji. I teraz powracając do poprzedniej lekcji - co to jest 'zwracany typ danych'. Otóż w przypadku, gdy funkcja będzie zwracała jakąś wartość np. liczbę całkowitą, to przy deklaracji nie możemy nadawać typu void tylko int w ostateczności float albo double, ale polecam używać typu zwracanego. Więc co takiego może zwracać nam return? Np. wyniki z obliczeń matematycznych, ciągi znaków itp.:
int pokaz_wynik() { int zmienna1 = 10; int zmienna2 = 5; return zmienna1 + zmienna2; }
Aby wyświetlić naszą funkcję pokaz_wynik, posłużymy się poleceniem cout. Cały kod wygląda następująco:
#include <iostream> using namespace std; // deklarowanie funkcji ktorej zwracanym typem danych jest liczba calkowita int pokaz_wynik() { int liczba1 = 10; int liczba2 = 5; return liczba1 + liczba2; } int main() { // wypisanie wartosci funkcji 'pokaz_wynik' wewnatrz funkcji 'main' cout << pokaz_wynik() << endl; return 0; }

2. Argumenty funkcji

Działania na funkcjach ukazanych powyżej są nieopłacalne na dłuższą metę. Musimy tworzyć funkcję w taki sposób byśmy mogli z niej korzystać wiele razy i mogły zwracać różne wartości. W tym przypadku wykorzystujemy argumenty(o których także wspomniałem wcześniej).

2.1. Deklaracja argumentów

Argument może mieć postać zmiennej lub stałej. Ilość takich argumentów jest nieograniczona. Podczas deklarowania przez nas funkcji w jej argumentach musimy zadeklarować typ oraz nazwę zmiennych, które będziemy definiować w dalszej części programu.
// deklarowanie funkcji z argumentem int ustaw_wartosc(int war1, int war2) { return war1 + war2; }

2.2. Definicja argumentów

Aby nadać zmiennej war wartość, musimy podczas wykonywania funkcji w argumencie podać dowolną wartość(w tym przypadku liczby całkowitej).
cout << ustaw_wartosc(10, 5) << endl; cout << ustaw_wartosc(10, -20) << endl; cout << ustaw_wartosc(53, 132) << endl;
Jak widzimy możemy wykonywać naszą funkcję w nieskończoność. A spróbujmy wykonać podobne zadanie na ciągach znaków:
// deklarowanie funkcji z argumentem string ustaw_wartosc(string war1, string war2) { return war1 + war2; } int main() { cout << ustaw_wartosc("Witaj", " swiecie.") << endl; cout << ustaw_wartosc("Lubie", " placki.") << endl; return 0; }

3. Czy to wszystko?

To jeszcze nie wszystko, ale nie mogę wszystkiego umieścić w jednej lekcji i na pewno do funkcji jeszcze wrócimy w najbliższych lekcjach. A teraz na podstawie powyższego przykładu możemy pisać nasze programy lepiej, szybciej i z większą czytelnością. Np. Kalkulator::
//przyklad najbardziej uprostrzonej wersji #include <iostream> using namespace std; double pokaz_wynik(double war1, char znak, double war2) { if(znak == '+') return war1 + war2; if(znak == '-') return war1 - war2; if(znak == '*') return war1 * war2; if(znak == '/') return war1 / war2; } int main() { cout << pokaz_wynik(10, '+', 2) << endl; cout << pokaz_wynik(10, '-', 2) << endl; cout << pokaz_wynik(10, '*', 2) << endl; cout << pokaz_wynik(10, '/', 2) << endl; return 0; }
Na pewno jeszcze wrócimy do funkcji, bo są naprawdę ważne. Już w najbliższych lekcjach gdy będziemy uczyli się tworzyć klasy, to znajomość funkcji będzie niezbędna.

Użytkownicy
Logowanie:
Zaloguj
Polub nas na facebooku
Wyszukiwanie na stronie