Skocz do zawartości

5. Funkcje


# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Znowu polecam kurs c++ ponieważ funkcje w autoit prezentują się tak samo jak w c++

 

Funkcja co to takiego. Z matematyki wiemy że funkcja to przyporządkowanie, w którym każdemu argumentowi ze zbioru X przypada jedna wartość funkcji ze zbioru Y. W autoit jest podobnie, ale to nie to samo. Ogólnie przyjmuje się w programowaniu, że funkcja to fragment kodu który można powtarzać wiele razy, bez ponownego przepisywania go. Funkcje mogą też przyjmować argumenty i zwracać wartości dzięki czemu są podobne trochę do matmy. Jedną z funkcji którą już poznaliśmy jest MsgBox. Pamietacie?

MsgBox(0,"Tytuł","Wiadomość")
Jak widzicie funkcja ta przyjmuje argumenty- 0,"Tytuł","Wiadomość. Zwraca ona także jaki przycisk wcisnął użytkownik.

 

AutoIT oferuje kilkadziesiąt gotowych funkcji (m.in. MsgBox), które będziemy poznawać w najbliższym czasie, jednak każdy z nas może stworzyć (zadeklarować) własną funkcje która może przyjmować argumenty i zwracać wartości. Zaczniemy jednak od najprostszych funkcji, które nie przyjmują żadnych argumentów i nic nie zwracają. Składania takich funkcji wygląda tak

Func DowolnaNazwaFunkcji()
...Instrukcje...
EndFunc
Zróbmy np. funkcje która policzy nam do 10 i zakońączy się.

Func Liczydlo()
For $x=1 To 10 Step +1
MsgBox(0,"Liczydło",$x)
Next
EndFunc
Jeśli wpisalibyśmy ją teraz do SciTE editora i skompilowali program to nic się nie stanie. Pytanie dlaczego? Bo do funkcji trzeba się odwołać, żeby się wykonała. Dopiszmy więc na początku programu odwołanie:

Liczydlo()
Teraz funkcja już działa, program liczy do 10 i po tym kończy się. Po co więc to odwołanie? Otóż do funkcji możemy odwołać się wielokrotnie:

Liczydlo()
MsgBox(0,"Liczydło","liczymy jeszcze raz <img src='http://www.cshacked.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.png' class='bbc_emoticon' alt=':D' />")
Liczydlo()

 

Wiemy już trochę o funkcjach jednak to jeszcze nie wszystko. Kontynuujemy wiec. Jak już mówiłem/pisałem na początku funkcja może przyjmować argumenty i może także coś zwracać(nie kojarzyć z wymiotowaniem ). Zaczniemy od argumentów. Jest to nic innego jak ładowanie do funkcji danych. Wytłumaczę na przykładzie:

Liczydlo(10)
MsgBox(0,"Liczydło","Policzmy jeszcze raz do 5")
Liczydlo(5)

Func Liczydlo($LiczbaKoncowa)
For $x=1 To $LiczbaKoncowa Step +1
MsgBox(0,"Liczydło",$x)
Next
EndFunc
By podać argument dla funkcji po prostu podajemy go przy odwołaniu w nawiasie. Przy deklaracji podajemy go jako zmienną. Argumentów może być kilka(oddzielamy je przecinkiem zarówno w odwołaniu jak i w deklaracji). Funkcja może przyjmować także argumenty domyślne (czyli takie których nie trzeba podawać przy odwołaniu). Robimy je przy deklaracji dodając do zmiennej znak = i przypisując jej po tym znaku wartość domyślną:

Liczydlo()
MsgBox(0,"Liczydło","Policzmy jeszcze raz do 5")
Liczydlo(5,"Tytuł")

Func Liczydlo($LiczbaKoncowa = 10, $TytulMsgBox = "Liczydło")
For $x=1 To $LiczbaKoncowa Step +1
MsgBox(0,$TytulMsgBox,$x)
Next
EndFunc

 

Nom teraz zostało nam już tylko zwracanie wartości. Czasami zachodzi taka potrzeba by funkcja zwróciła nam jakąś wartość. Wtedy dopisujemy w deklaracji funkcji komendę Return. Podam nowy przykład, bo nie pasuje mi return do poprzedniego przykładu:

MsgBox(0,"Większa liczba","Program sprawdza która z dwóch liczb jest większa.")
$liczba1=InputBox("Pierwsza liczba","Podaj pierwszą liczbę")
$liczba2=InputBox("Druga liczba","Podaj drugą liczbę")
$max=max($liczba1,$liczba2)
MsgBox(0,"Większa liczba","Większa jest liczba "&$max)

Func max($x, $y)
    If $x > $y Then
        return $x
    Else
        return $y
    EndIf
EndFunc
Nie wiecie pewnie co to za funkcja InputBox. Zwraca ona wartość wpisaną w pole input. Resztę możecie wyczytać w helpie. Za to nasza funkcja max($x,$y) zwraca większą liczbę. Myślę, że po tym przykładzie już wiecie o co chodzi. To na tyle.

 

Co powinniście wiedzieć po tej lekcji.

- Co to jest funkcja, jak się ją deklaruje ,jak się do niej odwołuje.

- Co to są argumenty funkcji i co zwraca.

- Co to jest funkcja InputBox

Pozdrawiam,

Yubasek.

Odnośnik do komentarza

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności