Ogłoszenie

Aktualnie pracujemy nad:

Zadaniami pobocznymi do modyfikacji Bandyta

Czy wiesz, że...


#1 2010-08-04 02:02:11

 Vayurax

Szef NGT

8211480
Call me!
Skąd: Katowice
Zarejestrowany: 2009-04-04
Posty: 1495
Punktów :   28 
Opis: Szef New Gothic Team
Profesja: Wszechstronny modder
Team: New Gothic Team
: I'm crazy
: And I like myself
WWW

Skrypterem być - rozdział 7. "Funkcje"

Standardowo wyjaśnimy sobie czym jest obiekt naszych dzisiejszych rozważań i z czym się to je. Tak więc czym jest funkcja ogólnie chyba wiemy. Na przykład telefony w XXI wieku mają wiele funkcji typu aparat, dyktafon, GPS, Internet, radio. Korzystamy z tych funkcji wielokrotnie, prawda? Jednak w programowaniu funkcja jest czymś innym.

Funkcja - to instrukcje, które mogą być wykonane z różnymi parametrami i przeważnie służą określonemu celowi.

Może nie jest to najlepsza definicja funkcji, jaką można sobie wymarzyć, jednak tyle powinno nam wystarczyć. Teraz posłużmy się przykładem z Gothic'a. Wielokrotnie grając wymienialiśmy się z postaciami złotem. Za każdym razem, gdy ktoś dał nam złoto, lub gdy my daliśmy je komuś wywoływana była specjalna funkcja, która edytowała ilość złota u obu postaci i wyświetlała na ekranie odpowiedni napis.

No dobrze, więc jak zadeklarować własną funkcję?

func Typ Nazwa()
{
//Instrukcje
};

Znamy ten schemat, co nie? A więc zadeklarujmy sobie jakąś funkcję.

func void Funkcja1()
{
Print("Funkcja została wywołana!");
};

No tak, ale co robią typy w funkcjach? Pamiętamy, że zmienna przechowywała wartość danego typu, jednak funkcja nie przechowuje wartości! Otóż funkcja może zwracać wartość, a typ funkcji odpowiada typowi zwracanej przez nią wartości. Ma sens, co nie? Do zwrócenia wartości służy słowo kluczowe return. Jak możemy się domyśleć pusty typ danych - void nie zwraca żadnej wartości.


func void Funkcja2()
{
Print(IntToString(2+Funkcja3());
};

func int Funkcja3()
{
return 2;
};

A więc co się stanie, jeśli umieścimy gdzieś takie wywołanie funkcji?

Funkcja2();

Wypisze ona na ekranie 4. Dlaczego? Wywołujemy funkcję Funkcja2, która wypisuje na ekranie 2 + wartość zwracaną przez funkcję 3 - również 2.


Czy to koniec możliwości funkcji? Ależ nie, przecież to na nich opiera się programowanie, a zwłaszcza programowanie skryptów do gier! Funkcje mają także parametry. Parametry to pewne dane wejściowe dla funkcji. Podajemy je w nawiasie zaraz za nazwą funkcji tak samo, jak deklarujemy zmienne - ponieważ parametry są zmiennymi. Nasze dwie funkcje mogłyby wyglądać następująco:

func void Funkcja2(var int i)
{
Print(IntToString(i+Funkcja3());
};

func int Funkcja3()
{
return 2;
};

Teraz funkcję wywołamy na przykład w ten sposób:


Funkcja2(5);

Oczywiście w miejsce '5' wstawić możemy dowolną liczbę - wpłynie ona na wynik wywołania funkcji, więc jest ona już interaktywna. Na razie to by było na tyle, do przeczytania ;)

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
http://emmi-shop.online bateria umywalkowa elfanespaniol ciechocinek turnus rehabilitacyjny