Programovanie makier v LibreOffice: Operátory (1)

LO.png Doteraz sme prebrali úctyhodne základy programovania v jazyku Visual Basic uspôsobený pre LibreOffice. Avšak, nie veľmi podrobne sme rozobrali binárne a unárne operátory. Okrajovo sme ich už spomínali v príkladoch alebo v teórii, ale myslím si, že začiatočník ocení nejaké okomentovanie tejto problematiky. Chcel by som v dvoch troch článkov vysvetliť tieto typy operátorov a následne niektoré aplikovať i do praktických príkladov.  

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 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 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 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 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ý. 

(Jako ve škole) Průměr: 1.00 | Hodnotilo: 3
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
 
 
woo jaw demo hz