Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Sponzorem soutěže je:
Kdo lektoruje pražský letní workshop v ZOO a Botanické zahradě?
V dnešní soutěži hrajeme o:

Delphi
Naučte se programovat v Delphi (6. díl) - Operátory, funkce a procedury
28. srpna 2001, 00.00 | Operátory, procedury a funkce jsou základní kameny Object Pascalu. Dnes si nejdříve vysvětlíme operátory a potom funkce a procedury a rozdíl mezi nimi.
Operátory, procedury a funkce jsou základní kameny Object Pascalu. Dnes si nejdříve vysvětlíme operátory a potom funkce a procedury a rozdíl mezi nimi.
Operátory
Operátory jsem již v některých příkladech použil a teď bych je rád vysvětlil. Operátory se používají k přiřazování, porovnávání, sčítání, násobení ... výrazů. Výraz je proměnná, záporná hodnota promněnné, ale i tento sled promněnných (4+5)*8. Pokud operátor pracuje s jedinnou hodnotou, nazívá se unární.
Přiřazení
Operátor přiřazení jsme poznali v předchozím díle. Tento operátor přiřazuje (Assign) hodnotu určité promněnné. Operátor přiřazení se skládá ze dvou znaků : a =. Pozor! Ne opačně.
|
Předchozí tabulka demonstruje použití operátoru přiřazení. K proměnné můžeme přiřadit jen hodnotu jejího typu. Tzn. že k proměnné typu integer můžeme přiřadit jen celé číslo. Kdybychom chtěli k proměnné typu string přiřadit číslo 123456, museli bychom ho přetypovat. V tomto případě fcí IntToStr().
Matematické operátory
Matematické, neboli početní výrazy, jsou výrazy, ve kterých se deje nějaká početní operace. Např. dělení, násobení, sčítání, odčítání apod. Matematické operátory jsou tyto:
- + sčítání
- - odčítání
- * násobení
- / dělení
- div celočíselné dělení
- mod dělení modulo
Funkce prvních čtyř operátorů je jasná. Pozor ale na prioritu, ta je stejná jako v matematice, ale pokud si jí nejste jisti, používejte závorky.
|
Ještě existuje operátor div a mod. Používají se stejně jako obyčejné dělení (/), ale operátor div vrací výsledek delení beze zbytku a operátor mod vrací ten zbytek.
|
Logické operátory
Logické operátory jsou operátory, které při součtu dvou výrazů vrací hodnotu true nebo false. Tyto typy operátorů se nejčastěji používají při řízení toku programu (v cyklech, podmínkách....). Mezi tyto operátory patří =, <, >, <=, >= a operátory exkluzivniho bitového součtu AND, OR a XOR. Následující tabuka ukazuje možnosti logických operátorů mimo AND, OR a XOR, o těch až později.
|
Zdá se vám to složité? První tři příkazy zapíší do proměnné e typu boolean hodnotu true a poslední dva false. Jak už jsem zmiňoval, logické operátory se používají také při řízení toku programu. Jedním z nejčastějčích mít použití logických operátorů jsou bezesporu podmínky. Ale o tom až přístě.
Operátory AND a OR berou za argumenty jen booleovské výrazy a vrací booleovské hodnoty true nebo false.
|
Tento výraz by vrátil hodnotu true pokud by tlačítka Button1 a Button2 byly viditelné. Kdybychom použili operátor OR, tak by nám stačilo, aby bylo viditelné jen jediné tlačítko. Funkci operátorů AND a OR asi nejlépe pochopíte z následující tabulky.
|
Operátor OR vrací hodnotu false jen tehdy, když jsou oba dva výrazy false. Existuje jestě jeden operátor - XOR. To je vlastně "exkluzivní" OR, protože při rovnosti dvou výrazů vrací vždy hodnotu false.
|
Funkce
Funkce je vlastně blok příkazů uzavřených mezi begin a end; + proměnné. Funkce může mí jeden, ale i několik argumentů a její tělo deklarujeme v sekci implementation. Delkarace funkce vypadá takto.
|
Ve skutečnosti funkci deklarujeme bez háčků a čárek. Předchozí tabulka by nebyla funkční. Funkci použijeme takto.
|
Jsou dva typy fcí. Fce může být volána hodnotou (call by value) a neovlivní se tak původní proměnná, nebo valána odkazem (call by reference) a to se může změnit původní proměnná.
Procedura
Co je procedura? Procedura je vlastně funkce bez návratové hodnoty. Proč ještě procedury? Proč nestačí jen funkce? Procedura slouží k tomu, abyste mohli jedním příkazem vykonat celý blok příkazů uzavřených v proceduře. Procedura se deklaruje skoro stejně jako funkce, ale nemá návratovou hodnotu a místo klíčového slova function se používá slovo procedure. Procedury se hodně používají pro obsluhy událostí komponent. Příklad jedné procedury najdete v následující tabulce.
|
Mezi delkarací procedury (procedure Someproc;) a klíčovým slovem begin se deklarují lokální proměnné, konstanty, funkce a procedury. Lokální proměnné a konstanty jsme již poznali. I když není použití lokální procedury/funkce tak časté měli bysme si ho zmínit.
|
V tomto případě se z fce f1 volá lokální fce f2. Lokální znamená to, že neni vyditelný z venčí.
|
Posledním pojmem, který bych zde chtěl zmínit je rekurze. Rekurze je volání sebe samého. Při rekurzi je nutné použít alespoň podmínku, aby bylo možné ukončit cyklus, jinak by jsme mohli vytvořit nekonečnou smyčku.
|
Příště
Příšte si něco povíme o řízení toku programu.




