Module
Contents
Index 🔎︎

# 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
| Správne
    MyNumber5=15
| Správne
    MyNumber_5=20
| Správne
    My Number=20
| Neplatné, premenná s medzerou v názve musí byť uzatvorená do hranatých zátvoriek
    [My Number]=12
| Správne
    DéjàVu=25
| Neplatné, špeciálne znaky nie sú povolené
    5MyNumber=12
| Neplatné, premenné nemôžu začínať číslicou
    Number,Mine=12
| Neplatné, interpunkcia nie je povolená

## 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$
| Deklaruje premennú "a" ako dátový typ String.
    Dim a As String
| Deklaruje premennú "a" ako dátový typ String.
    Dim a$, b As Integer
| Deklaruje jednu premennú ako String a druhú ako Integer
    Dim c As Boolean
| Deklaruje c ako logickú premennú, ktorá môže nadobúdať hodnoty TRUE (pravda) alebo FALSE (nepravda)

Pri deklarovaní premenných je veľmi dôležité vždy použiť znak deklarujúci typ, a to i vtedy, pokiaľ bol v deklarácii použitý namiesto kľúčového slova. Nasledujúce príkazy sú teda neplatné:

    Dim a$
| Deklarované "a" ako Reťazec
    a="TestString"
| Chýba deklarácia typu: "a$="

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 prvkov očíslovaných od 0 do 20
    Dim Text$(5,4)
| 30 prvkov (matica o 6 x 5 prvkoch)
    Dim Text$(5 To 25)
| 21 prvkov očíslovaných od 5 do 25
    Dim Text$(-15 To 5)
| 21 prvkov (vrátane 0) očíslovaných od -15 do 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