Použitie premenných
Následujúca časť popisuje základné použitie premenných v LibreOffice Basic.
Konvencie pre pomenovanie identifikátorov premenných
Názov premennej môže obsahovať maximálne 255 znakov. Prvý znak názvu premennej musí byť písmeno A-Z alebo a-z. V názve premennej je možné taktiež použiť čísla, ale interpunkčné a špeciálne symboly nie sú povolené, s výnimkou podtržníka ("_"). V LibreOffice Basic nezáleží na veľkosti písmen v názvoch premenných. Názvy premenných môžu obsahovať medzery, ale v tom prípade musia byť uzatvorené do hranatých zátvoriek.
Príklad pre mená premenných:
MyNumber=5 'Correct'
MyNumber5=15 'Correct'
MyNumber_5=20 'Correct'
My Number=20 'Not valid, variable with space must be enclosed in square brackets'
[My Number]=12 'Correct'
DéjàVu=25 'Not valid, special characters are not allowed'
5MyNumber=12 'Not valid, variable may not begin with a number'
Number,Mine=12 'Not valid, punctuation marks are not allowed'
Deklarácia Premenných
V LibreOffice Basic nemusíte premenné explicitne deklarovať. Deklaráciu premennej je možné previesť príkazom Dim. Jedným príkazom je možné deklarovať niekoľko premenných, stačí oddeliť názvy čiarkou. Ak chcete definovať typ premennej, použite po názve buď znamienko typovej deklarácie alebo zodpovedajúce kľúčové slovo.
Príklady pre deklaráciu premenných:
Dim a$ 'Declares the variable "a" as a String'
Dim a As String 'Declares the variable "a" as a String'
Dim a$, b As Integer 'Declares one variable as a String and one as an Integer'
Dim c As Boolean 'Declares c as a Boolean variable that can be TRUE or FALSE'
Akonáhle v deklarácii priradíte premennej určitý typ, nie je už možné deklarovať premennú rovnakého názvu ako iný typ!
Vynútenie deklarácie premenných
Ak chcete, aby každá premenná bola deklarovaná, použite nasledujúci príkaz:
Option Explicit
Príkaz Option Explicit musí byť na prvom riadku modulu, pred prvým SUB. Všeobecne je potrebné explicitne deklarovať iba pole. Všetky ostatné premenné sa deklarujú podľa znaku typovej deklarácie alebo (ak je vynechaný) ako implicitný typ Single.
Typy premenných
LibreOffice Basic podporuje štyri typy premenných:
-
Premenné typu Numeric môžu obsahovať číselné hodnoty. Niektoré premenné sa používajú na ukladanie veľkých alebo malých čísel, iné pre čísla s plávajúcou desatinnou čiarkou.
-
Premenné typu String obsahujú znakové reťazce.
-
Logické premenné typu obsahujú hodnotu TRUE alebo FALSE.
-
Premenné typu Object môžu obsahovať objekty rôznych typov, napríklad tabuľky alebo dokumenty.
Premenné typu Integer
Premenné typu Integer (celé čísla) môžu byť v rozsahu od -32768 do 32767. Pokiaľ celočíselnej premenné priradíte hodnotu s desatinnou čiarkou, zaokrúhli sa na najbližšie celé číslo. S celočíselnými premennými sa počíta veľmi rýchlo a sú vhodné pre počítadlá v slučkách. Premenná typu integer vyžaduje v pamäti iba dva bajty. Znak typovej deklarácie je "%".
Dim Variable%
Dim Variable As Integer
Premenné typu Long Integer
Premenné typu Long Integer (dlhé celé čísla) môžu byť v rozsahu od -2147483648 do 2147483647. Pokiaľ dlhej celočíselnej premennej priradíte hodnotu s desatinnou čiarkou, zaokrúhli sa na najbližšie celé číslo. S dlhými celočíselnými premennými sa počíta veľmi rýchlo a sú vhodné pre počítadlá v slučkách pre veľké hodnoty. Premenná typu Long Ingteger vyžaduje v pamäti štyri bajty. Znak typovej deklarácie je "&".
Dim Variable&
Dim Variable As Long
Desatinné premenné
Premenné typu Float môžu obsahovať kladné alebo záporné čísla s presnosťou až na 29 desatinných miest.
Ako prefix desatinných čísel môžete použiť znaky plus ( ) alebo mínus (-) (s medzerami alebo bez).
Pokiaľ priradíte desatinné číslo do celočíselnej premennej, LibreOffice Basic zaokrúhli číslo nahor alebo nadol.
Premenné typu Single
Premenné typu Single môžu obsahovať kladné či záporné hodnoty v rozsahu od 3.402823 x 10E38 do 1.401298 x 10E-45. Premenné Single sú premenné v pohyblivej rádovej čiarke, kde sa počet desatinných miest znižuje pri zvyšovaní počtu miest celej časti. Premenné Single sú vhodné pre matematické výpočty strednej presnosti. Výpočty sú náročnejšie ako pri celočíselných premenných, ale sú rýchlejšie ako výpočty s premennými Double. Premenná typu Single vyžaduje v pamäti štyri bajty. Znak typovej deklarácie je "!".
Dim Variable!
Dim Variable As Single
Premenné typu Double
Premenné typu Double môžu obsahovať kladné či záporné hodnoty v rozsahu od 1.79769313486232 x 10E308 do 4.94065645841247 x 10E-324. Premenné Double sú premenné s pohyblivou rádovou čiarkou, kde sa počet desatinných miest znižuje pri zvyšovaní počtu miest celej časti. Premenné Double sú vhodné pre presné matematické výpočty. Výpočty sú náročnejšie než pre premenné Single. Premenná typu Double vyžaduje v pamäti osem bajtov. Znak typovej deklarácie je "#".
Dim Variable#
Dim Variable As Double
Premenné typu Currency (mena)
Premenné typu Currency (mena) sa interne ukladajú ako 64bitové čísla (8 bajtov) a zobrazujú sa s pevným počtom desatinných miest - 15 miest v celej časti a 4 desatinné miesta. Rozsah hodnôt je od -922337203685477.5808 do 922337203685477.5807. Premenné Currency sa používajú pre výpočty s menami s vysokou presnosťou. Znak typovej deklarácie je "@".
Dim Variable@
Dim Variable As Currency
Premenné typu String
Premenné typu String môžu obsahovať reťazce dĺžky až 65 535 znakov. Každý znak je ukladaný v zodpovedajúcej Unicode hodnote. Premenné String sú vhodné pre spracovanie slov v programoch a dočasné ukladanie netlačiteľných znakov až do maximálnej dĺžky 64 KB. Pamäť potrebná pre uloženie premennej String závisí od počtu znakov v premennej. Znak typovej deklarácie je "$".
Dim Variable$
Dim Variable As String
Logické premenné
Logické premenné môžu obsahovať iba dve hodnoty: TRUE alebo FALSE. Číslo 0 sa vyhodnotí ako FALSE, všetky ostatné ako TRUE.
Dim Variable As Boolean
Premenné typu Date (dátum)
Premenné typu Date môžu obsahovať len dátumy alebo časy uložené v internom formáte. Hodnoty priradené premenným Date pomocouDateserial, Datevalue, Timeserial nebo Timevalue sa automaticky prevedú na interný formát. Dátumové premenné prevediete na normálne čísla pomocou funkcií Day, Month, Year nebo Hour, Minute, Second. Interný formát umožňuje porovnanie dvoch dátumových / časových hodnôt pomocou výpočtu rozdielu medzi číslami. Tieto premenneé sa môžu deklarovať len kľúčovým slovom Date.
Dim Variable As Date
Počiatočné hodnoty premenných
Akonáhle je premenná deklarovaná, jej hodnota je automaticky nastavená na "Null". Platia nasledujúce pravidlá:
Premenným typu Numeric sa po ich deklarácii automaticky priradí hodnota "0".
Premenným typu Date sa interne priradí 0, čo zodpovedá prevodu hodnoty na "0" pomocou funkcieDay, Month, Year alebo Hour, Minute, Second.
Premenným typu String sa pri deklarácii priradí prázdny reťazec ("").
Polia
LibreOffice Basic pozná jedno- alebo viacrozmerné polia, definované určeným typom premennej. Polia sú vhodné pre zoznamy a tabuľky v programe. K jednotlivým prvkom poľa je možné pristupovať pomocou číselného indexu.
Pole musí byť deklarované príkazom Dim. Existuje niekoľko možností, ako definovať rozsah poľa:
Dim Text$(20) '21 elements numbered from 0 to 20'
Dim Text$(5,4) '30 elements (a matrix of 6 x 5 elements)'
Dim Text$(5 To 25) '21 elements numbered from 5 to 25'
Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 5'
Index môže obsahovať kladné aj záporné čísla.
Konštanty
Konštanty majú stálu hodnotu. V programe sa definujú iba raz a neskôr už nie je možné ich predefinovať:
Const ConstName=Expression