Teoria programowania: Funkcje

article-thumbnail

Opis

Funkcje to części kodu, które wykonują ustalone czynności po ich wywołaniu. Te czynności są tylko wykonywane wtedy, kiedy zostanie wywołana dana funkcja. Tworzenie funkcji w kodzie pozwala zautomatyzować wykonywanie pewnych, powtarzających się czynności (i tym samym zmniejszyć ilość kodu).

Lwia część języków umożliwia obecnie definiowanie własnych funkcji / metod, czyli zbioru czynności który możemy zdefiniować poza główną strukturą programu i wywołać ją zarówno w głównej strukturze programu jak i w innej funkcji/metodzie. W niektórych językach przyjmuje się zapis funkcji za pośrednictwem camelCase.

Przykładowa funkcja:

 void funkcjaWypisz(){			
    Wypisz "Podaj liczbę."; 	// nie zwraca wartości;
  }

Rodzaje funkcji

Funkcje często dzielimy na te niezwracające wartości, tj. void i zwracające wartości liczbowe (zapoczątkowane nazwą zmiennej).

W funkcjach możemy definiować zmienne wejściowe, które są wykorzystywane w danej funkcji/metodzie. Wpisujemy je do nawiasu, który kończy funkcję, definiując je wewnątrz funkcji. Kiedy wywołujemy funkcje, nie możemy definiować typu zmiennej wewnątrz wywołania funkcji (czyli w nawiasie).

Wywoływanie funkcji w funkcji głównej

  void funkcjaWypisz(){			// funkcja funkcjaWypisz	
    Wypisz "Podaj liczbę."; 		// nie zwraca wartości;
  }
  
  int matSzescian(int x){		// funkcja matSzescian
    x = x*x*x;				// wykonuje obliczanie sześcianu;
    return x;				// zwraca wartość x;
  }
  
  int Main(){				// funkcja główna;
    funkcjaWypisz();			// wypisuje "Podaj liczbę";
    int a; Wpisz a;
    Wypisz matSzescian(a);		// wypisuje wynik funkcji;
  }

By pokazać wywołanie jakiejś części programu zdefiniowanej odrębnie, używamy bloku wywołania podprogramu, który jest ukazany w postaci prostokąta zawartego w szerszym prostokącie.

Wywołanie funkcji w funkcji głównej:

Rekurencja

Zjawisko wywoływania metody w tej samej metodzie nazywamy rekurencją. Za pośrednictwem rekurencji możemy między innymi zrealizować obliczanie silni.

Obliczanie silni:

  int matSilnia(int x){
  		if ( x == 0 || x == 1 ) x = 1;	// warunek silni
  		else x = x * matSilnia(x-1);
  }
  
  int Main(){					// funkcja główna
    int liczba;
    Wpisz liczba;			// wpisujemy liczbę
    matSilnia(liczba);			// wypisuje silnię danej liczby
  }
  
  /* rekurencja tworzy kolejne odwołania do funkcji, w których wartość x jest dekrementowana, 
  aż do momentu w którym x będzie równe 1, wtedy to nastąpi warunek silni */

Autor tekstu: Jacek Woźniak