Skip to content

2. Przykładowe funkcje

jackflower edited this page Nov 15, 2019 · 8 revisions

Przykłady funkcji

Bardzo często, na etapie poznawania języka programowania, jego nauki - zadajemy podstawowe pytanie:

"Kiedy zachodzi potrzeba tworzenia funkcji? Skąd programista wie, że warto taką funkcję utworzyć?"

Pomyśl, że funkcja to taki "mały program" - podprogram, który możemy wielokrotnie używać (wykonywać kod, tym samym korzystać z funkcjonalności tego kodu - funkcji). Jeśli przewidujemy w naszym programie (aplikacji, serwisie, stronie internetowej, bazie danych, pozostałych obszarach związanych z programowaniem), że pewne "czynność" nasz program będzie wykonywał wielokrotnie - tworzymy funkcję.

Na przykład, jeśli w naszym programie wielokrotnie będziemy obliczali ładowność, bo piszemy program do zarządzania środkami transportu - wtedy tworzymy taką funkcję.

Poniżej przykłady funkcji wraz komentarzem.

Język C/C++

Zadanie

Napisz funkcję, która zamieni wartość zmiennej (parametr funkcji), w taki sposób, że po jej wykonaniu zmienna jako argument funkcji będzie powiększona dwa razy. Przyjmij założenie, że operujemy na liczbach całkowitych.

Na pierwszy rzut oka wydaje się, że zadanie jest trudne. Mamy w jego treści sporą ilość nowych pojęć. Tłumacząc to zadanie na język "ludzki" moglibyśmy sformułować zadanie inaczej.

Utwórz "magiczną" skrzynką. Nadaje jej nazwę, która będzie odzwierciedlała to co ona robi oraz określ listę parametrów, które do niej "wchodzą". Do tej skrzynki "wchodzi" zmienna (argument), a wychodzi z niej dwa razy większa.

deklaracja

///
///Funckja podwaja wartość parametru
///
///@param value - wartość
///
void doubling(int & value);

implementacja

//Funckja podwaja wartość parametru
void doubling(int & value)
{
	value = value * 2;
}

W języku C/C++ przed nazwą funkcji musimy podać typ zwrotny. W powyższym przykładzie jest to typ void (ang. pusty, próżny). Należy to rozumieć, że nasza funkcja doubling nie zwraca żadnej wartości (zwraca nic (void)). Pewnie zastanawiasz się dlaczego w nawiasie, po prawej stronie funkcji, pomiędzy typem parametru int, a nazwą parametru value, jest znak

&

(ang. ampersand) - operator adresu).

Taki zapis informuje, że do funkcji "wchodzi" oryginał zmiennej (poprzez podanie referencji /przezwiska/ - adresu pamięci, pod którym zapisano wartość zmiennej.

Taki zapis spowoduje, że w ciele funkcji zawartej pomiędzy nawiasami klamrowymi, podwajamy oryginał zmiennej, czyli realizujemy założenia funkcjonalności, jaką nasza funkcja ma posiadać. Gdyby nie było operatora adresu &, pomimo tego, że mnożymy przez 2 wartość argumentu, po zakończeniu działania funkcji pozostałby on bez zmian. Czyli pracowaliśmy na kopii.

Pamiętaj - jeśli w deklaracji funkcji przed nazwą parametru napiszesz znak &, oznacza to, że pracujesz na oryginale. W przeciwnym wypadku pracujesz na kopii.

Testy

	int liczba = 10;
	doubling(liczba);//wywołanie funckji z argumentem o wartości 10
	//po wykonaniu funkcji zmienna liczba będzie miała wartość 20

Język Python

Gdyby chcieć Utworzyć e języku Python funkcję o takiej samej funkcjonalności jak ta powyższa musielibyśmy podejść do tematu odrobinę inaczej. Zrealizujemy to w późniejszym czasie.

Pamiętaj, że języku Python nie ma typowania funkcji ani zmiennych.

Zadanie

Napisz funkcję w języku Python, która na podstawie dwóch parametrów zwróci ich średnią arytmetyczną.

"""
Funkcja zwraca średnią arytmetyczną
"""
def average(a, b):
    #return ((a+b)/2)
    return ((a + b) * 0.5)
    pass

Zwróć uwagę, że zamiast dzielenia wykorzystałem mnożenie przez odwrotność. Wiemy, że dzielenie, jako działanie arytmetyczne nie jest wykonalne jeśli dzielnik jest równy zero.

Clone this wiki locally