S operátormi sa stretávate snáď v každom napísanom makre. Operátory delíme na unárne a binárne. Samotné binárne sa ešte ďalej delia na aritmetické, relačné, logické a bitové. Prejdeme si jednotlivé kategórie operátorov a ak bude potrebné, ukážeme i príklad.
Unárne operátory
Medzi unárne operátory radíme tri operátory.
Prvý operátor je NOT. Už z článku viete, že je to negácia logického operátoru. Inak povedané, ak premenná je true, tak sa stane false a naopak.
Druhý operátor je predné znamienko + a tretí operátor predné znamienko -. Druhý a tretí operátor nás nebude zaujímať, Pozrieme sa v príklade na operátor NOT.
1. príklad: Použitie operátora NOT v jednoduchom programe
Sub exampleNOT Dim isBoolean As Boolean isBoolean = false MsgBox NOT isBoolean End Sub
Výsledok makra
Binárne operátory
Medzi binárne operátory ako sme hovorili, patria aritmetické, relačné, logické a bitové operátory. Hranica medzi logickými a bitovými operátormi nie je až taká jednoduchá na pochopenie a preto ich budeme považovať ako spoločnú skupinu. Tak poďme si ich predstaviť.
Medzi aritmetické operátory patria:
- Operátor + znamená numerické sčítanie alebo spája reťazce.
- Operátor – znamená numerické odčítanie.
- Operátor * znamená násobenie.
- Operátor / znamená numerické delenie.
- Operátor \ znamená celočíselné delenie.
- Operátor ^ znamená umocňovanie.
- Operátor MOD znamená numerické delenie so zvyškom.
- Operátor & spája reťazce.
Relačné operátory:
- Operátor < znamená menší ako.
- Operátor > znamená väčší ako.
- Operátor <= znamená menší alebo rovný ako.
- Operátor >= znamená väčší alebo rovný ako.
- Operátor <> znamená nerovnosť.
Logické (a bitové) operátory:
- Operátor AND znamená logický súčin.
- Operátor OR znamená logický súčet.
- Operátor XOR znamená exkluzívny logický súčet.
- Operátor EQV znamená ekvivalenciu.
- Operátor IMP znamená implikáciu.
2. príklad: Využitie + miesto & na spájanie reťazcov a premenných
Sub example MsgBox "Jupiter je najväčšia planéta v Slnečnej sústave." & Chr(10) + "Divne počasie je dnes vonku, brrr!" End Sub
Výsledná činnosť makra
3. príklad: Experimenty s umocňovaním
Sub example MsgBox "7^2: " & 7^2 & Chr(10) & "-7^2: " & -7^2 & Chr(10) & "7^-2: " & 7^-2 & Chr(10) & "7^2^2: " & 7^2^2 & Chr(10) & "7^0.2: " & 7^0.2 & Chr(10) & "7^-0.2: " & 7^-0.2 & Chr(10) & "-(7^2): " & -(7^2) & Chr(10) End Sub
Výsledná činnosť makra
4. príklad: Ukážka na operátor MOD
Sub example Dim prvy() Dim druhy() Dim retazec As String Dim i As Integer prvy() = Array(10,7,5.1,-11,77,125,0.99) druhy() = Array(4, 77, 45, 4, 5.1, -4.7, 12) For i = LBound(druhy()) To Ubound(prvy()) REM cyklus retazec = retazec & prvy(i) & " MOD " & druhy(i) & " = " & prvy(i) MOD druhy(i) & CHR(10) REM tu skúšame operátor MOD Next MsgBox retazec REM vypíšeme na obrazovku End Sub
Výsledok makra
Rozbor makra: Vytvoríme si dve polia. Do nich vložíme rôzne čísla. Následne cez cyklus For vypočítame zvyšok po delení z čísel. Zaujímavosťou je, že v cykle budeme potrebovať stále uložiť reťazec, aby sa nám nestratil v ďalšej iterácii. Naše riešenie zabezpečí, že celý reťazec ostane bez úhony.
Prvú časť o operátoroch máme za sebou. Dúfam že vám článok pomohol sa zorientovať. Ako vidíte, postupom času v seriáli sa môžem vrátiť na už spomenuté témy a výstižnejšie ich vysvetliť v kontexte aktuálnej témy. Ja razím cestu, že sú dôležité veľa príkladov z každej strany, než nalinkovaný obsah teórie, podľa ktorého sa treba striktné držať. Iste, mám v pláne časom dôjsť aj na zaujímavejšie oblastí makier, o ktoré je zvýšený záujem, napríklad písanie makier pre LibreOffice Calc. Ostaňte zatiaľ naladený.